Abhängigkeiten reduzieren mit Echtzeitbetriebssystem RTEMS
Seite 2: Beispiel
Ein Beispiel aus dem Rennsport
Beispielhaft für die Einsatzmöglichkeiten von RTEMS sei ein System zur Datenaufzeichnung (Logger) im Rennsportbereich beschrieben. Dessen Kernanforderungen waren anspruchsvoll:
- Integration der Hardware in die speziell konzipierte Motorsteuerung
- Boot-Zeit unter fĂĽnf Sekunden
- Aufzeichnungsdatenraten im Bereich von 500 bis 1000Â KByte/Sek.
- maximale Aufzeichnungsdauer im Stundenbereich
- Speicherung der Daten auf Flash-Karte
- Abruf der Daten per Ethernet mit mindestens 80Â MBit/Sek.
- Flexibilität für sich ändernde Einsatzszenarien
- Ankopplung an den CAN-Bus
Die Hardware wurde speziell für diese Anwendung entwickelt. Als zentraler Mikrocontroller kam dabei ein MPC5200 von Freescale zum Einsatz, der nicht nur über die benötigten Schnittstellenmodule verfügt, sondern auch ausreichend Rechenleistung bietet.
Nach der Analyse der Anforderungen wurde RTEMS als Betriebssystem ausgewählt: Alle erforderlichen APIs für die benötigten Funktionen waren vorhanden, und durch die quelloffene Struktur war ersichtlich, dass die Anpassungen an die speziellen Anforderungen des Systems unterstützt wurden.
Die weitere Entwicklung erfolgte dann in mehreren Schritten:
- Die Portierung von RTEMS an die spezifische Hardwareplattform und deren Schnittstellen fĂĽhrte das RTEMS Support-Center der Firma embedded brains durch. Konkret waren neue Treiber fĂĽr das in den Mikrocontroller integrierte Ethernet-Interface, das CAN-Interface und den Interrupt-Controller zu entwickeln. AuĂźerdem wurden die Speicheraufteilung und der Startcode so angepasst, dass das Betriebssystem auch ohne separaten Bootloader beim Einschalten aus dem Flash-ROM heraus starten kann.
- Die Struktur der Applikationssoftware wurde geplant und dann mit UnterstĂĽtzung des Support-Centers von den Softwareentwicklern innerhalb des Rennsportteams durchgefĂĽhrt.
- Darauf ĂĽberprĂĽfte die Entwicklungsmannschaft den Durchsatz der kritischen Datenpfade. Dabei identifizierte sie einige Schwachstellen, die sich durch die Struktur der Hardware ergaben. Daher wurde das Zusammenspiel der beteiligten Softwarekomponenten ĂĽberarbeitet, begonnen bei den Schnittstellentreibern ĂĽber die Filesystem-UnterstĂĽtzung von RTEMS bis zur Applikation.
Ausgangspunkt für die Optimierung war eine Analyse des zeitlichen Zusammenspiels der beteiligten Blöcke, diese Analyse führten Applikationsentwickler und Support-Center gemeinsam durch. Die Anforderung, die am schwierigsten zu erfüllen war, war der Datendurchsatz beim Download der gesammelten Daten. Bei diesem Download werden, gesteuert durch die Applikationssoftware des Datenloggers, die Daten von der CFcard gelesen und möglichst effizient per Ethernet an einen Windows-PC übertragen. Auf der Netzwerkseite erlaubte der Netzwerk-Sniffer Wireshark eine genaue Analyse des Zeitablaufs. Zwischen den Request-Paketen der PC-Applikation und den Response-Paketen mit den Nutzdaten der RTEMS-Applikation zeigte sich eine deutliche Wartezeit.
Anhand des Quellcodes von Applikation, Betriebssystem und Treibern identifizierte das Entwicklerteam mehrere potenzielle Ursachen. Um möglichst effizient den tatsächlichen Grund für den Zeitverlust zu ermitteln, wurden die recht komplexen Profiling-Fähigkeiten des JTAG-Debuggers Lauterbach TRACE32-ICD eingesetzt. Durch den vorliegenden RTEMS-Quellcode ließ sich auch innerhalb des Betriebssystems identifizieren, welche Funktionen jeweils aufgerufen wurden. Damit konnte das Team recht schnell erkennen, dass die Lesezugriffe auf die CFcard und die Netzwerktransfers immer sequenziell nacheinander abliefen, als Folge des eingesetzten Applikationsprotokolls.
Als sinnvollster Weg beschloss man dann eine Kombination aus einigen Anpassungen an der RTEMS-Applikation und der Implementierung eines DMA-gestĂĽtzten Read-Ahead-Cache fĂĽr das Dateisystem. Die Filesystem-Anpassungen fĂĽhrte wieder das Support-Center durch und wurden bei einem anschlieĂźenden Integrationstest verifiziert. Damit erreicht man die gesetzten Ziele.
Hier zeigen sich exemplarisch die Vorteile des Open-Source-Prinzips von RTEMS: Die Verbesserungen am Betriebssystemcode übernahm man ins Quellcode-Repository von RTEMS. Dadurch können heute auch andere RTEMS-Anwender von den Überarbeitungen profitieren. Und sie stehen dem Kundenprojekt 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 im Bereich Motorsteuerungen über Einsatzmöglichkeiten dieses flexiblen Betriebssystems diskutiert wird.