simavr -- a simple, lean and mean AVR simulator https://github.com/buserror-uk/simavr simavr is a new AVR simulator for linux, or any platform that uses avr-gcc. It uses avr-gcc own register definition to simplify creating new targets for suported AVR devices. The core was made to be small and compact, and hackable so allow quick prototyping of an AVR project. The simulator loads .elf directly, and there is even a way to specify simulation parameters directly in the emulated code using an .elf section. The status of the project is the core works fine now. The supported IOs are eeprom, watchdog, self-programming (ie bootloader), external interrupts (INT0 etc), IO ports (including pin interupts), 8&16 bits timers (well, some of the modes), SPI master & slave, ADC, and the UART with tx&rx interrupts. The only notable missing bits are i2c and XMEM bus access (for the big Megas) gdb support is implemented and works great (minus watchpoints). The supported AVR cores are in the simavr/cores directory. It's very simple to add new devices if yours is not there. There is also one example of how to integrate simavr core into your own program in the "examples" directory. (C) 2008-2010, Michel Pollet PREQUISTES: + avr-gcc ; tested with 4.3.4 (from debian) The code rudely assumes the avr-gcc is in /usr/lib/avr/include/... On OSX, the Makefile tries to use the Arduino.app toolchain & headers + libelf-dev + glut (or freeglut) to build the example "boards" in examples/ BUILD: + make TEST: + ./simavr/run_avr tests/atmega88_example.axf