Hardware-Debugger Läuft weiter - trotz Breakpoint

Hardware-Selbstläufer JTAG-Debugger
Hardware-Selbstläufer JTAG-Debugger

Ein JTAG-Debugger arbeitet im sog. Stop Mode Debugging: An bestimmten Punkten wird das System angehalten. Was aber, wenn z.B. ein Motor ständig Steuerimpulse braucht?

Der Hardware-Debugger J-Link von Segger wird über die JTAG-Schnittstelle an das Zielsystem und per Ethernet oder USB an den Entwicklungsrechner angeschlossen. Die Hauptfunktion des J-Link besteht in der Steuerung des Zielsystems: Beim Debugging wird das System an vordefinierten Breakpoints angehalten und der Entwickler kann nun den Inhalt von Registern und Variablen oder andere für den Systemzustand wichtige Daten auslesen. Der J-Link-Debugger für Systeme mit Cortex-M3, -M4 und -M7 wurde nun um eine neue Funktion erweitert: Die CPU muss nicht zwangsläufig komplett angehalten werden. Es können bestimmte Funktionen aufrechterhalten werden. Dies ist besonders wichtig, wenn Hardware wie etwa ein Motor angeschlossen ist, der weiterlaufen muss, oder wenn Kommunikationsverbindungen aktiv bleiben sollen.

Debuggen im Monitor-Modus

Beim üblichen Stop Mode Debugging wird die CPU angehalten; dadurch stoppen alle Bereiche der Applikation und angeschlossene Peripherie-Geräte werden nicht länger mit Signalen versorgt. Mit dem neuen Monitor Mode läuft auf der CPU auch während des Debuggens ein Programm weiter. Dies bietet die Möglichkeit, bestimmte, vom Nutzer definierte Echtzeit-Funktionen in Interrupt-Service-Routinen aufrechtzuerhalten, die eine höhere Priorität besitzen als der Debug-Monitor – dazu gehören etwa Motorsteuerung, Datensammlung, Funkverbindungen oder jegliche Applikationen, die auf ein bestimmtes Maß an kontinuierlichem Betrieb angewiesen sind. Von diesen laufenden Funktionen ist dann allerdings kein Debugging möglich – sie müssen in Ruhe gelassen werden, damit der Ablauf nicht gestört wird. Auch der Abruf von Daten aus den laufenden Applikationen hätte wenig Sinn, da diese sich ja ständig ändern.

Die Benutzerführung ist beim Monitor Mode Debugging mit dem Stop Mode vergleichbar. Allerdings kommuniziert die CPU im Monitor Mode aktiv mit dem J-Link, um gleichzeitig Debug Services und höher priorisierte Systeme zu bedienen. Monitor Mode ist eine neue Standard-Funktion der J-Link-Software für höherwertige J-Link-Debugger. Nutzer aktueller High-End-Modelle können die Funktion nach der Installation des neuesten Updates nutzen. Für den Debugger J-Link Base steht der Monitor Mode nur zu Evaluierungs-Zwecken zur Verfügung. Für jede CPU ist ein spezifischer Code notwendig, um mit J-Link im Monitor Mode debuggen zu können. Codes für die verschiedenen Prozessorkerne sind bei Segger erhältlich.