Fork me on GitHub

Quadrofly Building a quadrocopter

7Mrz/120

ATMega simuliert

ASM (CC BY-SA 2.0 PabloBD)

Da die Bauteile für meine RS-232-Schaltung immer noch nicht eingetroffen sind, ich die Software dafür aber bereits am Entwickeln bin, suchte ich eine Möglichkeit, den ATMega644 zu simulieren. Dabei bin ich auf das Tool Simulavr, welches für Windows und Linux zur Verfügung steht, gestoßen. Da man damit einen Mikrocontroller für die Software simulieren kann, konnte ich mit meinem Framework loslegen. Dieses ermöglicht die Ausgabe von Debug-Nachrichten über UART und in Simulavr.

Um das Programm in Simulavr zu testen, muss man die Präprozessordirektive #define SIMULAVR_AVAILABLE in der Datei main.h einkommentieren, damit die Unterstützung für den Simulator mit in die Software kompiliert wird.

Anschließend kann man den Quellcode mit make all kompilieren und die Software per Aufruf von simulavr --device atmega644a --file main.elf -W 0x20,- -m 10000000000 simulieren. --device gibt an, für welchen Mikrocontroller simuliert wird, mit --file wird das kompilierte Programm übergeben, -W 0x20,- hört auf den virtuellen Port in den die Software die Debug-Nachrichten schreibt und -m gibt die Anzahl der Millisekunden an, die unser Simulator simulieren soll.

Den kompletten Quellcode findet man bei GitHub: https://github.com/ni-c/quadrofly/tree/uart

Das Ergebnis sollte folgendermaßen aussehen:


$ simulavr --device atmega644a --file main.elf -W 0x20,- -m 10000000000
Hello debug!
Hello debug!

Ran too long. Terminated after 10000000000 simulated nanoseconds.

$

Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Leave a comment

Noch keine Trackbacks.