Back to Qemu

AVR System emulator

docs/system/target-avr.rst

11.0.01.4 KB
Original Source

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