|  | .. _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, enough 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 -M mega2560 -bios demo.elf -nographic \ | 
|  | -serial tcp::5678,server=on,wait=off | 
|  |  | 
|  | and then in another shell:: | 
|  |  | 
|  | telnet localhost 5678 | 
|  |  | 
|  | - Debugging with 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 (that have not been translated by the JIT | 
|  | compiler yet):: | 
|  |  | 
|  | qemu-system-avr -machine mega2560 -bios demo.elf -d in_asm |