]>
Commit | Line | Data |
---|---|---|
c0a659f9 TH |
1 | .. _AVR-System-emulator: |
2 | ||
3 | AVR System emulator | |
4 | ------------------- | |
5 | ||
6 | Use the executable ``qemu-system-avr`` to emulate a AVR 8 bit based machine. | |
7 | These can have one of the following cores: avr1, avr2, avr25, avr3, avr31, | |
8 | avr35, avr4, avr5, avr51, avr6, avrtiny, xmega2, xmega3, xmega4, xmega5, | |
9 | xmega6 and xmega7. | |
10 | ||
11 | As for now it supports few Arduino boards for educational and testing purposes. | |
12 | These boards use a ATmega controller, which model is limited to USART & 16-bit | |
76ca4b58 | 13 | timer devices, enough to run FreeRTOS based applications (like |
c0a659f9 TH |
14 | https://github.com/seharris/qemu-avr-tests/blob/master/free-rtos/Demo/AVR_ATMega2560_GCC/demo.elf |
15 | ). | |
16 | ||
17 | Following are examples of possible usages, assuming demo.elf is compiled for | |
18 | AVR cpu | |
19 | ||
0abd386d TH |
20 | - Continuous non interrupted execution:: |
21 | ||
22 | qemu-system-avr -machine mega2560 -bios demo.elf | |
23 | ||
24 | - Continuous non interrupted execution with serial output into telnet window:: | |
25 | ||
26 | qemu-system-avr -M mega2560 -bios demo.elf -nographic \ | |
c2387413 | 27 | -serial tcp::5678,server=on,wait=off |
0abd386d TH |
28 | |
29 | and then in another shell:: | |
30 | ||
31 | telnet localhost 5678 | |
32 | ||
76ca4b58 | 33 | - Debugging with GDB debugger:: |
0abd386d TH |
34 | |
35 | qemu-system-avr -machine mega2560 -bios demo.elf -s -S | |
36 | ||
37 | and then in another shell:: | |
38 | ||
39 | avr-gdb demo.elf | |
40 | ||
41 | and then within GDB shell:: | |
42 | ||
43 | target remote :1234 | |
44 | ||
45 | - Print out executed instructions (that have not been translated by the JIT | |
46 | compiler yet):: | |
47 | ||
48 | qemu-system-avr -machine mega2560 -bios demo.elf -d in_asm |