Starter-Kit für Grafikapplikationen Mini-PC für rund 60 Euro?

GLYN hat mit dem eigens für Grafik-Applikationen entwickelten TMPA900-CPU-Board eine Lösung realisiert, die auf dem Toshiba-ARM9-Controller der TMPA900-Serie basiert und über eine flexible Softwareschnittstelle verfügt.

Das Board ist als kompletter Minicomputer in Form eines SO-DIMM-144 aufgebaut und für 49,90 Euro erhältlich. Auf dem Board befindet sich eine MCU mit ARM9-Kern (TMPA900) von Toshiba. Dieser liefert mit 200 MHz Taktfrequenz genügend Rechenleistung für viele Applikationen. Der integrierte Displaycontroller kann TFTs in Echtfarben bis zu einer Auflösung von 800 x 480 (WVGA) ansteuern und beherrscht die Skalierung, das Blenden sowie eine bikubische Filterung der Bildinhalte. Es wird also praktisch keine Rechenleistung durch die MCU beansprucht.

Da man für Display-Applikationen nie genug Speicher haben kann, hat man auf dem TMPA900-Board dafür eigens einen SD-Host-Controller integriert, der dieses preisgünstige Speichermedium ansteuert. An die USB-Außenwelt wiederum wird der Controller über die integrierte USB-Host/Device-Schnittstelle angeschlossen. Der Programmcode schließlich wird auf einem externen, 256 Mbyte großen NAND-Flash abgelegt.

Zu diesem muss man wissen, dass einige Blöcke dieses Speichers technologiebedingt bereits bei der Auslieferung defekt sind. Diese werden gekennzeichnet und nicht mehr weiter benutzt. Sollten beim Betrieb weitere Blöcke ausfallen, können die verlorenen Daten durch Fehlerkorrekturverfahren in anderen Bereichen wieder hergestellt werden. Für all diese Mechanismen wird ein Programm benötigt, das unter anderem eine Tabelle der als fehlerhaft markierten Böcke verwaltet. Hierzu wird der freie "u-boot" der Firma Denx in angepasster Form verwendet. Er dient zusätzlich als Bootmanager, indem er das User-Programm aus dem NAND-Flash in den DDR-RAM (64 Mbyte) kopiert und es anschließend startet. Dabei ist er völlig flexibel; egal, ob er eine C-Code-Applikation oder einen Linux-Kernel startet.

Dies ist auch der Punkt, an dem die Flexibilität des Boards einsetzt. Selbstverständlich kann der Benutzer seine Applikation - wie gewohnt - in C-Code schreiben und die volle Kontrolle über alle Ressourcen behalten. Hierzu existiert eine einfachste API, die Grundsymbole wie Kreise oder Boxen zeichnen kann. Bitmaps werden über ein Tool umgewandelt und können sehr einfach dargestellt werden. Für viele Applikationen ist diese einfache Herangehensweise gerechtfertigt und sinnvoll. Für komplexe Projekte aber sind weitere Tools nötig, und Linux ist hier ein möglicher Ansatz.

Den Durchblick im Linux-Dschungel bewahren

Im Bereich Linux stellt sich dem Linux-Anfänger immer das Problem, woher er überhaupt die freien Tools herbekommt. Sind die Quellen alle gefunden, ist es fast unmöglich, sich selbständig ein funktionierendes System zu generieren. Die komplexen Abhängigkeiten der einzelnen Linux-Pakete sind schier überwältigend. Kurzum, eine komplette ARM-basierende Distribution, die auf dem TMPA900-CPU-Board läuft, wird bis zur fehlerfreien Funktion sehr viel Zeit benötigen. Dies hat die Firma Kernel Concepts  erkannt und die kommerziell erhältliche Linux basierende Distribution "µcross" (www.mucross.com) entwickelt.

µCross ist eine sehr umfangreiche Cross-Toolchain mit angepassten Compilern und Bibliotheken und "Repository" zur Herstellung der Laufzeitumgebung. Mit dieser Toolchain ist es möglich, aus nahezu 6000 Paketen mit Hilfe von vorgefertigten Board-Config-Dateien eine individuelle Laufzeitumgebung zu erstellen. Das individuelle Kompilieren dieses Paketes dauert etwa eine Minute auf einem aktuellen PC. Das Paket läuft auf gängigen Linux-Distributionen wie Ubuntu, und es werden Portierungen zu Qt (http://qt.nokia.com/products) sowie GTK+ (www.gtk.org/) und DirectFB (www.directfb.org/) in diesem Paket gleich mitgeliefert.

Einen ähnlichen Ansatz verfolgt die Firma TARA Systems (www.embedded-wizard.de), um den Benutzer bei der User-Interface-Entwicklung so weit wie möglich unterstützen zu können. Als Betriebssystem auf dem Modul läuft ebenfalls Linux, doch der Einsatz anderer Betriebssysteme ist prinzipiell möglich. Für die Erzeugung der HMI-Schnittstelle kommt das Tool "Embedded Wizard" zum Einsatz. Auf intuitive Weise lässt sich direkt am Windows-PC die komplette Bedienoberfläche programmieren und auch austesten. Die Software greift hierzu auf eine eigene, leicht zu erlernende, objektorientierte Sprache zurück. Für die Entwicklung stehen verschiedene grafische und logische Objekte zur Verfügung, die durch den Anwender ebenfalls angepasst und erweitert werden können.

Ist die Applikation fertig entwickelt, wird ANSI-C-Code erzeugt, kompiliert und einfach auf das Zielsystem übertragen. Der optimierte Code zeichnet sich besonders durch seine hohe Performanz und Stabilität aus.