http://gitorious.org/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 supoortted AVR
+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 protoyping
+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 at about 98% (ie, it works, but there
-is a known bug). The supported IOs are eeprom, IO ports (including pin interupts),
-8 bits timers (well, one of mode of the myriad) and a simple UART that makes
-ÒprintfÓ work.
+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.
-gdb support is planned next.
+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 <buserror@gmail.com>
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/simavr tests/atmega88_example.axf
-
-There are no command line options for now.. The simulator recognizes attiny85,
-atmega48,88,168 and atmega644. It's fairly easy to add new cores.
-
-Michel Pollet <buserror@gmail.com>
++ ./simavr/run_avr tests/atmega88_example.axf