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 lets you compile code directly for your target architecture and run it on your 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 host.

Emulators come in two basic flavors. One type goes far as a substitute for the final hardware during development; it can support a variety of verification activities, particularly those that require time accuracy. However, this kind of emulator tends to be extremely costly, and is often very slow. The second type of emulator, which includes GNATemulator, does not attempt to serve as a complete time-accurate target board simulator. Although it thus cannot be used for all aspects of testing, it does provide an efficient and cost-effective way of executing the target code very early and very broadly during development and verification. It offers a practical compromise between a native environment that does not match the actual target, and the final hardware that is generally not available soon enough or in sufficient quantity.

Key Features

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. You can launch multiple versions of GNATemulator can be launched simultaneously and thus parallelize testing for efficieny. 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 the GNATcoverage code coverage analysis tool.

Powerful Emulation Capabilities

The GNATemulator interface lets you 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 conducted 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.

Improved Productivity

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.