Real-Time and Embedded Systems

BrickOS

BrickOS hieß früher legOS, musste jedoch wegen Namensähnlichkeiten zu Lego umbenannt werden.

Bei BrickOS handelt es sich um ein Entwicklungssystem aus zwei Teilen. Der erste ist ein Crosscompiler (gcc mit Hitachi H8-Backend), mit dem man Programme in C/C++ auf einem PC schreiben und für den RCX compilieren kann. Der zweite Teil ist ein POSIX-ähnliches Betriebssystem, das als Firmware auf dem RCX läuft.

Arbeiten an der Uni

Auf einigen Rechnern der Informatik ist ebenfalls legOS installiert. Mehr Informationen dazu gibt es auf der Homepage des lego-Accounts.

Installation unter Linux

Diese Seite soll eine einfache Anleitung geben, wie BrickOS unter Linux installiert und benutzt werden kann. Es gibt auch eine Windows-Portierung, mehr Informationen dazu gibt es auf der BrickOS Homepage.

Für die meisten aktuellen Linux-Distributionen gibt es im Netz mittlerweile passende Pakete. Wenn möglich, sollten diese auch benutzt werden. Mögliche Anhaltspunkte liefern die Suchmaschine rpmfind (Suchen nach legos und rcx) und die Paketsuche von Debian. Sollte es kein Paket für die Distribution geben, hilft hoffentlich die folgende Anleitung weiter.

Crosscompiler

Zunächst muß ein Compiler installiert werden, der unter Linux läuft und Binaries für den Hitachi H8 erstellen kann. Für Linux gibt es dafür für die verschiedenen Distributionen fertige Pakete. Ein paar hilfreiche Links dazu finden sich hier.

Schnittstelle freigeben

Da man später als normaler Benutzer auf die serielle Schnittstelle zugreifen muß, sollte man Lese- und Schreibrechte für alle Benutzer freigeben (auch als root). Dabei ist /dev/ttyS0 die erste serielle Schnittstelle.

chmod 666 /dev/ttyS0

BrickOS installieren und compilieren

Eine komplette Installationsanleitung gibt es in unserem Wiki:

http://rtsys.informatik.uni-kiel.de/wiki/index.php/BrickOS

Installation der Firmware

Jetzt kann das Betriebssystem auf den RCX übertragen werden. Der RCX sollte beim Einschalten einen Doppelpiepston ausgeben und im Display ein stehendes Männchen und eine 1 anzeigen. Ist das nicht der Fall, sind vielleicht noch alte Programme gespeichert. Sie lassen sich einfach durch das Entfernen der Batterien (und des Netzteils) für ein paar Sekunden löschen. Ist alles in Ordnung, wird mit

export RCXTTY=/dev/ttyS0

angegeben, an welcher Schnittstelle der Tower angeschlossen ist. Der Befehl (im legOS-Verzeichnis)

util/firmdl3 boot/brickOS.srec

überträgt die Firmware. Dazu sollten sich Tower und RCX gegenüberstehen. Gibt es dabei Probleme, hilft oft der Paramet

--slow

.

Entwicklung von eigenen Programmen

Im Verzeichnis demo von BrickOS befinden sich ein paar Beispielprogramme, die selbsterklärend sein sollten. Der Aufruf v

make dateiname.lx

compiliert eine C-Datei (das gilt auch für eigene Programme, die man mit in diesem Verzeichnis platziert).

  • cd demo
  • make helloworld.1x
  • ../util/dll helloworld.1x

Das Programm sollte jetzt geladen und startbereit sein. Bei den vorcompilierten Paketen für die verschiedenen Distributionen ist in der Regel ein Makefile dabei, das man direkt in ein beliebiges Projektverzeichnis kopieren und nutzen kann.

API Dokumentation

Auf der brickOS Homepage gibt es eine gute Dokumentation des APIs, dort unter "Command Reference" eine handliche Referenz und in der generierten API Dokumentation die komplette API Beschreibung.

Weitere Hinweise

Detailliertere Hinweise gibt es in der Rubrik Tipps und Tricks. Zum Beispiel zu den Themen Lichtsensor, Rotationssensor, Sensoren, Motoren, Energie und Infrarotkommunikation.

Hilfen zur Vermeidung von Programmierfehlern können Statische Analysewerkzeuge bieten.