AVR Assembler Simulator

Gast #5228494
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
#5228715
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
Angehängte Dateien:
Gast #5229059
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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren