I would like to go through AVR few Atmel AVR microcontroller software simulators. You can find many AVR simulators out there like simulavr, simulavrxx, avrora
VMLAB, Proteus, AVRStudioâ€¦ some of them are open source or freeware other commercial. I want to go through what I have tried and what I liked best.
My list starts with AVR studio. This is not only as simulator, but the whole IDE for writing and debugging AVR applications. AVRStudio includes assembler and simulator. From AVR Studio 4 there is also plugin supported for GCC compiler. If you have WINAVR toolset installed in you computer, AVR studio automatically detects the GCC compiler and you can start developing AVR applications using C language in AVRStudio environment. Also you get ability to simulate C code and view microcontroller peripheral performance. The only external hardware I could spot is AVR LCD Visualizer. If you want to simulate some hardware like 24Cxx memories, UART, buttons. It is pretty hard to simulate them, because the only way to do this is by changing registry values in I/O view. AVRStudio is ideal tool for Assembly program development and debugging. AVRStudio is free to use.
This package (https://www.labcenter.co.uk) takes you to higher level of hardware simulation. This is very wide tool which supports PIC, 8051, AVR, HC11, ARM7/LPC2000 and Basic Stamp processors, uses Interactive peripheral models for displays, keypads. Supports over 6000 analogue and digital device models and works with almost all compilers including GCC. The only thing is that this tool is Commercial. You can download demo version of this program to try its capabilities.
Proteus is interactive tool. You can connect your circuit as it looks, simulate it in real time and if you want you can also design PCB. In my opinion this is closest to the real world designing.
VMLAB â€“ Visual Micro Lab (https://www.amctools.com) is a third tool I tried. It supports two types of microcontrollers ST62 and AVR. VMLAB provides so called co-simulation of microcontroller software and external hardware. All connections between hardware are made in scripting language. But process viewing is done using scope and control panel where you can add LCD, keypad, LEDâ€™s, UART monitor, I2C, potentiometer sliders. Good thing is that VMLAB supports third party compilers who produce COFF files. For simulation VMLAB needs HEX files. There is special integration for WINAVR GCC compiler. You get automatic make file generation, symbolic C debugging, also mixed assembly/C view.
VMLAB now is freeware. This means you can use it freely. If you rally like it you can donate authors to make this tool better.
In conclusion – My choice is VMLAB as this meets all my needs: free, supports AVR-GCC, and integrates commonly used hardware.