Skip to content

Releases: Milo-D/libvmcu-Virtual-MCU-Library

v.0.5.5

06 Feb 03:54
Compare
Choose a tag to compare
v.0.5.5 Pre-release
Pre-release

v.0.5.5

  • Seperated Simulation Engine (engine/) from CLI (debugger/)
    • Might create a statically linked library out of engine/,
      so that the core can be reused in different projects.

v.0.5.4

28 Jan 22:06
Compare
Choose a tag to compare
v.0.5.4 Pre-release
Pre-release

v.0.5.4

  • Added first Submodule for the Analyzer: Static SFR Analysis

    • This submodule explores special function registers in disassembly

    • once an address to a special function register has been detected
      by the module, an annotation will be created with its corresponding name

    • example: out 0x3f, r1 ; SREG

  • Minor refactor of timer8.

  • New Debugcommand: xeb - examine EEPROM as bitmap

  • Cleanup: unused Headers, unused variables

v.0.5.3

23 Jan 01:39
Compare
Choose a tag to compare
v.0.5.3 Pre-release
Pre-release

v.0.5.3 - 2020-01-23

  • Added: Instruction Decomposer - Stage 1 of the Analyzer Pipeline

    • decomposes AVR Opcodes into its components
  • Extended Analyzer Pipeline:

    • Stage 0: Decoder (decodes binaries, extracts opcodes)
    • Stage 1: Decomposer (decomposes opcodes into its operands)
    • Stage 2: Disassembler (disassembles opcodes into mnemonics)
    • Stage 3: Analyzer (performs static analysis on disassembly)
  • Timer0: Minor work on Prescaler.

  • Added: EEPROM Write-Only Mode

    • Now supporting all modes of EEPROM programming
  • Added: Opcode view in disassembly.

v.0.5.2

13 Jan 19:09
Compare
Choose a tag to compare
v.0.5.2 Pre-release
Pre-release

v.0.5.2 - 2020-01-13

  • This update reduces heap allocations for an overall better memory performance

  • Further improvements regarding memory consumption are coming soon

  • Now using sstream in mnemonics generator and debugprinter

    • avoiding unnecessary heap allocations
  • Added: stringstream collection (sstream.c, sstream.h)

    • will be replacing queue collection (queue.c, queue.h)

v.0.5.1

10 Jan 16:11
Compare
Choose a tag to compare
v.0.5.1 Pre-release
Pre-release

v.0.5.1 - 2020-01-10

  • Systemprinter refactored

    • Rename sytemprinter.* to debugprinter.*
    • Seperated printer functionality into six files:
      • gpnl_printer.* (printer for the gpr panel)
      • spnl_printer.* (printer for the sreg panel)
      • fpnl_printer.* (printer for the flash panel)
      • dpnl_printer.* (printer for the data panel)
      • epnl_printer.* (printer for the eeprom panel)
      • rpnl_printer.* (printer for the right panel)
    • functionality stayed the same
  • Added credits for the architecture diagram.

  • Fixed comments for push/pop mnemonic.

v.0.5.0

31 Dec 04:10
Compare
Choose a tag to compare
v.0.5.0 Pre-release
Pre-release

v.0.5.0 - 2020-12-31

  • Added: Analyzer Module.

    • The Analyzer Module consists of multiple (future) submodules.
    • Each submodule will be covering exactly one aspect of static code analysis.
    • Planned submodules:
      • ISR analysis (explore details about ISRs in your code)
      • SFR analysis (annotate addresses which target special function registers)
      • Function analysis (analyse function calls and maybe even their arguments/return-values)
      • many more...
    • The analyzer is a work in progress
  • Performance: Reached 17 MHz execution speed. It is now possible to simulate default Arduino in realtime.

  • Refactor of toplevel structures

    • table_t class is now only for user-defined entries like breakpoints, etc.
    • system_t class does not contain table_t class anymore.
    • report_t class is the report of the analyzer after decoding and disassembling hexfile.
  • Displaying hexadecimal addresses instead of line numbers in sidepanel.

  • Table commands (like break, unbreak) are now requiring a hexadecimal address

  • Added: Diagram of the analyzer dataflow

  • Added: New screenshot

  • DebugWindow Refactor (II)

    • panel properties are now calculated seperately in <g,s,f,d,e,o,r> pnl_ctor

v.0.4.5

21 Dec 01:25
Compare
Choose a tag to compare
v.0.4.5 Pre-release
Pre-release

v.0.4.5 - 2020-12-21

  • DebugWindow refactored.

    • No use of generic panels in DebugWindow anymore
    • Created subdirectory: src/cli/util/ and include/cli/util
    • Panel class is now stored in cli/util/
    • Created individual panels (gpnl_t, etc.) in cli/debug/
    • gpnl_t, spnl_t, fpnl_t, dpnl_t, epnl_t, opnl_t, rpnl_t are extending panel_t (cli/util/panel.h)
    • Created _win_properties which holds data related to the window (WINDOW*) state (height, width, y, x)
    • struct _properties extends struct _win_properties (adding page properties)
    • Panels are now initialized by struct _properties*
    • Prompt is now initialized by struct _win_properties* (prompt has no page properties)
    • Right now extending panel_t class has no real benefits, since all individual panels are the same,
      but this will change in the future.
  • Added: 'cc' debugcommand. Create comments in disassembly with 'cc '

  • Statusregister can be read/written now by writing to its dataspace address (0x005f)

v.0.4.4

01 Dec 13:43
Compare
Choose a tag to compare
v.0.4.4 Pre-release
Pre-release

v.0.4.4 - 2020-12-01

  • Major Performance Enhancement

    • 56% better runtime performance
      • before: 7.250.000 Cycles per second (7,25 MHz)
      • after: 12.800.000 Cycles per second (12,8 MHz)
    • Tested on an Intel Core i5. So actual execution speed may differ.
    • Goal: atleast 20 MHz
  • Fixed some issues in the Makefile

v.0.4.3

17 Nov 11:30
Compare
Choose a tag to compare
v.0.4.3 Pre-release
Pre-release

v.0.4.3 - 2020-11-17

  • Added new Debugcommand: jc (jump cycles)

    • Fast forwarding simulation without the need for setting breakpoints
    • Useful when waiting for an event in an endless loop, like EEPROM Ready or a Timer Overflow.
  • Bugfix: Timer increments now, even when executing illegal opcode.

  • Timer Interrupts are now handled in TIFR0 and TIMSK0, too.

v.0.4.2

13 Nov 04:09
Compare
Choose a tag to compare
v.0.4.2 Pre-release
Pre-release

v.0.4.2 - 2020-11-13

  • Added two functions to system_t:

    • sys_set_sfr(system_t*, const uint16_t, const int)
    • sys_clear_sfr(system_t*, const uint16_t, const int)
  • The first 32 registers in IO-Space are now set/cleared by writing single bits when using sbi, cbi

  • Headless Mode is now ignoring EEPROM values equals to 0xff, in order to minimize output

  • Bugfix: Flag clearing in TIFR0

  • Added new testfile: kmp.asm (KMP Pattern Matching for M328P)