ARM Cortex-M Emulator

NitroSIM v6.1.1

High-performance ARM Cortex-M emulator implemented in x64 assembly. Execute and debug ARM firmware on your development PC with cycle-accurate emulation achieving over 200 MIPS.

200+
MIPS Speed
270
Instructions
100%
Coverage
nitrosim_demo.c
// Initialize the ARM emulator
emu_init();

// Load firmware binary at flash address
emu_load_binary(firmware, 0x08000000);

// Configure memory regions
emu_set_flash_size(512 * 1024);  // 512KB
emu_set_ram_size(128 * 1024);    // 128KB

// Run until breakpoint
emu_run_until_break();

// Inspect registers
uint32_t pc = emu_get_reg(REG_PC);
uint32_t sp = emu_get_reg(REG_SP);

// Disassemble current instruction
char buf[64];
emu_disassemble(pc, buf, sizeof(buf));

Key Features

200+ MIPS Performance

Blazing fast emulation speed achieved through hand-optimized x64 assembly implementation. Test firmware in real-time.

Full ARMv7-M Support

Complete support for Cortex-M0, M0+, M3, M4, M4F, and M7 cores including all DSP and SIMD instructions.

FPU Emulation

Full FPv4 and FPv5 single-precision floating-point unit emulation for M4F and M7 cores.

270 Instructions

Complete Thumb and Thumb-2 instruction set coverage with 100% accuracy for all supported cores.

Built-in Debugger

Integrated debugging API with breakpoints, watchpoints, single-stepping, and memory inspection.

Cross-Platform

Runs on Windows 10+ and Linux. Available as static library or DLL for easy integration.

API Functions

emu_init() emu_init_ex() emu_reset() emu_shutdown() emu_step() emu_run() emu_run_until_break() emu_load_binary() emu_read8() emu_read16() emu_read32() emu_write8() emu_write16() emu_write32() emu_get_reg() emu_set_reg() emu_disassemble() emu_get_cycle_count() emu_set_breakpoint() emu_get_version()

Technical Specifications

ArchitectureARMv7-M (Cortex-M0/M0+/M3/M4/M4F/M7)
Instruction SetThumb, Thumb-2 (270 instructions, 100% coverage)
FPU SupportFPv4-SP, FPv5-SP (single-precision)
DSP ExtensionsFull DSP/SIMD instruction support
Performance200+ MIPS on modern x64 CPUs
MemoryConfigurable Flash (up to 16MB) and RAM (up to 4MB)
Host PlatformWindows 10+, Linux (x64)
Implementationx64 Assembly (MASM/GAS)
IntegrationC API, Static Library, DLL
Current Version6.1.1

Ready to accelerate your firmware development?

Get started with NitroSIM today. Contact us for evaluation access and licensing information.

Contact Sales Back to Home