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

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