Merge pull request #10 from the-real-orca/mingw
[simavr] / README
1
2 simavr -- a simple, lean and mean AVR simulator
3
4 https://github.com/buserror-uk/simavr
5
6 simavr is a new AVR simulator for linux, or any platform that uses avr-gcc. It uses 
7 avr-gcc own register definition to simplify creating new targets for suported AVR
8 devices.
9
10 The core was made to be small and compact, and hackable so allow quick prototyping 
11 of an AVR project. The simulator loads .elf directly, and there is even a way to
12 specify simulation parameters directly in the emulated code using an .elf section.
13
14 The status of the project is the core works fine now. The supported IOs are eeprom,
15 watchdog, self-programming (ie bootloader), external interrupts (INT0 etc),
16 IO ports (including pin interupts), 8&16 bits timers (well, some of the modes),
17 SPI master & slave, ADC, and the UART with tx&rx interrupts.
18
19 The only notable missing bits are i2c and XMEM bus access (for the big Megas)
20
21 gdb support is implemented and works great (minus watchpoints).
22
23 The supported AVR cores are in the simavr/cores directory. It's very simple to
24 add new devices if yours is not there.
25
26 There is also one example of how to integrate simavr core into your own program in the
27 "examples" directory.
28
29 (C) 2008-2010, Michel Pollet <buserror@gmail.com>
30
31 PREQUISTES:
32 + avr-gcc ; tested with 4.3.4 (from debian)
33         The code rudely assumes the avr-gcc is in /usr/lib/avr/include/...
34         On OSX, the Makefile tries to use the Arduino.app toolchain & headers
35 + libelf-dev
36 + glut (or freeglut) to build the example "boards" in examples/
37
38 BUILD:
39 + make
40
41 TEST:
42 + ./simavr/run_avr tests/atmega88_example.axf