Tracing ist heutzutage eine essenzielle Debug-Methode zur Untersuchung von Fehlern, Timing-Problemen oder zur Identifizierung von Engpässen in eingebetteten Anwendungen, vor allem dann, wenn das Laufzeitverhalten der untersuchten Applikation während des Debuggings nicht beeinflusst werden darf. Für die effiziente Nutzung von Trace muss allerdings erst einmal das Trace-System des verwendeten Mikrocontrollers entsprechend konfiguriert werden. In der Regel ist das gar nicht so einfach. Das Prozedere kann sehr zeitaufwendig sein und erfordert oft ein tieferes Wissen über das Trace-System des jeweiligen SoCs.
Das UDE SimplyTrace-Feature vereinfacht diesen Prozess, indem Trace-Funktionen von typischen Anwendungsfällen übernommen und kontextsensitiv an die verschiedenen Debugger-Ansichten angehängt wurden. So kann beispielsweise die Trace-Aufzeichnung direkt aus dem Quellcode-Fenster heraus für die Anwendungsfälle "Trace from source code line" oder "Trace to source code line" konfiguriert werden. Dies ist so einfach wie das Setzen eines Haltepunktes. Zusätzlich kann die mit den UDE SimplyTrace-Funktionen erstellte Trace-Konfiguration auch nachträglich mit den regulären Konfigurationswerkzeugen der UDE angepasst und erweitert werden.
Die Implementierung des Features basiert auf einer zunehmenden Abstraktion über verschiedene Schichten. Die unterste Schicht umfasst die Funktionen der On-Chip-Trace-Komponenten, die oberste Schicht spiegelt die Anwendungsfälle des Softwareentwicklers wider. Dieser Ansatz ermöglicht eine einfache Erweiterung sowohl hinsichtlich neuer Trace-Architekturen als auch weiterer Anwendungsfälle.
Die erste UDE SimplyTrace-Implementierung bietet zunächst die häufig benutzten Programm-Trace-Funktionen sowie grundlegende Daten-Trace-Anwendungsfälle wie z.B. die Beobachtung von Datenzugriffen auf Variablen. Weitere Anwendungsfälle, wie beispielsweise Daten-Trace von Registerzugriffen oder vereinfachter Task-Trace für Echtzeitbetriebssysteme, sind in der Entwicklung.
Erfahrene Entwickler, die sich mit den von den jeweiligen Mikrocontrollern bereitgestellten Trace-Funktionen bereits gut auskennen, können die mit UDE SimplyTrace erstellten Trace-Konfigurationen als Vorlage verwenden und mittels den regulären Konfigurationswerkzeugen in der UDE, wie z.B. dem Universal Emulation Configurator (UEC), bearbeiten. Dies ermöglicht es dem Anwender, die Trace-Aufgabe anzupassen oder zu erweitern, falls die spezifischen Anforderungen über die typischen Anwendungsfälle hinausgehen.
Der neuartige Ansatz zur einfachen Trace-Nutzung funktioniert prinzipiell völlig unabhängig vom eingesetzten Microcontroller. Da der Anwender mit den speziellen Anpassungen der UDE SimplyTrace-Funktionen an das jeweils verwendete Trace-System in keinster Weise in Berührung kommt, ist der jeweilige Einarbeitungsaufwand extrem gering, dafür die Lernkurve aber steil. Dies hat zur Folge, dass sich mittels UDE SimplyTrace die Phase des Softwaretests, der Laufzeitanalyse und der Systemoptimierung enorm vereinfachen und beschleunigen lässt.
Mit der UDE 2023 stehen die UDE SimplyTrace-Funktionen ab sofort für die Microcontroller-Bausteine der Infineon AURIX-Familie, für Arm Cortex-MCUs mit entsprechendem CoreSight Debug- und Trace-System und für PowerArchitecture-basierte Bausteine mit NEXUS Class 3 Trace-Unterstützung zur Verfügung.