blob: dc99afc895d0aa456c9438f32a6f4c4641d448f4 [file] [log] [blame]
.. _AVR-System-emulator:
AVR System emulator
-------------------
Use the executable ``qemu-system-avr`` to emulate a AVR 8 bit based machine.
These can have one of the following cores: avr1, avr2, avr25, avr3, avr31,
avr35, avr4, avr5, avr51, avr6, avrtiny, xmega2, xmega3, xmega4, xmega5,
xmega6 and xmega7.
As for now it supports few Arduino boards for educational and testing purposes.
These boards use a ATmega controller, which model is limited to USART & 16-bit
timer devices, enought to run FreeRTOS based applications (like
https://github.com/seharris/qemu-avr-tests/blob/master/free-rtos/Demo/AVR_ATMega2560_GCC/demo.elf
).
Following are examples of possible usages, assuming demo.elf is compiled for
AVR cpu
- Continuous non interrupted execution:
``qemu-system-avr -machine mega2560 -bios demo.elf``
- Continuous non interrupted execution with serial output into telnet window:
``qemu-system-avr -machine mega2560 -bios demo.elf -serial
tcp::5678,server,nowait -nographic``
and then in another shell
``telnet localhost 5678``
- Debugging wit GDB debugger:
``qemu-system-avr -machine mega2560 -bios demo.elf -s -S``
and then in another shell
``avr-gdb demo.elf``
and then within GDB shell
``target remote :1234``
- Print out executed instructions:
``qemu-system-avr -machine mega2560 -bios demo.elf -d in_asm``