AVRsimulator

Debugging of AVR firmware.




Description

V0.0 screenshot
Screenshot of version V0.0 (Click to enlarge)

AVRsimulator is basically a C library that emulates the behaviour of AVR MCU's by software. Together with an object file parser and a frontend (user interface) it can be used for AVR firmware debugging.

Inspired by Atmels AVR studio I started development in 2001 to create a UNIX program for debugging - but doing this job alone is not really motivating and things are evolving slowly ... so everybody is welcome to contribute to this project, especially the GUI. It is my first one and it is neither fast nor "beautyful" (anyway from the programmers view).

The screenshot shows the OSF/Motif 2.0 GUI I have written for this demo version. The left window shows the source code with the selected line as the one to execute next. The right window shows the SRAM address space of the MCU. The red marked addresses are the register file, the blue ones are the I/O ports and the green ones are normal memory locations. The info field on the bottom shows the current values of program counter and status register (also visible in the memory window as hex value but the bit names are better readable).
Pressing the "Single step" button executes the command that is marked in the source window. All changed memory locations are marked in red color.


Functional layout

   --------------
   |            |
   |  Frontend  |                User interface
   | (frontend) |
   |            |
   --------------
      |       |
      |       |
      |     ------------------
      |     |                |
      |     |  AVRsimulator  |
      |     |    library     |   Simulator engine
      |     | (libAVRsim.so) |
      |     |                |
      |     ------------------
      |
      |
   ------------------
   |                |
   | Import library |            Abstraction layer to support different
   | (libimport.so) |            object file formats
   |                |
   ------------------
      

Features

Only the AVR core can be simulated by AVRsimulator at the moment. The peripheral support is under development.
Clicking on a memory location opens a dialog box to change the value.
Manual jumps (click on command) are currently not supported.
Currently there is only "single step" support, breakpoints are missing.
AVRsimulator supports the Atmel .obj file format. The UNIX assembler 'tavrasm' can create this file format. "*.obj" files created with Atmel tools can also be used.


Supported MCU's

If your MCU is not listed, the simulator probably work anyhow if you avoid commands that the 2313 does not support. Give it a try.

Versions

Get them from download page.



Browser        IDFC        Last update: 2004-11-21        Home        Contact