Software Debugging

Real Time Trace – Retter für Embedded-Entwickler

13. Juli 2023, 9:00 Uhr | Von Holger Lohn, Produktmanager für Debug- und Trace-Tools bei Lauterbach
© Lauterbach

Es gibt Fälle, speziell bei Echtzeitanwendungen, in denen konventionelles Stop-Mode-Debugging allein nicht ausreicht. Nicht-intrusives Echtzeit-Tracing kann hier der Retter in der Not sein, um den Code zu optimieren und ein System sicherer zu machen – wie das Beispiel einer Roboteranwendung zeigt.

Diesen Artikel anhören

Stellen Sie sich vor, Sie hätten einen vollständigen Einblick in das, was Ihr Embedded-System tut, ohne seine Echtzeitleistung in irgendeiner Weise zu beeinträchtigen, indem Sie jeden Schritt auf dem Weg dorthin aufzeichnen. Sie könnten die Leistung Ihrer Anwendung und die Daten für die Zertifizierung Ihrer sicherheitskritischen Anwendung ermitteln. Sie könnten Ihre Embedded-Systeme schneller und zuverlässiger als je zuvor auf den Markt bringen und gleichzeitig ein sichereres und stabileres Produkt entwickeln. Das ist es, was Trace-basiertes Debugging bietet.

Modell einer automatisierten Produktionsanlage als Beispiel

Der Lauterbach-Roboter, der auf Fischer Technik basiert, ist ein Multitasking-System, wie es in jeder Produktionsanlage zu finden ist, und die gleichen Prinzipien gelten auch für Systeme in der Automobil- und Luftfahrtindustrie. Hier nutzt der Kran ein Vakuum, um verschiedene Objekte zu sammeln und an ihren Bestimmungsort zu transportieren. Dabei hängen alle Arbeitsschritte voneinander ab. Alle Maschinen, Motoren, Mechanismen und das Display werden durch den Mikrocontroller-Turm gesteuert.

In diesem Beispiel kommt Lauterbachs All-in-One-Debug- und Trace-Tool zum Einsatz: der μTrace, kombiniert mit der Mixed Signal Probe, um die digitale Signalerfassung mit dem Programmablauf zu korrelieren. Das Tool kann Echtzeitinformationen wie System-Traces und parallele ETM-Flow-Traces erfassen und ermöglicht so z. B. Code Coverage und Code Profiling. Es unterstützt Datenraten bis zu 400 Mbit/s pro Trace-Leitung von der CoreSight-Trace-Port-Interface-Einheit (TPIU). Dies ist 30 % schneller als konkurrierende Trace-Produkte für Cortex-M-basierte Embedded-Systeme.

Das Zielsystem wird von einem ARM-Cortex-M4 gesteuert. Über eine Treiberstufe steuert die CPU direkt die DC-Motoren, Pneumatikventile und LEDs an und erfasst die Motordrehungen und Schalter.

passend zum Thema

Wenn das Vakuum anhält, fällt die Murmel vom Kran
Bild 1. Wenn das Vakuum anhält, fällt die Murmel vom Kran.
© Lauterbach

Externe Komponenten wie das LC-Display werden über einen I2C-Bus angeschlossen. Es ist nicht immer möglich, ein System anzuhalten und die richtigen Daten zur Fehlersuche abzurufen. Wenn die Entwickler das System stoppen, wird im Beispiel das Vakuum angehalten und die Motorposition dekalibriert. Infolgedessen fällt die Murmel vom Kran oder bleibt im Turm stecken und muss schließlich zum Startpunkt zurückkehren (Bild 1). Das System ist gestört und kann nicht mehr von dem Punkt aus neu starten, an dem es gestoppt wurde. Es entspricht nicht mehr dem angenommenen Betriebszustand.

Traditionelles Debugging ist wie das Aufnehmen von Schnappschüssen eines Autorennens, während die Autos an einem vorbeirasen: Wer die Fotos betrachtet, verpasst das meiste, was während des Rennens passiert. Trace-basiertes Debugging ist wie der Zugriff auf die Telemetrie im Auto, die Streckenbedingungen und die Aktionen des Fahrers. Jede Aktion und ihr Zeitstempel werden aufgezeichnet.

Tracing von Echtzeitanwendungen

Viele Embedded-Prozessoren sind in der Lage, diese Details über die ausgeführte Software zu liefern, ohne die zu testende Anwendung zu beeinträchtigen. Es braucht nur die richtigen Werkzeuge, um alle verfügbaren Informationen zu sammeln und zu analysieren. Durch den Einsatz von Echtzeit-Tracing können Embedded-Entwickler:

  • Schwer zu findende Fehler aufspüren, die nur während der Laufzeit auftreten.
  • Timing-Engpässe im Code finden.
  • Sicherstellen, dass eine Anwendung alle Timing-Anforderungen erfüllt.
  • Code-Abdeckungsberichte für die Zertifizierung erstellen.
Reihe von Analysefunktionen auf der Grundlage von Echtzeitaufzeichnungen
Bild 2. Reihe von Analysefunktionen auf der Grundlage von Echtzeitaufzeichnungen.
© Lauterbach

Die Tracing-Tools von Lauterbach bieten einen kompletten Satz von Analysefunktionen (Bild 2), Echtzeit-Datenvisualisierung und Codeabdeckung. Mit dem Program Flow Trace können Ingenieure zunächst überwachen, welche Aufgabe ausgeführt wurde, den Sequenzfluss identifizieren, in dem sie ausgeführt wurde, und messen, wie lange die Ausführung dauerte. All diese Informationen werden vom Zielsystem in Echtzeit und ohne Unterbrechung erfasst. Sie unterbrechen das System nicht und stören es nicht.

Manchmal ist eine zusätzliche Information erforderlich, um das Verhalten des Ziels zu verstehen. Zu diesem Zweck ist der Instrumentation Trace eine Software-Trace-Methode, die Debugging im printf-Stil unterstützt. Er kann Ausgaben in Hochsprache an benutzerdefinierten Positionen während des Programmablaufs erfassen und liefert Ausgabemeldungen, die die aktuellen Aufgaben beschreiben, die beispielsweise während der Ausführung der Kugelbahn stattfinden.

Code Coverage ist für Sicherheitszertifizierungen unerlässlich
Bild 3. Code Coverage ist für Sicherheits-zertifizierungen unerlässlich.
© Lauterbach

Ein weiteres wichtiges Merkmal der Verfolgung des Programmflusses ist die Bereitstellung von Informationen zur Codeabdeckung (Bild 3). Diese Funktion ist der Schlüssel zur Erstellung von Berichten, die die Einhaltung von Sicherheitsstandards unterstützen. Sie ermöglicht die einfache Identifizierung der Codestücke, die ausgeführt oder nicht ausgeführt wurden. Und sie ist eine Garantie dafür, dass die Test Bench den gesamten Code und seine Spezialfälle abdeckt.

Software zur Protokollanalyse hilft bei der Entschlüsselung der Kommunikationssignale
Bild 4. Software zur Protokollanalyse hilft bei der Entschlüsselung der Kommunikationssignale.
© Lauterbach

Schließlich hilft die eingebaute Protokollanalysesoftware bei der Entschlüsselung der Kommunikationssignale (Bild 4). Im Roboter-Beispiel wird die Mixed-Signal-Probe verwendet, um die Signale des I2C-Busses abzutasten, und das Tool Trace32 übersetzt sie in lesbare I2C-Protokollinformationen.

Lauterbachs Tracing-Tools verschaffen Embedded-Entwicklern mehr Einblick in das laufende System. Die Daten werden aufgezeichnet und angezeigt, sodass die Ingenieure die Anwendungssoftware analysieren und optimieren können, ohne in sie einzugreifen. Ein Trace-Tool ist ein wesentlicher Bestandteil jeder Testumgebung.

 

Der Autor

 

 

Holger Lohn von Lauterbach
Holger Lohn von Lauterbach.
© Lauterbach

Holger Lohn

studierte Elektrotechnik in München und ist seit 2004 bei Lauterbach tätig. Als Produktmanager für Debug- und Trace-Tools koordiniert und plant er die Zukunft des Lauterbach-Produktportfolios


Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Lauterbach GmbH

Weitere Artikel zu Echtzeit-/Embedded Software

Weitere Artikel zu Entwicklungswerkzeuge