Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
DESIGN ELEKTRONIK 08-09 2021 8 www designelektronik de embedded-SySteme Hardware-Tracing geschrieben wurde sowie dem entsprechenden Zeitstempel – das sogenannte Data-Trace Anweisungen erzeugen Ereignisse mit der Adresse und dem »Opcode« Die Form der Ablaufverfolgung wird Programmablaufoder Befehlsablaufverfolgung genannt – kurz Programmfluss-Trace Mithilfe der Kombination von Daten-Trace und Programmfluss-Trace erhält der Entwickler einen vollständigen Einblick in das Echtzeitverhalten beispielsweise mithilfe des Visualisierens der Daten im »winIDEA-Analyzer« von iSystem Aber wie lässt sich ein Trace aufzeichnen? ■ ■ Trace-Techniken Im Allgemeinen gibt es zwei Haupttechniken für das Tracing Software-Tracing und Hardware-Tracing Hierbei stützt sich das Software-Tracing wie das printf-Debugging auf eine Software-Instrumentierung Die Instrumentierung erzeugt Trace-Nachrichten an interessanten Punkten und puffert sie im Arbeitsspeicher des Mikrocontrollers Von dort aus werden die Daten über eine Anwendungsschnittstelle wie CAN oder Ethernet aus dem Chip heraus übertragen Vorteil des Software-Tracings Es ist keine spezielle Hardware nötig Jedoch gibt es dafür Einschränkungen hinsichtlich der Anzahl der Trace-Objekte und der Trace-Dauer Wie das printf-Debugging ist die Technik invasiv und erzeugt einen Overhead im Gerät Hardware-Tracing hingegen basiert auf einem dedizierten On-Chip-Trace-Modul zum Aufzeichnen von Ereignissen Die Ereignisse werden entweder über die Debug-Schnittstelle oder über eine dedizierte Trace-Schnittstelle aus dem Chip heraus gesendet Ein großer Vorteil am Hardware-Tracing ist dass es keinen Overhead erzeugt und die Anwendung nicht unterbricht Außerdem ermöglicht es eine große Anzahl von Trace-Objekten und im Vergleich zum Software-Tracing deutlich längere Aufzeichnungen Je nach Anwendungsfall sind Trace-Dauern von mehreren Sekunden bis zu mehreren Minuten realisierbar Hardware-Tracing ermöglicht außerdem eine Reihe von erweiterten Anwendungsfällen wie das Debuggen der Anwendung über einen Reset unbegrenztes Betriebssystem-Profiling eine Code-Coverage-Analyse sowie das Aufzeichnen von Peripherie-Ereignissen wie Interrupts oder direkten Speicherzugriffen Unbedingte Voraussetzung für ein Hardware-Tracing ist jedoch dass es auf dem verwendeten Mikrocontroller verfügbar ist und es erfordert eine spezielle Hardware wie einen iSystem-Debugger Analyzer Der Vollständigkeit halber sollte ebenfalls erwähnt werden dass es noch eine dritte Methode gibt das Hybrid-Tracing Hybrides Tracing ist jede Technik die Elemente aus Hardwareund Software-Tracing kombiniert Zum Beispiel erzeugt die »Core-Sight System Trace Macrocell« STM von Arm automatisch Daten-Trace-Meldungen für Schreibvorgänge in einen dedizierten Speicherbereich Weitere Beispiele sind der Renesas »RH850 Software-Trace« sowie die »PowerPC Ownership Trace Messages« Man bezeichnet diese hybriden Techniken ebenfalls als Instrumentierungs-Trace ■ ■ Hardware-Tracing Doch wie funktioniert Hardware-Tracing im Detail? Wie bereits angesprochen basiert Hardware-Tracing auf einem speziellen On-Chip-Trace-Modul Es verfügt über verschiedene Untermodule für das Aufzeichnen von Programmfluss-Trace Daten-Trace und Instrumentierungs-Trace Je nach Mikrocontroller-Architektur hat der Anwender mehr oder weniger Freiheiten bei der Konfiguration die jedes der Submodule aufzeichnet Zum Beispiel könnte er die Programmablaufverfolgung auf eine bestimmte Funktion beschränken oder lediglich bestimmte globale Variablen mit Daten-Trace aufzeichnen Das Tool komprimiert die aufgezeichneten Daten und verpackt sie als Trace-Nachricht Je nach Trace-Schnittstelle verschickt der Chip die Nachricht oder speichert sie in einem Puffer und der Debugger liest sie aus Letztendlich gelangen die Daten zu einem PC wo ein Debugging-Tool wie iSystem winIDEA sie für die Analyse durch den Anwender aufbereitet Bild 1 Hierbei ist es wichtig zu verstehen dass das On-Chip-Trace-Modul eine Komprimierung verwendet um die Aufzeichnung für sinnvolle Zeiträume zu ermöglichen insbesondere für die Programmablaufverfolgung Normalerweise bedeutet das dass lediglich Programmzählerwerte die einen nichtsequenziellen Programmfluss auslösen eine Trace-Meldung erzeugen – zum Bild 2 Blockdiagramm eines AURIX-Mikrocontrollers von Infineon