RTEMS hilft Abhängigkeiten zu reduzieren

fotolia_55602540

 

Open-Source Software gewährleistet langfristige Verfügbarkeit und Stabilität der Software-Plattformen für Echtzeitbetrieb

In den letzten Jahren haben viele Entwickler die Vorteile von Open-Source-Software schätzen gelernt: Neben den Kostenvorteilen zählen auch die offen gelegte Implementierung, die Zertifizierbarkeit und die Anpassbarkeit der Funktionalität an die eigenen Bedürfnisse dazu. Die Entscheidung für eine bestimmte Betriebssystemplattform hat für viele Firmen auch eine strategische Bedeutung, da sie über viele Jahre und Folgeprojekte stabil bleiben sollte. Hier macht das Prinzip der quelloffenen, freien Software unabhängig von den Entscheidungen des Betriebssystemanbieters. Deshalb gewinnt RTEMS nicht nur in Luft- und Raumfahrt, sondern auch bei industriellen und automobilen Anwendungen Marktanteile.

Woher rührt das Interesse an RTEMS?

RTEMS hat seine Wurzeln im Bereich der US Army, es wurde für Steuerungszwecke als Ersatz für ein kommerzielles Echtzeit-Betriebssystem entwickelt. Schon relativ bald wurde sein Quellcode veröffentlicht und unter einer modifizierten GPL (General Public License) nutzbar. Seit diesem Zeitpunkt orientiert sich die Weiterentwicklung einerseits an den Anforderungen der Anwender, andererseits aber an den festen Eckpfeilern Echtzeitfähigkeit, Quelloffenheit und kostenfreie Nutzbarkeit. Diese Stabilität wissen viele Nutzer inzwischen zu schätzen.

Schnellere Time-to-Market ist gefragt

Seit Jahren werden immer mehr eingebettete Systeme mit speziellen Betriebssystemen ausgestattet. Neben den klassischen Grundfunktionen wie Multitasking und Intertask-Kommunikation gewinnen erweiterte Funktionalitäten wie Dateisysteme für Flash-Karten, aber auch USB- und Netzwerkanbindung immer mehr an Bedeutung. Ein schlüsselfertiges Betriebssystem erleichtert hier die Entwicklung ungemein. Die Entwickler können sich stärker auf die produktspezifischen Herausforderungen konzentrieren und sich auf die fertigen Dienste und Funktionen des Betriebssystems abstützen.

Risiken von Closed Source

Allerdings gibt es ein böses Erwachen, wenn das Betriebssystem aus verschiedensten Gründen plötzlich nicht mehr zur Verfügung steht: sei es, weil der Hersteller einzelne Prozessorarchitekturen nicht mehr unterstützt, sich strategisch neu ausrichtet oder schlicht vom Markt verschwindet. Die Weiternutzung in bestehenden Produkten ist zwar meist noch sichergestellt, allerdings muss man dann ohne Bugfixes oder gar Funktionserweiterungen auskommen. Eine Nutzung desselben Betriebssystems in einem Nachfolgeprodukt ist jedoch unmöglich, das angeeignete Betriebssystem-Know-how und der produktspezifische Quellcode ist in weiten Teilen verloren.

Alternative Open Source hat sich bewährt

Das kann mit RTEMS nicht passieren. Das „Open Source“-Prinzip von RTEMS in Verbindung mit einer freien Nutzungslizenz löst diese Abhängigkeit vom System-Hersteller. Der offene Quellcode ermöglicht ein tiefer gehendes Verständnis des Betriebssystems; neben großen Erleichterungen bei der Applikationsentwicklung wird dadurch auch der Wissensaustausch von Entwickler zu Entwickler gefördert. Die Anwender können zwar weltweit auf kommerziellen Support zurückgreifen, sind aber nicht abhängig davon. Hinzu kommt noch, dass viele Verbesserungen, die Anwender für RTEMS entwickelt haben, in das System integriert wurden, damit allen Nutzern zur Verfügung stehen und mit dem Betriebssystem kontinuierlich weiter gepflegt werden.

Ein Beispiel aus der Anwendung

Beispielhaft für die Einsatzmöglichkeiten von RTEMS kann hier ein System zur Datenaufzeichnung (Logger) im Rennsportbereich beschrieben werden, das der Autor mitentwickelt hat. Die Kernanforderungen waren anspruchsvoll:

  • Integration der Hardware in die speziell konzipierte Motorsteuerung
  • Bootzeit unter 5 Sekunden
  • Aufzeichnungsdatenraten im Bereich von 500-1000KByte/sec
  • maximale Aufzeichnungsdauer im Stundenbereich
  • Speicherung der Daten auf Flashkarte
  • Abruf der Daten per Ethernet mit mindestens 80MBit/sec
  • Flexibilität für sich ändernde Einsatzszenarien
  • Ankopplung an den CAN-Bus

Die Hardware wurde für diese Anwendung maßgeschneidert entwickelt. Als zentraler Mikrocontroller kam dabei ein MPC5200 von Freescale zum Einsatz, der nicht nur über alle benötigten Schnittstellenmodule verfügt, sondern auch ausreichend Rechenleistung bietet.

Warum RTEMS und kein anderes Betriebssystem?

Nach Analyse der Anforderungen wurde RTEMS als Betriebssystem ausgewählt: Alle benötigten APIs für die benötigten Funktionalitäten waren vorhanden und durch die quelloffene Struktur war ersichtlich, dass die Anpassungen an die speziellen Anforderungen des Systems unterstützt wurden.

Abbildung 1: Grundstruktur Software

Abbildung 1: Grundstruktur Software

Die weitere Entwicklung erfolgte dann in mehreren Schritten:

  • Die Portierung von RTEMS an die spezifische Hardware-Plattform und deren Schnittstellen wurde von einem RTEMS-Support-Center durchgeführt.
  • Die Struktur der Applikations-Software wurde geplant und dann, unterstützt vom RTEMS-Support-Center, von den Softwareentwicklern innerhalb des Rennsportteams durchgeführt.
  • Der Durchsatz der kritischen Datenpfade wurde überprüft und dabei einige Schwachstellen identifiziert, die sich durch die Struktur der eingesetzten Hardware ergaben. Daher wurde das Zusammenspiel der beteiligten Softwarekomponenten optimiert, begonnen bei den Schnittstellentreibern über die Filesystem-Unterstützung von RTEMS bis zur Applikation.

 

Abbildung 2: Datenfluss und Task-Aufteilung

Abbildung 2: Datenfluss und Task-Aufteilung


Gerade die Durchsatzoptimierung gestaltete sich relativ einfach, da auch die Betriebssystemmodule für eine Analyse offen sind. Der Quellcode zeigt die generelle Struktur und Funktionsweise, erlaubt Änderungen und Anpassungen. So konnte die Puffer-Verwaltung im genutzten Dateisystem auf große Dateien hin optimiert werden und die Unterstützung von DMA-fähigen Flash-Treibern verbessert werden. Damit wurden die ehrgeizig gesetzten Ziele erreicht.
Hier zeigen sich exemplarisch die Vorteile des Open-Source-Prinzips von RTEMS: Die Verbesserungen, die für dieses Kundenprojekt am Betriebssystemcode vorgenommen wurden, wurden ins Quellcode-Repository von RTEMS übernommen. Einerseits profitieren heute alle RTEMS-Anwender von den Verbesserungen. Andererseits stehen die Optimierungen dem Kundenprojekt auch in zukünftigen Betriebssystemversionen weiter zur Verfügung, da sie dort weiter gepflegt werden.
Das entwickelte System zur Datenaufzeichnung hat sich inzwischen über mehrere Jahre bewährt. Der Erfolg sorgt dafür, dass auch in benachbarten Applikationsfeldern über Einsatzmöglichkeiten dieses flexiblen Betriebssystems diskutiert wird.

Details zu RTEMS
Das Betriebssystem ist bereits in vielen Marktsegmenten im Einsatz . Diese umfassen neben dem Automobilmarkt auch fahrerlose Transportsysteme, Satellitentechnik, Telekommunikation, Medizintechnik, Robotik, Audiotechnik, Wehrtechnik und Industrieanwendungen. Mittlerweile ist RTEMS auf einigen 16 Bit- und fast allen 32 Bit-Architekturen einsetzbar. Dazu zählen PowerPC, ARM, SPARC, MIPS, M68k, ColdFire und Microblaze. Für ein minimales System reichen bereits 25 KByte RAM.
Der Systemkern teilt Rechenzeit, Speicher und I/O-Ressourcen auf verschiedene Tasks auf. Er unterstützt dabei sowohl das POSIX- als auch das RTEID-API. Zusätzliche Dienste stellen dann unter anderem verschiedene Dateisysteme, USB- und Netzwerkankopplung (Ethernet, CAN und andere) zur Verfügung.
An Entwicklungs-Tools ist alles vorhanden. So stellt die RTEMS-Community speziell an RTEMS angepasste Versionen des GNU C-Compilers (gcc) sowie der zugehörigen Assembler und Linker (binutils) zur Verfügung. Diese Werkzeuge können in viele integrierte Entwicklungsumgebungen (IDE) integriert werden, z.B. auch in Eclipse. Als Debugger wird häufig der GNU Debugger (gdb) eingesetzt. Aber auch kommerzielle Debug-Systeme mit erweiterten Fähigkeiten können genutzt werden. So bietet der TRACE32-ICD von Lauterbach eine umfangreiche RTEMS-Awareness zur Anzeige von RTEMS-Objekten.

Die Lizenzierung gestaltet sich einfach: RTEMS wird unter einer modifizierten GPL (General Public License) V2 veröffentlicht. Die GPL stellt sicher, dass Änderungen und Verbesserungen am RTEMS-Quellcode offengelegt werden. Die RTEMS-spezifische Modifikation bestimmt andererseits, dass proprietärer Quellcode, der mit dem RTEMS-Kernel gelinkt wird, weiterhin unter Verschluss gehalten werden darf. Damit ist die Kontrolle über das produktspezifische Know-how gewährleistet.

Gleichzeitig steht ein umfassender Support zur Verfügung. Neben der offen zugänglichen Dokumentation und dem Projekt-Wiki gibt es Mailing-Listen für den Austausch zwischen RTEMS-Anwendern. Zusätzlich gibt es, maßgeschneidert auf die Projektbedürfnisse, kommerziellen Support. In Europa ist hierfür die Firma embedded brains aus Puchheim bei München qualifiziert. Sie führt auch regelmäßig Schulungen zu RTEMS durch.

Thomas Dörfler ist Geschäftsführer der embedded brains GmbH. Er verfügt über mehr als 20 Jahre Erfahrung und technische Expertise in der Systementwicklung, vor allem in den Sparten Automobiltechnik, Telekommunikation und industrielle Automation und war zuvor für Unternehmen wie Siemens, BMW, Telenorma, BoschRexroth und Hilf Microcomputer-Consulting als Berater und Mitarbeiter tätig.