Echtzeitanalyse und Visualisierung Tools für Echtzeit-Systeme

Moderne Tools zur Erstellung und Fehleranalyse von Echtzeit-Systemen und Embedded-Applikationen erleichtern die Fehlersuche, erhöhen die Qualität und verkürzen die Produkteinführungszeit.

Um ein tieferes Verständnis vom Laufzeit-Verhalten einer Applikation zu erhalten, ist die Real-Time-Analyse und Visualisierung ein sehr nützliches Instrument. Die Echtzeit-Analyse ist sinnvoll sowohl bei der Entwicklung von Bare-Metal-Systemen ohne RTOS als auch bei komplexen Systemen mit einer Vielzahl von Tasks und Events. Mit den visualisierten Ergebnissen einer solchen Analyse lassen sich Probleme frühzeitig identifizieren und eliminieren.

Moderne Tools ermöglichen es, die Prozesse, die in einer Applikation ablaufen, in Echtzeit zu verfolgen. Die ausgegebenen Daten eines Echtzeitanalyse-Tools helfen zu verstehen, wann und warum das System welche Aufgaben ausführt. Abschließend kann der Entwickler mit diesen Erkenntnissen das System optimieren.

Korrektes Scheduling ist für viele aktuelle Applikationen essenziell, für einige Bereiche sogar sicherheitsrelevant. Die Analyse des Laufzeit-Verhaltens ist somit der einzige Weg, um sicher zu sein, dass Deadlines eingehalten werden.

Zu den weiteren Anwendungsbereichen gehört beispielsweise der Datentransfer über serielle Schnittstellen. Dieser kann mit Echtzeitanalyse beobachtet werden; es ist nicht mehr notwendig, ein Oszilloskop über möglicherweise schwer zu erreichende Leitungen anzubinden oder mehrere Messpunkte einzurichten.

Auch wenn bereits Probleme im System-Verhalten aufgetreten sind, hilft die Echtzeit-Analyse: Denkbar ist etwa der Fall, dass das System nicht die erwartete Menge an Traffic bewältigt. Die ausgegebenen und visualisierten Echtzeitdaten zeigen, was die Target-Applikation tut und wo das Problem wurzelt.

Anforderungen an moderne Tools

Es gibt eine Reihe von Anforderungen, die moderne Visualisierungs- und Echtzeitanalyse-Tools erfüllen sollten, um den größtmöglichen Nutzen für Entwickler zu liefern: Ein geeignetes Tool sollte bi-direktionale Kommunikation erlauben, ohne dafür einen Extra-Pin oder zusätzliche Hardware zu benötigen. Idealerweise arbeitet es deshalb über die Debug-Schnittstelle.

Entwickler brauchen hohe Übertragungsgeschwindigkeiten, dies bedeutet mindestens die Geschwindigkeit, mit der Daten vom Target geschrieben werden. High-End Lösungen in diesem Bereich erreichen Geschwindigkeiten von bis zu 2 MB/s bei hoher Interface-Geschwindigkeit. Die tatsächliche maximale Rate, mit der die ausgegebenen Daten an den Host übertragen werden können, hängt von der Puffer-Größe und Schnittstellen-Geschwindigkeit des Ziels. Nur bei solch hohen Übertragungsraten lässt sich wirklich von Echtzeitanalyse sprechen. Um das Verhalten einer Ziel-Applikation beim Monitoring so wenig wie möglich zu beeinflussen, muss das Tool minimal intrusiv sein.

Ein Visualisierungs-Tool stellt zahlreiche grafische Ansichten zur Verfügung, um zu illustrieren, was das Target im Laufe der Zeit macht, wann und für wie lange verschiedene Tasks ablaufen, die Auswirkungen von Task-Prioritäten, die Abarbeitung von Interrupt-Handlern und so weiter. Das Tool selbst darf dabei nicht zu viel Traffic verursachen, um die Geschwindigkeit der eigentlichen Applikation nicht zu beeinträchtigen. Die meisten Systeme können Debug-Informationen von 100 bis 150 kB/s gut im Hintergrund verarbeiten, ohne das Echtzeitverhalten zu stark zu beeinflussen. Das ideale Echtzeitanalyse-Tool arbeitet mit jedem Betriebssystem zusammen und zeigt damit eine große Flexibilität beim Gebrauch.