Entwicklungstools Wie lassen sich Debug-Trace-Informationen auch bei MCUs ohne Trace-Port sammeln?

Redakteur: Holger Heller

Mit der Entwicklungs- und Debuggersoftware winIDEA (ab Version 9.12.7) unterstützt iSystem den „Slow-Run-Modus“. Dieser erlaubt das Erfassen des kompletten Programmablaufs und Datentraces – auch wenn die MCU keinen Debug-Trace-Port besitzt.

Anbieter zum Thema

Bei der Auswahl einer MCU ist oftmals der Preis entscheidend. Um die Chipkosten niedrig zu halten, verzichten viele Hersteller auf Trace-Schnittstellen. Treten nun während der Entwicklung (und auch später) Probleme auf, fehlt ohne Trace-Port die Möglichkeit, detaillierte Informationen über die Ausführung der Anwendung zur Laufzeit zu erhalten.

Hier hilft Slow-Run-Modus, der eine Analyse des kompletten Programm- und Datentraces (welche Instruktion wurde mit welchen Daten ausgeführt) zur Verfügung stellt. Hinzu kommen eine Code Coverage (welcher Codepfad wurde durchlaufen und was sind „tote“ Codepfade) und ein Profiling (wann wird welche Funktion ausgeführt). Allerdings sind im Slow-Run-Modus keine Echtzeitangaben möglich

Im Slow-Run-Modus führt winIDEA die Zielanwendung schrittweise aus und erfasst so den MCU-Status. Aus diesem Inhalt wird eine Trace-Datei erstellt, die dann ausgewertet wird.

Der Slow-Run-Modus im Detail

Das Sammeln und die Analyse all dieser Daten braucht Zeit, weshalb dieser Modus auch „Slow Run“ genannt wird. Die effektive Rate liegt bei ca. 30-50 Befehlen pro Sekunde – abhängig von der benutzten Architektur. Ab Werk ist „Slow Run“ in winIDEA nicht aktiviert.

Die Voraussetzungen für Slow-Run-Modus ist der Einsatz einer iSystem Debugger-Hardware wie z.B. iC5000, iC3000 und der zugehörigen Entwicklungsumgebung winIDEA. Auf Seite der MCU ist lediglich die Unterstützung von Run Control Debug wie z.B. Single-Step-Modus oder Run Until notwendig.

Betrachten wir eine Standardanwendung auf einem iSystem MPC5554-Evaluierungsboard. Dieses Board stellt zwei Schnittstellen zur Verfügung: einen JTAG/OnCE-Port (14 Pins) und ein Nexus Class 3 Interface (38 Pins). Als Debugger wird ein iC5000 On-Chip-Debugger eingesetzt.

Trace über Nexus und JTAG im Vergleich

Im Folgenden wird verglichen, welche Daten vom iC5000 über die jeweilige Schnittstelle erfasst werden können.

  • Trace über Nexus:

Details zur Nexus-Schnittstelle: Die Nexus-Schnittstelle gibt es in unterschiedlichen Ausführungen. Auf dem MPC5554-Demo-Board steht eine Nexus-Class-3-Schnittstelle zur Verfügung. Nexus Class 3 bedeutet, dass ein Trace-Port zur Verfügung steht, der zusätzlich zu Run Control Debug einen Echtzeit-Datentrace und Echtzeit-Lesen/Schreiben von Speicherbereichen ohne Stoppen der MCU ermöglicht. Im Vergleich zur JTAG/OnCE-Schnittstelle ist die Datenübertragungsgeschwindigkeit bei Nexus ca. 15-mal so hoch.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

(ID:33542060)