(picture might be distorted in mobile version)
Hello,
I've started a similar thread one year ago but decided to make a new one since much has changed in this one year.
So I started developing a Debugger/Simulator for AVRs (ATmega328P) one and a half year ago.
It features:
- Backstepping
- Disassembler
- Static Code Analysis (still in progress)
- Supports whole Instruction Set (131 instructions)
- Realtime simulation (currently approx. 17 MHz)
- Peripheral Simulation (Timer0, EEPROM, more are coming soon)
- Syntax Highlight
Setting up MDX is very easy and its usage too.
If you have suggestions and/or feedback, just message me.
Maybe this tool helps some of you.
Written in: C
Github: GitHub - Milo-D/libvmcu-Virtual-MCU-Library: A Library for Static and Dynamic Analysis of AVR binaries.
I will use this thread as a small changelog, so I will start with its first entry.
Update (v.0.5.0)
- 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
