With embedded systems becoming more complex and challenging in terms of design, development and deployment, Emul8 comes in as an easy and readily-available solution for iterative development and continuous integration of devices or systems of devices in a fully controlled environment, even if the physical hardware is not yet available.
Emul8, as the name suggests, is an emulator that targets various embedded systems, typically based on ARM CPUs (e.g. Cortex-A9) and/or MCUs (e.g. Cortex-M3), there is also support for SPARC, PowerPC and x86. With Emul8 you can develop your system entirely in a virtual environment that runs within your PC.
Emul8 is an Instruction Set Simulator (ISS), meaning it offers functional simulation of an embedded device or set of devices at the instruction level, and it is built for speed necessary to do iterative software development without getting irritated.
Typically, you can work with your code in Emul8 more effectively than you would on real hardware, with comparable execution times but without the overhead of e.g. reprogramming the device or adding logs to produce more debug output.
Running embedded software in a PC abstracts out the physicality of a real embedded system - since you are working in a fully controlled environment, you can monitor and influence all the elements in the system.
This is difficult to impossible in typically constrained embedded devices, where debug output is scarce and the real state of the system unknown and hard to trace.
Naturally, no. After all, you are probably developing a real embedded system, and while Emul8 is meant to enhance the development process by increasing your possibilities of debugging, testing and continuous integration, the final tests and deployment are always done on real hardware.
The intention with Emul8 is to help you get there sooner and produce higher quality embedded software.