Target Architecture Emulation
GNATemulator is an efficient and flexible tool that provides integrated, lightweight target emulation.
Based on the QEMU technology, a generic and open source machine emulator and virtualizer, the GNATemulator tool allows software developers to compile code directly for their target architecture and run it on their host platform, through an approach that translates from the target object code to native instructions on the host. This avoids the inconvenience and cost of managing an actual board, while offering an efficient testing environment compatible with the final hardware.
There are two basic types of emulators. The first go far in replacing the final hardware during development for all sorts of verification activities, particularly those that require time accuracy. However, they tend to be extremely costly, and are often very slow. The second, which includes the GNATemulator, do not pretend to be complete time-accurate target board simulators, and thus cannot be used for all aspects of testing, but do provide a very efficient, cost-effective way of executing the target code very early and very broadly in the development and verification process. They offer a practical compromise between a native environment that is too far from the actual target, and the final hardware that is never available soon enough or in enough quantity.
Combines Agile concepts with ease-of-use
GNATemulator helps automate testing campaigns for embedded application code and thus allows developers to use continuous integration techniques made popular by the Agile community. Many versions of GNATemulator can be launched simultaneously, making it possible to parallelize testing. GNATemulator is smoothly integrated into the GNAT Pro toolset and can be used with other AdaCore tools, such as the GNAT debugger (a part of the GNAT Programming Studio) and GNATcoverage.
Powerful emulation capabilities
GNATemulator provides a powerful interface that allows you to emulate your own devices and create a rich simulation environment. Emulate any piece of hardware to make GNATemulator an exact representation of your target platform.
GNATemulator reduces hardware cost and maintenance: the actual target is needed only for integration testing, since unit and functional testing can be done directly on the emulator, which is installed on a standard desktop machine. Development teams can thus start producing and testing code for the target before acquiring the actual target hardware.
GNATemulator can be installed directly on each developer’s desktop machine, allowing tests to be written for the final target taking into account particulars, such as endianness and assembly code. It thus improves test development productivity. Optimized and efficient, GNATemulator runs on the host platform, which is usually more powerful than the target, and executes code faster than on the actual target.