ARDUSIM is a project to provide the Arduino community an API-level arduino simulator which is more practical for developing software and debugging algorithm for Arduino. The idea is to modify or re-write the underlying Arduino core files and some of the AVR C runtime to simulate the behavior of a AVR chip running a compiled Arduino sketch. As is built with AVR GCC, the sketch code can be compiled with x86 GCC with very little or no modification and so are the most Arduino libraries. After compiled with the modified underlying stuff, the sketch can be running as a native x86 program, so program logic can be debugged more easily within the IDE (by GDB) with break point, single step, variable watch and everything needed for productive software development. In another direction, this allows current Arduino resource (libraries) to be used for developing x86 program in a simpler way (e.g. using TinyGPS to do GPS parsing).
In this approach, there is no need to simulate a AVR processor but some chip features and peripherals still need to be simulated, including interrupts, serial UART, digital/analog pins etc. Right now serial UART is simulated with hardware serial port on PC. This is useful for debugging code dealing with any serial devices by connecting the device directly to PC via a USB-TTL adapter.
THIS PROJECT NOW RELEASES WITH CODEBLOCKS ARDUINO IDE
Existing Ardunio Simulators:
- Simuino – an Arduino UNO/MEGA Pin Simulator
- Simulator for Arduino – “the most full featured Arduino Simulator”
- Simulavr – The SimulAVR program is a simulator for the Atmel AVR family of microcontrollers. It can be used either standalone or as a remote target for avr-gdb.
Useful resources for Arduino simulator development:
- AVaRICE - AVaRICE is an open-source program for interfacing the Atmel JTAG ICE to GDB to allow users to debug their embedded AVR target.
- A minimal GDB stub for embedded remote debugging
- Arduino Forum – SimAVR Emulator – Possible Arduino integration?