Pfad: Home => Gerd's AVR-Simulator    (This page in English: Flag EN)
Logo Avr_Sim-Logo

Gerd's AVR Assembler Simulator

AVR-Assembler-Simulator für das schrittweise Ausführen von Assemblerprogrammen - mit vielen Features und Extras. Hier noch die Seite für Simulatorhasser!



Beschreibung Download Statistik

1 Beschreibung

  1. einfache Bedienung, ohne große Einarbeitung anwendbar,
  2. arbeitet unter Windows und Linux, ausführbare 64-Bit-Versionen downloadbar,
  3. Lazarus-Pascal-Quellcode kostenlos verfügbar und modifizierbar, kann daher auch für viele andere Betriebssysteme kompiliert werden, für die es Lazarus gibt,
  4. Schneller und komfortabler Start von neuen Assembler-Projekten, erzeugt Standard-Text-Vorlagen für gegliederten Assembler-Quellcode in einem kurzen oder in einem ausführlichen Format aus, sowohl für Programme im Linearformat als auch Interrupt-orientierte,

    Neues Project

    Comprehensive Quellcode Interruptvektoren Quellcode Links die ausführliche Version, rechts die mit vorausgefüllten Interrupt-Vektoren.

    Kurzversion Quellcode Auch eine Kurzversion ohne jeden Schnickschnack ist verfügbar, eher für "schnell mal was ausprobieren",
  5. Editor für die Modifikation von Assembler-Quellcode, mit vielen hilfreichen Funktionen,

    Editor-Hilfe Editor

  6. Der Editor ab Version 1.7 hat auch eine vielfach konfigurierbare Option zur Syntax-Hervorhebung

    Einstellung der Syntax-Hervorhebung Syntaxhervorhebung

  7. Der Editor ab Version 1.8 ermöglicht die Auswahl aus 457 verschiedenen AVR-Typen mit den unterschiedlichen Verpackungsarten durch Angabe der benötigten Hardware:

    AVR-Typ-Auswahl

  8. Vergessen wie eine Instruktion in AVR Assembler heißt, wieviel Takte sie braucht oder welche Flags sie beeinflusst? Kein Problem mit avr_sim: Der Editor ab Version 2.1 gibt eine durchsuchbare Liste der Instruktionen aus:

    Instruktionen

  9. Anzeige von Header-Symbolen, Ports und Interrupts des betreffenden AVR-Typs,

    Port-Ansicht

  10. Anzeige der Hardware bei PDIP- und SOIC-Packungen,

    Device-Ansicht

  11. Einfügen der Hardware in den Quelltext mit einem Tastendruck (F2):

    Hardware in ASCII, PDIP Hardware in ASCII, TQFN

  12. Integrierter Assembler gavrasm zum schnellen Modifizieren und Assemblieren von Code,

    Assembler gavrasm

  13. Komfortables Setzen und Rücksetzen von Haltepunkten im Code, Speichern und Laden von Haltepunkten aus der Projektdatei,

    Haltepunkte-Editor

  14. Ab Version 2.3: Scan- und Alarmfunktion: zählt, piepst und/oder hält an, wenn ein Register oder ein Registerpaar, ein Portregister oder ein Portregisterpaar, eine SRAM-Speicherstelle oder ein SRAM-Paar beschrieben, mit einem einstellbaren Wert beschrieben oder gelesen wird,

    Scan- und Alarm-Funktion

  15. Steuerung des Simulationsvorganges mit Simulatorfenster, gibt im Registerfenster jetzt auch dezimale Zahlen und Registerpaare aus,

    Simulation

  16. Einfache Überwachung von I/O-Ports und Timern, fast alles kann auch manuell geändert werden (Bits, Interrupts, Vorteiler, etc.) ,

    Port/Timer-Ansichten

  17. Darstellung von SRAM-Inhalten,

    SRAM-Ansicht

  18. Darstellung von EEPROM-Inhalten sowie korrektes Timing bei Schreib- und Lese-Operationen in/aus dem EEPROM,

    EEPROM-Ansicht

  19. Darstellung und Simulation des Watchdogs,

    Watchdog timer

  20. Darstellung, Simulation und Manipulation von ADC-Wandlerkanälen, ab Version 2.7 einschließlich konfigurierbaren Differentialkanälen und Temperaturmessung, und ADC mit Differentialkanal

  21. als Extra eine Designhilfe mit einer 12/16-Tasten-Widerstandsmatrix und Spannungseingabe über die Tastatur, ab Version 2.7 auch mit internen Referenzspannungen,

    ADC mit Widerstandsmatrix

    sowie mit Anzeige der Tastenspannungen,

    Widerstandsmatrix Spannungsanzeige

  22. einstellbares Vierkanal-Oszilloskop zur Darstellung von Digitalsignalen an wählbaren Ausgabepins und an Output-Compare-Pins von Timern,

    Oszilloskop Output Compare Oszilloskop I/O-Pin

  23. Darstellung von R/2R-Analogwerten an beliebigen Ports mit wählbarer Auflösung in bis zu vier Kanälen gleichzeitig in wählbaren Farben,

    Oszilloskop Analogwerte Mehrkanal-Oszilloskop
  24. ab Version 2.3: Darstellung von Analogwerten des internen DAC-Wandlers in AVRs, die solche intern haben.

    Oszilloskop interner DAC-Wandler
  25. Ab Version 2.8: Digital- und Analogsignale können auch übereinander gestapelt angezeigt werden. Oszilloskop gestapelt

    Die Zeitskala kann nun auch auf einen festen Zeitpunkt fixiert werden.
  26. ab Version 2.4: zweites Fenster in den Quellcode für Code-Vergleiche oder Kopieraktionen,
  27. ab Version 2.5: komfortables Speichern aller geänderten Register oder beliebiger auswählbarer Register, Portregister und/oder SRAM-Inhalte in externen tabulator-separierten .csv-Dateien zum Einlesen und zur Auswertung in Spreadsheets,
  28. Ab Version 2.6: Bequemes Springen im Code beim Simulieren (Jump to), auch als Unterprogrammaufruf mit der Adresse im Stack (Call) oder für einen simulierten Interrupt mit gelöschter I-Flagge (Call ISR),

    Jump/Call/ISR-Call

  29. Neu in Version 2.9: avr_sim simuliert jetzt auch das interrupt-gesteuerte Senden und Empfangen über das (oder die) seriellen UART(s):

    Serielles Senden und Empfangen mit dem UART

  30. Neu ab Version 2.9: avr_sim führt eine Nutzerstatistik im Internet. Gezählt werden die von den Nutzern verwendeten AVR-Typen und die offenen Fenster bei der Simulation. Keine Angst: alles erfolgt anonym und transparent: du kannst in Deinem Browser sehen, was genau da übermittelt wird.
Beschreibung Download Statistik

2 Neueste Version

Version 2.8 der Software korrigiert viele Fehler und bietet bei der Scope-Darstellung neue Möglichkeiten (Stapeln von Darstellungen, Fixierung der Zeitskala).

Bei der Linux-Version tritt bei meiner Version ein Fehler bei Timern auf: das Prescaler-Fenster zeigt eigenartig fehlerhafte Inhalte, der TCNT wird nicht aktualisiert. Ich hoffe, dass das nur bei meinem Linux der Fall ist. Fehlerberichte darüber sind sehr willkommen.

2.1 Lazarus Pascal Quellcode

Der Quellcode ist für Lazarus Pascal geschrieben und für Windows und Linux verfügbar.

2.2 Ausführbare Versionen

Die ausführbaren 64-Bit-Dateien sind für Windows und für Linux verfügbar (beides als 64-Bit-Versionen).

Für Windows gibt es eine Kurzversion und eine Debug-Version mit aktiviertem Range-Checking.

32-Bit-Versionen und ausführbare Versionen für andere Betriebssysteme müssen mit den Quellcode-Dateien und mit Lazarus erzeugt werden. Wie man das macht steht im Handbuch ausführlich beschrieben.

2.3 Handbuch zur Benutzung

Das deutschsprachige Handbuch enthält wichtige Hinweise zur Installation von avr_sim, zum Kompilieren von avr_sim und stellt alle verfügbaren Features von avr_sim an bebilderten Beispielen dar.

Für diejenigen, die gerne wissen möchten, wie die Software intern aufgebaut ist und funktioniert, habe ich einige Hinweise in eine englischsprachige Beschreibung (im Download unter "Description") abgelegt.

2.4 Alle verfügbaren Versionen

Zur Download-Seite

3 Fehlerberichte

Aufgrund der ziemlich hohen Komplexität der Aufgabenstellung (alleine die Entwicklung der AVR hat fast 2 Jahrzehnte gedauert und die Innereien eines AT90S1200 unterscheiden sich gewaltig von denen in einem ATtiny814 oder einem ATmega324) ist es unvermeidlich, dass die Software immer noch Fehler enthält und spezielle Hardware-Eigenschaften nicht korrekt abbildet. Da es mich ziemlich überfordert, die mehr als 150 verschiedenen AVR-Typen mit ihren jeweils Dutzenden von besonderen Hardware-Features auszutesten, bin ich auf Eure Hilfe angewiesen. Falls Ihr also auf Fehler und fehlende Features stoßt, bitte ich um eine aussagekräftige Rückmeldung, möglichst mit Quellcode (Email-Adresse auf der Titelseite des Handbuchs). Ich bin gerne bereit, in meiner reichlich bemessenen Freizeit (Rentner) solche Fehler zu berichtigen. Nur so funktioniert es, die Software noch zu verbessern. Danke für jeden Hinweis ...

3.1 Bekannte Fehler der aktuellen Versionen

Version 2.8 zeigt ein eigenartiges Verhalten unter Linux: das Prescaler-Feld von Timern zeigt fehlerhafte Inhalte an und aktualisiert dann TCNT auch nicht mehr.

Version 2.7 hat einen Fehler beim Simulieren von Timern in ganz bestimmten Modi: es treten geisterhafte Interrupts des Typs OCnA auch bei Timern auf, die gar nicht aktiv sind, und die zum Stop der Simulation entweder durch Range Check Errors oder durch den unbearbeiteten Interrupt führen. Als Abhilfe kann der betreffende Compare-Wert auf irgendeinen Wert größer als Null eingestellt werden, der Zähler selbst bleibt aber inaktiv.

Die früher veröffentlichte Version 2.6 hat einen Fehler beim Simulieren von Timern. Der macht sich dadurch bemerkbar, dass der Vorteiler nicht angezeigt wird. Bitte bei Timer-Simulationen die Version 2.5 verwenden.

4 Statistik

4.1 Monatliche Zugriffe

Dies hier zeigt die monatlichen Zugriffe auf die avr_sim-Webseite und die Downloads der Linux- und Windows-Dateien. Es sieht so aus, als ob die Handbücher zu den Versionen ebenfalls recht populär sind.

Monatliche Zugriffe

4.2 Zugriffe nach Versionen

Dies hier zeigt die Zugriffe auf die verschiedenen Versionen von avr_sim. Neue Versionen erscheinen etwa alle drei bis vier Monate.

Zugriffe nach Versionen

4.3 Zugriffe nach ausführbaren Versionen und Quellcode

Der Anteil der Selber-Kompilierer an den Gesamt-Downloads ist erstaunlich hoch.

Ausführbar vs. Quellcode


Zum Seitenanfang Beschreibung Download Statistik


5 Links zu avr_sim-Anwendungen und -Nutzungen

Die folgenden Links führen zu Anwendungen von avr_sim auf meiner Webseite: Anthony Peck hat avr_sim zur Verfolgung seiner Erzeugung von Zufallszahlen mit einem ATtiny13 in seinem Blog, verwendet und davon auch ein Video veröffentlicht.

Bitte sendet mir weitere Anwendungsberichte von avr_sim an gavrasm (bei) avr-asm-tutorial.net zu, ich freue mich darüber.

Zum Seitenanfang Beschreibung Download Statistik


©2017 - 2022 by http://www.avr-asm-tutorial.net