Forum: Projekte & Code AVR Assembly Debugger (CLI)


von David M. (milo-d)


Lesenswert?

Hallo zusammen,

ich arbeite seit einiger Zeit an einen AVR Assembly Debugger auf 
Commandline Basis und heute wollte ich die erste frühe Version von MDX 
öffentlich stellen.

Das Ziel von MDX ist es, die Vorgänge im Mikrocontroller während der 
Programmausführung übersichtlich und klar darzustellen um das Debuggen 
von Assembly Programmen zu vereinfachen. Parallel dazu soll es einfach 
und intuitiv zu bedienen sein.

MDX für Linux soll nicht MPLab ersetzen, sondern den Leuten, die lieber 
mit dem Terminal arbeiten und damit besser zurecht kommen, eine 
Alternative geben.

Da es noch eine recht frühe Version ist, sind noch nicht alle Funktionen 
verfügbar und MDX unterstützt auch noch nicht alle Assembly 
Instruktionen. Aber daran wird ja gearbeitet.

Wer vielleicht ein paar Bilder bzw. Code sehen möchte oder es einfach 
selber ausprobieren will, hier ist der GitHub Link:

https://github.com/Milo-D/MDX-Assembly-Debugger

Plattform: Linux
Programmiert in: C++

von Wilhelm M. (wimalopaan)


Lesenswert?

Wäre es nicht sinnvoller, simavr zu erweitern?

von Oliver S. (oliverso)


Lesenswert?

Vor allem, da simavr im avr-gdb enthalten ist, und da per 
gdb-Kommandozeile alles tut, was man braucht. Auch unter Linux.

Oliver

von David M. (milo-d)


Lesenswert?

Danke für die Antworten.

Es wäre wahrscheinlich wirklich sinnvoller, jedoch habe ich das Projekt 
eher aus Spaß und Interesse begonnen. Somit hab ich auch die Gelegenheit 
selber zu entscheiden, wie das Programm dann später aussieht und 
arbeitet.

Außerdem habe ich durch dieses Projekt eine Menge gelernt. Alleine 
deshalb lohnt es sich :D

von David M. (milo-d)


Angehängte Dateien:

Lesenswert?

Wollte hier nur noch mal kurz ein Update geben, falls es jemanden 
interessiert.

Ein Screenshot der aktuellen Versionen liegt im Anhang.

-> Backstepping wird nun unterstützt:

Man kann nun während der Simulation zurückgehen und sich
genauer umschauen.

-> Headless Modus wurde hinzugefügt:

MDX erhält eine .hex Datei und simuliert diese bis zum EOF oder bis
zu einem Timeout. Dann wird der Endzustand des Controllers als JSON 
ausgegeben. Wäre für testing und fuzzing interessant.

-> CLI wurde komplett neu aufgesetzt:

Komplett neues, schöneres und angenehmeres Interface.

-> Ünterstützung für .eep.hex Dateien:

Man kann nun während der Simulation dynamisch .eep.hex Dateien ins 
EEPROM laden und mit dem Befehl "xec <addr> <range>" als Char Literal 
wieder auslesen.

-> Disassembler Modus:

Ohne die CLI zu starten wird die .hex Datei decodiert und 
disassembliert. Dabei werden Labels, Kommentare und Newlines 
computergeneriert und eingefügt.

-> Disassemblierten Assembler Code redefinieren:

Man kann nun den Quellcode während der Simulation bearbeiten.

Es werden mittlerweile über 60 Instructions des AVR Instruction Sets 
unterstützt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.