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
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
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
@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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.