„hello world“ – Erstes Beispielprogramm mit Riot OS

Nachdem die virtuelle Machine eingerichtet wurde und Riot OS heruntergeladen wurden, kann nun das erste Beispielprogramm kompiliert und ausgeführt werden. In diesem Beitrag möchte ich euch zeigen, wie ihr euer erstes Beispielprogramm in Riot OS ausführt. Voraussetzung für dieses Tutorial ist, dass ihr die bereits die benötigten Programme und Tools installiert habt.

"hello world" - Beispielprogramm

Das "hello world" - Beispielprogramm ist das kleinste und einfachste Programm in Riot OS. Es besteht aus einem C-File und einem Makefile. Zu finden ist das Programm im Ordner "examples" ("RiotOS/examples/hello-word"). Im C-File ist das eigentlichen Programm. Das Makefile beinhaltet dieverse Anweisungen, die für das Kompilieren des Programms benötigt werden. Dazu gehört zum Beispiel das verwendete Board oder diverse Module, welche für das Programm benötigt werden. 

main.c

Wie schon gesagt, das hello-word-Beispielprogramm ist das einfachste Programm in Riot OS. Es besteht nur aus der main-Funktion. Innerhalb dieser wird "Hello World!" ausgegeben, gefolgt vom verwendeten Board und dem Mikrocontroller. 

Makefile

Das Makefile beinhaltet Anweisungen für den Compiler. Da es sich hierbei um ein einfaches Programm handelt, ist das Makefile relativ klein. Dennoch sind hier einige wichtige Angaben, die bei keinem Riot-OS-Programm fehlen dürfen.

Am Anfang wird der Name des Programm ("APPLICATION") angegeben. In diesem Fall "hello-world". Der nächste Parameter "BOARD" gibt an, welches Board verwendet wird. In diesem Fall wird das "nativ"-Board verwendet. Dieses Board ist eine Art Simulationsboard, welches ohne echte Hardware verwendet werden kann. Später lassen sich mit diesem Board ganze simulierte Sensornetzwerke einrichten. Dazu aber später mehr. 

Der nächste Parameter "RIOTBASE" gibt den Ort der Riot OS-Installtion an. Über den Parameter "CFLAGS" lassen sich diverse Flags setzen. In diesem Fall wird eine Art Hilfe aktiviert, welche den Code auf Fehler bzw. Sicherheitsaspekte untersucht. Der Eintrag "QUIET" unterdrückt diverse Meldungen beim kompilieren. 

Programm kompilieren

Um das Programm auszuführen loggen wir uns zunächst in unsere virtuelle Maschine ein. Danach wechselt man in das Verzeichnis des Beispielprogramms. Habt ihr den gemeinsamen Ordner wie in meinem Blogbeitrag eingerichtet, befindet sich Riot OS im Ordner "wsn". Ansonsten entsprechend anpassen.

Sobald man sich im Ordner des Programms befindet, kann man mit dem Befehl "make" das Programm kompilieren.

In der Ausgabe sieht man nun, welche Dateien mit eingebunden werden. Jetzt beim "hello world"-Beispiel ist dies noch relativ unspektakulär. Später bei größeren Projekten kann diese Ausgabe jedoch hilfreich sein um zu schauen ob alle Module eingebunden wurden.

Am Ende wird die große der erstellten elf-Datei angezeigt und der Pfad zu dieser. Diese Datei wird später auf die Hardware geladen und beinhaltet den komplett benötigten Code, damit das gewünschte Programm auf der Hardware läuft. 

Da wir zum Anfang nur auf dem Simulationsbaord arbeiten werden, kann das eigentliche Flashen (das Laden der Software auf die Hardware) ausgelassen werden. 

Programm ausführen

Nach dem Kompilieren kann man nun das Programm ausführen. Bei Verwendung des nativ-Board kann dies unter anderem direkt über die erstellte elf-Datei erfolgen. Dazu führt man diese einfach aus. Den Pfad der Datei erhält man am Ende der Kompilierung. Siehe Bild oben. 

./bin/native/hello-world.elf

Da dieser Weg jedoch etwas umständlich ist, da man den Pfad der Datei wissen und angeben muss, gibt es eine schnellere Alternativen. 

make all term

Durch den obigen Befehl wird das Programm kompiliert und anschließend direkt ausgeführt. Zunächst sieht man die gleiche Ausgabe wie beim einfachen make-Befehl. Anschließend wird man direkt mit dem nativ-Board verbunden und das Programm wird ausgeführt.

Hier erkennt man nun das "Hello World!" in der Ausgabe. Das Programm wurde also ordnungsgemäß ausgeführt. Herzlichen Glückwunsch - ihr habt euer erstes Riot OS Programm kompiliert und ausgeführt 😉 


Du möchtest keinen Beitrag zum Thema Riot OS verpassen?

Abonniere meine Email-Benachrichtigung und erhalte eine Email, sobald ich einen neuen Beitrag veröffentliche. Du kannst dich selbstverständlich jederzeit wieder austragen.


 

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

Benachrichtige mich zu:
avatar
Fotos und Bilder
 
 
 
sonstiges Dateiformat