Home => Gerd's AVR simulator    (Diese Seite in Deutsch: Flag DE) Logo


Gerd's AVR simulator

AVR assembler simulator for the stepwise execution of assembler source code - with many extras. Click here if you hate simulators.

Description Download Statistics

1 Description

  1. Simple handling, no extended learning phase required,
  2. Works under Windows and Linux, 64-bit executables downloadable,
  3. Lazarus-Pascal source code available for free for own modifications,
  4. Fast and comfortable start of new assembler projects, fills in standard text frames for structured source code in a short or in a comprehensive format, for linear as well as for interrupt-oriented programs,

    New project

    Comprehensive source code Interrupt vectors source code Left the comprehensive version, right with interrupt vectors,

    Short version source code A short version without any extras is also available,
  5. From Version 1.8 on a comfortable device selector is on board, that allows to select AVRs (types and packages) by selectable hardware requirements,

    AVR device selector

  6. Editor for modifying of the assembler source code with several helpful features,

    Editor help Editor

  7. The editor, from version 1.7 on, has a syntax highlighter which provides multiple opportunities for its configuration:

    Adjusting syntax highlighting Syntax highlighting

  8. Forgot the mnemonic of an instruction in AVR assembler, forgot how many clock cycles it needs or which flags are affected? No problem in avr_sim. From Version 2.1 on an instruction list comes up and you can search and find what you need,

    Instruction list

  9. Display of header symbols, ports and interrupts of the applied AVR type,

    Port view

  10. Display of the hardware configuration for PDIP-/SOIC- and QFN-packages,

    Device view

  11. Insert the hardware into the source code by simply typing F2:

    Hardware as ASCII, PDIP Hardware as ASCII, TQFN
  12. Internal assembler gavrasm for quick modification and assembling of code,

    gavrasm assembler

  13. Comfortable setting and clearing of breakpoints, storing breakpoints in and loading them from the project file,

    Editor for breakpoint administration

  14. From version 2.3 on: Scan- and alarm function: counts, beeps and/or stops if a register or a register pair, a portregister or a portregister pair, a SRAM location or a SRAM pair is written, written with a preselected value or read,

    Scan- and alarm funktion

  15. Control of the simulation in a simulator window,


  16. Simple overview over I/O ports and timers,

    Port/Timer view

  17. Display of SRAM content,

    SRAM view

  18. Display of EEPROM content as well as correct Write and Read operations,

    EEPROM view

  19. Display and simulation of the watchdog timer,

    Watchdog timer

  20. Display, simulation and manipulation of ADC channels, from version 2.7 on including configurable differential channels and temperature measurements, und ADC with differential channel

  21. as extra a design aid with a 12/16-key resistor matrix and voltage input via keyboard, from version 2.7 on including internal reference voltages,

    ADC with resistor matrix

    and display of the key's voltages,

    Resistor matrix voltage display

  22. Configurable four-channel scope for displaying polarity changes on output compare pins or on any available I/O pin of the device,

    Scope Output Compare Scope I/O pin

  23. Scope display for R/2R analog values on ports with configurable resolution and in up to four different channels simultanously in selectable colors,

    Scope analog values Multiple channel scope
  24. Scope display of internal Digital-to-Analog converters for those AVR types that have these available,

    DAC values on the scope
  25. You need a short view some hundred lines above in your code? Just open a new codeview window, your editor is not affected by this, try copy and paste between the two code windows,
  26. Simple and fast display of decimals in registers and of register pairs - place the mouse over the register and you'll get what you need!
  27. From version 2.5 on: register save mode (for all changes of registers) and trace mode (for all configurable register-, portregister- and SRAM-content) as .csv file for export to an external spreadsheet.
  28. From version 2.6 on: Simple jumps (Jump to) during simulation, also as call to a subroutine (Call) or for simulating an interrupt with cleared I-flag (Call ISR),


Description Download Statistics

2 Download

2.1 The latest version

Version 2.7 of the software improves the ADC display (differential channels, temperature measurement, resistor matrix) and fixes minor bugs.

2.2 Lazarus Pascal source code

The source code is written in Pascal and compiles with Lazarus. A Windows and Linux version of the source code are provided (if different).

2.3 Executables

Executable 64-bit versions are available for Windows and for Linux. The Windows executable is available in a short version and in a debug version (with range checking features enabled). If you need executable versions for other or for older 32-bit operating systems, compile the source code with Lazarus. The handbook describes how to do that.

2.4 Handbook for use

The handbooks for the different versions are available in English and in German language. It holds relevant information for installing avr_sim, for compiling of the program with Lazarus and describes all features provided.

A brief description of the software internals of avr_sim has been added.

2.5 All available versions

Known errors in the current version are described here.

VersionPublication date Executables Source codeHandbooksDescription
Win64Win64-DebugLin64WindowsLinux ENDEEN only
2.716.07.2022 Link Link Link Link Link Link Link (see version 2.6)
2.614.05.2022 Link Link Link Link =Win-src Link Link Link
2.512.12.2021 Link Link Link Link Link Link Link Link
2.426.07.2021 Link Link Link Link Link Link Link -

2.6 Older Versions not available any more


Description Download Statistics

3 Error reports

Due to the enormeous complexity of the task (the devellopment of the AVRs took two decades and the internals of an AT90S1200 differ widely from those of an ATtiny814 or an ATmega324) it cannot be avoided that there are still bugs and missing features in that software. It would overstrain me to test more than 150 AVR types and their more than a douzend hardware features. If you find errors or you miss features of a certain type, please send me a note (if possible including source code), my email address is on the title page of the handbooks. I'd like to repair those errors as I have enough time to do that (I am retired). In that way I can improve the software. Thanks for each hint ...

3.1 Known errors

Version 2.6 has a problem with timer simulation. You'll recognize this through the missing prescaler. Please use version 2.5 for timer simulations.

If you compile avr_sim with Lazarus you can correct this error by deleting the line "bCsMode:=0;" in the unit "avr_tcu"'s procedure "TCReset".

4 Statistics

4.1 Monthly accesses

This shows the monthly accesses to the avr_sim website and the downloads of Linux- and Windows-files. It seems that the handbooks are useful.

Monthly accesses

4.2 Accesses by versions

This shows the accesses to the different versions of avr_sim. New releases come every three to four monthes.

Accesses by versions

4.3 Accesses by executables vs. sources

The share of self-compilators among the total downloads is high.

Executables vs. source code

To the top of page Description Download Statistics

5 Links to uses and users of avr_sim

The following internal webpages use avr_sim: Anthony Peck has used avr_sim to follow his generation of random numbers with an ATtiny13 in his blog, associated with a video demonstrating the calculation process.

Please send more application reports on avr_sim to gavrasm (at) avr-asm-tutorial.net.

To the top of page Description Download Statistics

©2017 - 2022 by http://www.avr-asm-tutorial.net