Forum: Projekte & Code AVR Assembler Simulator


von Gerhard Schmidt (Gast)


Lesenswert?

Hallo.

Unter http://www.avr-asm-tutorial.net/avr_sim/index_de.html gibt es 
einen in Lazarus-Pascal geschriebenen AVR Assembler Simulator avr_sim. 
Er kann
- asm-Quellcodedateien lesen, editieren, schreiben, assemblieren und
- im Simulator schrittweise oder bis zu gesetzten Breakpoints ausführen,
- SREG, Register, Ports, SRAM und EEPROM-Inhalte anzeigen,
- Ports und ihre Funktionen (INT, PCINT) anzeigen,
- Timer anzeigen (mit allen verfügbaren Timermodi) und manipulieren,
- EEPROM lesen und schreiben simulieren,
- AD-Wandler-Zustände anzeigen und manipulieren (enthält als Gimmick 
auch einen 3*4 oder 4*4 Tasteneingabe-Widerstandsmatrix-Simulator),
- Interrupts korrekt verarbeiten (mit Prioritätsregeln),
- etc.

Kennt intern alle AVR und kann auch für ältere AVR-Typen bis zurück zum 
AT90S1200 verwendet werden (noch nicht alle alten Typen sind getestet). 
Alle PDIP/SOIC-Packungen können mit allen Pinfunktionen angezeigt 
werden.

Der Quellcode ist offen und kann mit Lazarus/FPC kompiliert werden. 
Fertig kompilierte 64-Bit-Versionen für Windows und Linux sind 
verfügbar.

Ein Handbuch mit ausführlicher Beschreibung der einzelnen Funktionen ist 
ebenfalls dabei.

Ich würde mich über Rückmeldungen freuen, sogar über Fehlermeldungen.

mfg
gerd

von Thomas H. (campino63)


Angehängte Dateien:

Lesenswert?

Hallo Gerd,

gerade versuche ich mich an einem Assembler Projekt mit dem ATTiny12. Da 
kommt mir dein Simulator gerade recht.

Erst mal Danke für die Arbeit. Sieht schon mal brauchbar aus.

Was mir als erstes auffällt ist, dass bei mir das Menü View fehlt.

Ich hab ein neues Projekt mit dem ATTiny12 angelegt. Der hat kein SRAM, 
daher den Teil entfernt und kompiliert. Ging problemlos. Danach die 
Simulation gestartet. Dabei kam der Fehler der im Bild dargestellt ist. 
Der gleiche Fehler kommt auch wenn ich das Projekt speichere und wieder 
öffnen will. Nach Klick auf ok geht es weiter, aber das Projekt ist 
leer.

Ich benutze die Linux Version, hab auch mal unter Windows getestet, 
dabei passiert das gleiche.

Ich hoffe, du kannst mit meinen Angaben was anfangen und das Problem 
ausräumen.

Bis neulich ...
  Thomas

von Gerhard Schmidt (Gast)


Angehängte Dateien:

Lesenswert?

Thomas H. schrieb:
> Was mir als erstes auffällt ist, dass bei mir das Menü View fehlt.

Jau, da habe ich wohl etwas zu viel versprochen: der ATtiny11 und der 
ATtiny12 waren zwar im Assemblerteil korrekt mit ihren Symbolen 
implementiert, aber in der Unit avr_sim_deviceu.pas nicht mit ihrem 
Pinout gespeichert. Da avr_sim die Position von INT- und PCINT-Eingängen 
im Port sucht, musste das ja hier schiefgehen. Das habe ich jetzt 
nachgeholt, die erweiterte Unit habe ich angehängt.

Das offenbart eine ernste Schwachstelle in der Software: Für alle 
Devices, die es nicht in PDIP- oder SOIC-Packungen gibt, passiert dieser 
Fehler so. Da muss ich auch noch die ganzen 64- und 96-poligen 
Prozessoren in die langweilige Datenbank eintippen. Das ist was für 
lange Winterabende.

Die von Dir angehängte Fehlermeldung ist eine Überlaufmeldung, wie sie 
bei der Überwachung von Lazarus beim Zugriff auf Speicherstellen 
außerhalb definierter Arrays erzeugt wird. Führst Du avr_sim im Lazarus 
mit Debugger aus, wirst Du vom Debugger an die Quellcode-Zeile geführt, 
die zu dem Fehler geführt hat. Die Meldung ist bei mir auch aufgetreten, 
solange ATtiny12 noch nicht in der deviceu war. Das dürfte sich dann 
erledigt haben, wenn ich alle AVR-Typen in der deviceu drin habe.

Melde mir gerne weitere Fehler zu. Gerne auch über gavrasm (at) 
avr-asm-tutorial.net.

mfg
gerd

von Gerhard Schmidt (Gast)


Lesenswert?

avr_sim Version 0.6 ist online:

http://www.avr-asm-tutorial.net/avr_sim/index_de.html

mfg
gerd

von Thomas (kosmos)


Lesenswert?

@Gerhard Schmidt: Spitze was du da auf die Beine gestellt hast, 
vielleicht ist das die Lösung um endlich einen AVR-Simulator auf meinem 
Raspberry Pi3 nutzen zu können.

Leider funktioniert die ausführbare Datei unter Raspbian(angepasstes 
Debian) nicht.

von Gerhard Schmidt (Gast)


Lesenswert?

Hallo.

Kenne mich mit Raspberry nicht aus, aber es gibt viele Wikis wie man 
Lazarus darauf installiert. Dann müsste sich aus den Quellcode-Dateien 
ein avr_sim bauen lassen.

mfg
gerd

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.