.. _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``