Debugging mit Cortex-M3-Mikrocontrollern

31. Juli 2008, 15:11 Uhr |
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Die On-Chip-Debug-Technologie von ARM

Mit der Einführung des Prozessors ARM7TDMI stellte ARM die On-Chip-Debug-Lösung „Embedded ICE“ vor. Es handelt sich hierbei um einen kostengünstigen Hardware-Block, der umfassende Run-Control-Features mit zwei hardwaremäßigen Break-Registern zur Verfügung stellt, die entweder durch die Programmausführung oder durch Speicherzugriffe getriggert werden können. Ein zusätzlicher „Debug Communication Channel“ (DCC) ermöglicht während der Programmausführung den Datenaustausch mit der Applikation des Anwenders. Der Embedded ICE ist die standardmäßige Debug-Einheit in allen ARM7TDMIoder ARM9-Mikrocontrollern, die es derzeit von zahlreichen Halbleiteranbietern gibt. Von der Tool-Industrie wird der Embedded ICE in großem Umfang mit standardisierten, kostengünstigen JTAG-Adaptern unterstützt, die den Verzicht auf teure Hardware-Adaptionen ermöglichen.

passend zum Thema

Da der Embedded-ICE-Block als On-Chip-Debug-Hardware allerdings keine Daten oder Befehle aufzeichnen kann, enthalten einige der ARM-Mikrocontroller auch die „Embedded Trace Macrocell“ (ETM). Die mit dem Befehls-Tracing einhergehenden hohen Datenraten sind jedoch auf Datenausgangsleitungen zusätzlich zu den standardmäßigen JTAG-Pins angewiesen. Ein spezieller ETM-Emulator dient dem Anschluss an diese ETM-Datenausgänge und interpretiert die Trace-Informationen.

In Mikrocontrollern belegt die Embedded Trace Macrocell I/O-Leitungen, die eigentlich von der Anwender-Applikation benötigt werden, sodass die ETM von den Ingenieuren häufig nicht genutzt werden kann. Mit dem Ziel, die Zahl der für das Debugging erforderlichen I/O-Pins zu minimieren, stellt die neue CoreSight-Lösung an einem herkömmlichen JTAG-Anschluss zusätzliche Betriebsarten zur Verfügung:

  • Einen Standard-JTAG-Modus für den Anschluss an eine JTAG-Chain oder für JTAG-Adapter bisheriger Bauart. Diese Betriebsart benötigt fünf Pins.
  • Einen Serial-Wire-Modus, der für das Run-Control-Debugging mit nur zwei I/O-Pins auskommt. Der Serial-Wire-Modus stellt eine abweichende Betriebsart des JTAG-Ports dar, deren Kommunikation ausschließlich über die Pins TCLK und TDI abläuft.
  • In der Serial-Wire-Betriebsart kann ein zusätzlicher SWV-Ausgang (Serial Wire Viewer) auf der TDO-Leitung zur Ausgabe von Daten-Trace-, Befehls-Trace- und Instrumentation-Trace-Informationen dienen.

CoreSight ist die in Mikrocontrollern auf Basis des Cortex-M3-Prozessors eingesetzte Debug-Technologie. Für den Anschluss an die Debug-Einheit wird lediglich ein preisgünstiger JTAG-Adapter (z.B. Keil ULINK2) benötigt. Abgesehen von den Trace-Features, implementiert die CoreSight-Einheit zusätzliche Break-Register und erlaubt Speicher-Zugriff auch während laufender Programmausführung, ohne dass zusätzlicher Software-Aufwand entsteht.

Live-Zugriff auf den Speicher

Mikrocontroller auf der Basis von ARM-Prozessoren werden von der Entwicklungs-Tool-Industrie in großem Umfang unterstützt. Zum Beispiel bietet das ARM RealView Microcontroller Development Kit (MDK) von ARM/Keil bausteinspezifischen Support für mehr als 260 Standard-Mikrocontroller. Das Kit kombiniert den ARM-RealView-Compiler mit dem μVision Debugger/IDE und dem RTX-Echtzeit-Kernel (Bild 1).

Der μVision Debugger wird über den USB-JTAG-Adapter ULINK2 an Mikrocontroller auf Basis des Cortex-M3-Prozessors angeschlossen (Bild 2). Der ULINK2 ermöglicht die Flash-Programmierung sowie das Hardware-Debugging und unterstützt sämtliche CoreSight-Betriebsarten. Mit der Kombination aus MDK und ULINK2 erhält der Anwender eine komplette Software-Entwicklungsumgebung für Projekte auf Cortex-M3-Basis.

Der μVision Debugger kann Speicherinhalte und Variablen in mehreren Daten-Formaten darstellen. Da Spei cherinhalte und Variablen auch während der Programmausführung laufend aktualisiert werden, hat der Anwender stets den Überblick über den jeweiligen Programmstatus. Zusätzlich können Breakpoints gesetzt werden, deren Triggerung beim Zugriff auf bestimmte Variable mit oder ohne Wert erfolgt.

8140401_tm_04.jpg
Bild 1. Die Komponenten des RealView Microcontroller Development Kit.

  1. Debugging mit Cortex-M3-Mikrocontrollern
  2. Trace-Ereignisse und Instrumentierungs-Trace-Register
  3. Die On-Chip-Debug-Technologie von ARM

Jetzt kostenfreie Newsletter bestellen!