Skip to content
This repository has been archived by the owner on Feb 22, 2023. It is now read-only.

Releases: mcusim/MCUSim

MCUSim-0.2-preview1

16 Mar 00:46
Compare
Choose a tag to compare
MCUSim-0.2-preview1 Pre-release
Pre-release

I'm glad to share the very first and preview release of MCUSim-0.2.

It's been a long path started back in December of 2016 with a simple idea that
there should be an accurate simulator of the 8-bit AVR microcontrollers which
can be integrated into SPICE.

I'd like to thank everyone who helped this project to achieve such a humble,
but important milestone like a preview release:

Iyoss (trac.mcusim.org is her work, project discussions and ideas)
Alexander Salychev (helped with headers and datasheets for ATmega8A and ATmega328P a lot)
Pawel Obarzanek (helped with ATmega328P, lots of project discussions and ideas)
Darren Kulp (fixed 32-bit CALL and JMP decoding in 0.1.97)

  • New features:

    • Support of ATmega8A with initialization (fuses), timers/counters and
      a partial implementation of USART (enough to program via bootloader) and
      interrupts
    • Initial support of ATmega328P with initialization (fuses) and a partial
      implementation of timers/counters and interrupts
    • Lua scripts can be used during a simulation process to substitute
      important parts of a circuit (external EEPROM, humidity sensor,
      MOSFET switch, etc) or intercept it in general
    • Ability to switch between LuaJIT and a standard Lua implementation to
      run scripts (LuaJIT provides a significant performance improvement and
      used by default)
    • A single configuration file per circuit
    • Firmware files for AVR8 in Intel HEX is the only supported format at the
      moment
    • I/O registers of a simulated AVR8 can be dumped to VCD file
    • MCUSim can be complied as an XSPICE code model library (mcusim.cm) to be
      loaded into NGSpice (checkout ATMEGA8A-with-mosfet-switch example)
  • Bug fixes:

    • many and many bugs fixed (including the most important ones in a decoder
      of the AVR8 instructions)