An ATmega328p (commonly found in Arduino devices) emulator written in C. Some parts depend on avra
and avr-gcc
toolchains in order to work.
Supports most of the MCU's functionality - it's able to decode and execute all AVR instructions, it can handle interrupts, supports sleep mode.
API makes it easily embeddable (as a shared library or just by including the source code)
Contains two GUI apps - one that runs in terminal and one that runs in a browser (requires compiling to shared library and setting up a Python server)
TODO:
- Write tests for the rest of the instructions
- A just-in-time recompiler to speed things up maybe?