aboutsummaryrefslogtreecommitdiffstats
path: root/docs/system/target-avr.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/system/target-avr.rst')
-rw-r--r--docs/system/target-avr.rst48
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/system/target-avr.rst b/docs/system/target-avr.rst
new file mode 100644
index 000000000..03d5ab51c
--- /dev/null
+++ b/docs/system/target-avr.rst
@@ -0,0 +1,48 @@
+.. _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