Systemdesign / Debug & Trace Universalwerkbank für Mikrocontroller

Bei Universal-Access-Device-2next wird die Traceverbindung parallel auf die Debugverbindung gesetzt.

Mit Debug&Trace wird die Ausführung eines Programms auf dem Zielsystem überwacht und analysiert. Die Arbeitsweise und das Nutzererlebnis mit der Universal Debug Engine, einem graphischen Windows-Framework für Debug&Trace mit der Universal-Access-Device-Familie, wird in diesem Artikel evaluiert.

In der Regel kennt ein Embedded-Ingenieur von seinem Mikrocontroller nur das Programmiermodell: Ob das Binär-Programm auf dem physikalischen Mikrocontroller wirklich die im Assemblercode benannten Register anspricht ist unklar, wegen der physikalisch redundanten Implementierung desselben Befehlssatzes können unterschiedliche Befehlsfolgen mit selber Funktion zu unterschiedlichen Performanzeigenschaften führen. Dies wird immer dann ein Thema, wenn besonders energie-, zeit- oder missionskritische Aufgaben zu bewältigen sind.

Aber auch bei nichtkritischen Aufgaben bedeutet theoretisch fehlerfreier Code noch lange keine fehlerfreie Implementierung: Die physikalischen I/Os der Einzelkomponenten sind nicht ideal, sodass auch fehlerfreier Code einen Hardwarebug ansprechen kann. Ein prominentes Beispiel sind fehlgeschlagene FiFo-Einträge.

Da die physikalische Architektur und ihre Dynamik nicht ohne Weiteres1 zugänglich sind, werden Werkzeuge notwendig, die nach der Code-Implementierung seine Überdeckung und Performanz an der Hardware messen und mit dem Programmiermodell korrelieren. Sofern der Hardwarehersteller, dem Werkzeugmacher diesen Weg geöffnet hat, kann er unter Ausnutzung der Informationsredundanz in physikalischer Architektur und dem Programmiermodell geeignete Testverfahren und Visualisierungen finden. In der Regel führt dieser Weg über das JTAG-Interface. Dann entscheiden wie bei Laborgeräten die gebotene Testbreite, Barrierefreiheit, intuitive Bedienbarkeit und nicht zuletzt das Nutzererlebnis über den Erfolg einer Werkzeugkette.

Universal Debug Engine (UDE) von PLS Programmierbare Logik&Systeme ist eine Software für das Debugging auf Aurix-,TriCore-, Power-Architecture-, Cortex-, arm-, SH-2A-, XE166-, XC2000- und C166/ST10-Systemen. Das Flashen, Modifizieren, die Validierung im Programmiermodell und die Traceanalyse eines in Binär hinterlegten Codes erfolgt in einer einzigen Windows-GUI, der Universal Debug Engine (UDE), mit variabel andockbaren Dialogen.