#arm #emulator #virtualization

armagnac

A simple ARM emulation library for simulating embedded systems

1 unstable release

0.1.0 Feb 27, 2025

#157 in Simulation

Download history 156/week @ 2025-02-26

156 downloads per month

MIT/Apache

365KB
10K SLoC

Armagnac

Armagnac is a simple ARM emulation library written in Rust which can be used to emulate simple embedded systems. The library gives high control on the processor execution, allowing to run instruction by instruction, create hooks, inspect or modify the system state on the fly. Integration of custom peripherals in the memory space is made easy, allowing custom platforms emulation. This library has little dependencies.

The library is in development and is highly experimental. Is it not complete as not all instructions have been implemented yet. Only ARMv7M is implemented at the moment. Expect bugs, rage and frustration.

Currently, emulation is relatively slow, typically 1 million instruction per second. There is no virtualization or translation to native code whatsoever. Also, there is no "unsafe" code.


lib.rs:

Armagnac is an experimental ARMv7-M processor emulator designed for embedded systems emulation. It is slow, incomplete and unoptimized. However, it is fully written in Rust!

Dependencies

~2.5MB
~53K SLoC