Pfad:
Home =>
Gerd's AVR-Simulator => Simulator-Hasser-Seite
(This page in English:
)
Ich hasse Simulatoren, warum sollte ich diesen trotzdem benutzen?
Nun, ganz einfach: weil er bei vielen anderen Aufgaben nutzbringend sein kann.
Nützlich: der Editor
Wenn Du mit anderen Editoren arbeitest, kann der Editor von avr_sim trotzdem
nützlich sein. Alle relevanten Include-Dateien sind über die Tabulatoren
zugänglich, es werden keine zusätzlichen Editorfenster benötigt.
Auch das Öffnen und Schließen von Editorfenstern entfällt.
Die Syntax-Formatierung in avr_sim ist einfach und effektiv. Schnell sind
Änderungen bei Farben und Formaten eingestellt und können bei Bedarf
auch im Projektordner abgelegt und beim erneuten Öffnen neu eingelesen werden.
Die F2-Taste bringt ein ASCII-Bild des Chips zutage, mit dem man das Schaltbild
des Projekts zeichnen kann. Kein Durcheinander mehr mit unauffindbaren Portpins
und dem aufwändigen Nachschlagen im Schaltbild des Projekts, alles ist
schon im Quellcode eindeutig ablesbar.
Ebenfalls nützlich: Ein-Klick-Assemblieren
avr_sim assembliert den Quellcode mit einem einzigen Klick, da der Assembler
gavrasm integriert ist. Die gefundenen Fehler können mit zwei Klicks
beseitigt werden. Keine Batchdateien zum Assemblieren nötig, kein
Durcheinander mit Assembler-Listings in denen das Auffinden der Quellzeile
mühsam ist. Alles ist sofort bei der Hand.
Sehr nützlich: Die Device-Auswahl
Zu Beginn eines AVR-Projekts ist es notwendig, die Ziel-Hardware aus den
mehr als 400 verschiedenen AVR-Typen auszuwählen. Bei Microchip kann
man zwar riesige Excel-Sheets dafür finden, aber die Übersicht
fehlt.
Kein Problem unter avr_sim: einfach "New" und "Device selector"
drücken, die nötigen Eingenschaften zusammenklicken und aus der
Liste der passenden AVRs den gewünschten Typ und seine Packungsart
wählen. Das ist wesentlich schneller als sich durch viele
Typ-Handbücher wälzen zu müssen, um festzustellen, ob der
jetzt geht oder nicht. Braucht man nur das Schaltbild für einen bestimmten
Typ, dann ist der Device-Selektor schneller als das Blättern im Handbuch.
Einmal avr_sim installiert spart daher jede Menge Suchzeit.
Ebenso nützlich: Vorlagen für Assembler-Quellcode
Wenn man ein neues Projekt beginnt, ist man erst mal eine ganze Zeit damit
beschäftigt, eine Gliederung und Standard-Texte für den Quellcode
einzutippen. Die Interrupt-Vektor-Sprungliste will gemacht sein,
Überschriften für Konstanten, Register und SRAM wollen eingetippt
werden, mit vielen Semikolons und Sternchen, usw. usf. Das alles erspart
avr_sim. Abhängig von ein paar Standard-Einstellungen produziert
avr_sim eine vollständige und brauchbare Vorlage für den Quellcode
und spart dadurch jede Menge Zeit und Tipparbeit. Sogar die Interrupt-Vektoren
sind alle in der richtigen Reihenfolge angegeben und man braucht aus dem RETI
nur einen RJMP machen, um einen Interrupt zu aktivieren.
Selbst wenn Du nach der Erzeugung der Vorlage diese speicherst und avr_sim
verlässt, um mit einem anderen Editor damit zu arbeiten, hat Dir die
Vorlage jede Menge Zeit erspart. In der gesparten Zeit hättest Du
avr_sim schon heruntergeladen, ausgepackt und gestartet. Sogar das Kompilieren
des avr-sim-Quellcodes mit Lazarus ginge schneller als die eingesparte Zeit
durch eine einzige Vorlage.
Du arbeitest mit einem anderen Betriebssystem als Windows oder Linux?
Auch kein Problem: einfach den avr_sim-Quellcode mit Lazarus für das
andere Betriebssystem kompilieren ("Write once, compile everywhere")
und schon läuft avr_sim auch dort. Kein Bedarf für den Download
von 1 GB Software wie beim Studio, kein Herumschlagen mit virtuellen Maschinen
und keinerlei Augen mit großen Fragezeichen, wenn die Installation von
USB-Treibern in der virtuellen Maschine scheitert (was sie sogar manchmal
in nativem Windows manchmal tun). Alles läuft wie geschmiert und Du
kannst Dich ganz auf die eigentliche Programmierarbeit stürzen anstatt
mit hausgemachten Problemen herumzueiern.
Du brauchst nur mal schnell einen Symbol-Wert aus der Device-Include?
In avr_sim auch kein Problem: einfach mit "View" und "Symbols"
und mit Eintippen von Teilen des Namens. Viel schneller als das Downloaden
von 1 GB Studio, herauspfriemeln der def.inc-Datei und der Suche nach dem
Symbolnamen. Bei avr_sim alles direkt bei der Hand.
Ein Mnemonic vergessen?
Falls Du den Quellcode schon mal mit avr_sim geöffnet hattest, geht's
ganz schnell: Projekt mit dem Quellcode starten oder aus der Projektliste
heraussuchen, öffnen, im Editor mit einem Rechtsklick (für
Rechtshänder) die Mnemonikliste öffnen und nach potenziellen
Namensbestandteilen suchen. da gibt es dann auch gleich noch die SREG-Flaggen
und die Ausführungstakte. Menmonic einfügen, speichern und zum anderen
Editor wechseln. Der sollte gemerkt haben, dass die Datei geändert ist
und sollte das eingefügte Mnemonic lesen.
Schlussfolgerung: Probier's einfach mal.
Nein, Du musst nicht simulieren, es gibt genug andere Gründe für
die Verwendung von avr_sim. Du darfst weiterhin Simulatoren als was für
Anfänger bezeichnen und musst niemals den "Simulate"-Menueintrag
betätigen. Wenn Du es dann aber trotzdem mal gemacht hast und damit
herausgefunden hast, warum der Timer-Interrupt nicht funktioniert (weil Du
das Interrupt-Enable des Timers nicht gesetzt hast oder weil Du statt des
Richtigen den Vorteiler eines ganz anderen Timers eingeschaltet hast), wirst
Du avr_sim anfangen zu mögen. Kein Bedarf mehr, eine LED mit Vorwiderstand
anzuschließen und die Interrupt-Service-Routine des Timers mit Blinkcode
zu verunstalten, avr_sim zeigt keinen gelben OVF-Interrupt (im ersten Fall) oder
beim Timer tut sich gar nix, nur beim falschen Timer zählt was (im zweiten
Fall).
Alles aber kein Grund, nach avr_sim süchtig zu werden. Es ist einfach ein
weiteres und effektives Tool zum Debuggen (ohne die unvermeidliche LED).
Probier es aus, und wenn es mehr Probleme lösen hilft als es selber macht,
dann biste richtig.
©2017 - 2020 by
http://www.avr-asm-tutorial.net