Debugging

Professionelle Spurensuche

28. September 2010, 15:14 Uhr | Von Heiko Rießland

Fortsetzung des Artikels von Teil 1

Blick in den TI OMAP 35x

Ein typischer Vertreter eines leistungsfähigen SoC mit Cortex-A8-Core ist die für Video-, Bild- und Grafik-Anwendungen in mobilen Geräten prädestinierte OMAP-35x-Prozessorfamilie von Texas Instruments.

Die größten Bausteine, OMAP 3530 und OMAP 3525, enthalten neben dem Hauptprozessor einen zusätzlichen DSP-Core und einen Grafik-Beschleuniger. An Debug- und Test-Features sind aus dem CoreSight-Baukasten der Device Access Port (DAP) mit JTAG-Interface, eine Cortex-A8-Embedded-Trace-Macrocell (ETMv3.3), ein Cross Trigger Interface (CTI) sowie ein 4 Kbyte großer Embedded Trace Buffer (ETB) implementiert. Die ETM unterstützt sowohl Code- als auch Daten-Adress-Trace. Für Steuerungs- und Triggerzwecke stehen vier Adress- und zwei Daten-Komparatoren, ein Context-ID-Komparator, ein Sequenzer und eine Start/Stopp-Logik zur Verfügung.

Die Aufzeichnung von Daten-Werten ist nicht implementiert. Sehr wohl aber kann die Änderung von Daten-Werten mit Hilfe der Komparatoren als Trigger benutzt werden.

Wenn der 4 Kbyte große Embedded Trace Buffer für die Messaufgabe zu klein ist, wird eine externe, von ARM als Trace Port Analyzer (TPA) bezeichnete Hardware benötigt. Die Breite des für die Ausgabe der Trace-Daten verwendeten Ports ist von 1 bis 16 bit einstellbar. Die entsprechenden Pins des OMAP 35x sind aber auch noch mit Funktionen anderer Peripherie belegt. Abhängig von den Anforderungen der konkreten Applikation muss hier also ein Kompromiss zwischen Funktionalität und optimalen Testmöglichkeiten gefunden werden. Jeder zusätzlich für Trace verwendete Pin erhöht die Bandbreite, mit der die Informationen zum TPA gesendet werden können. Bei einem Trace-Takt im dreistelligen Megahertz-Bereich werden an diese externe Hardware und die Verbindung zum Target hohe Anforderungen gestellt.

Trace- und Debug-Pod am OMAP-35x-Evaluationboard
Bild 1. Trace- und Debug-Pod am OMAP-35x-Evaluationboard.
© pls Programmierbare Logik

Beim UAD3+ stehen hier neben Anschlüssen für bis zu vier Debug-Pods für Multi-Core- und Multi-Target-Debugging auch ein Connector zum Anschluss eines Trace-Pod zur Verfügung. Die "Pods" sorgen für die elektrische und mechanische Anpassung zwischen UAD3+ und den Debug- und Trace-Schnittstellen der verschiedenen Zielsysteme. Der Trace-Pod für den TI OMAP 35x kann bis zu 32 bit breite Signale mit bis zu 500 MHz aufzeichnen. Die Verbindung zwischen Grundgerät und den Pods erfolgt dabei mittels PCI-Express. Das sichert den erforderlichen hohen Datendurchsatz bei Leitungslängen von mehreren Metern.

Das flexible Pod-Konzept der UAD3+ ermöglicht eine Unterstützung von Trace-Port-Hardware und Trace-Protokollen unterschiedlicher Mikrocontroller-Architekturen (Bild 1).

Weiterverarbeitung der Trace-Daten

Bei Unterstützung der ETM erfolgt im Pod eine Vorverarbeitung des Datenstroms dergestalt, dass die am Trace-Port aufgezeichneten Bitmuster zu größeren Datenpaketen zusammengefasst und mit einem Zeitstempel (Timestamp) versehen werden. Darüber hinaus ist eine Erkennung bestimmter Muster im Trace-Datenstrom möglich. Das Ziel ist entweder die Decodierung bestimmter Trigger-Bedingungen oder eine Filterung von Trace-Nachrichten zur Verringerung der Datenmenge. Über PCI-Express werden die gewonnenen Daten dann im bis zu 4 Gbyte großen Speicher des UAD3+ abgelegt.

Darstellung der Trace-Daten
Bild 2. Die Trace-Daten können auf verschiedene Art dargestellt und ausgewertet werden.
© pls Programmierbare Logik

Auslesen lassen sich die Daten anschließend über Gigabit-Ethernet, FireWire 800 oder USB 2.0 mit Hilfe der Universal Debug Engine (UDE), der zugehörigen Debug-Software. Hier werden die Trace-Daten in architektur- und protokollspezifischen Trace-Add-Ons aufbereitet und die Ergebnisse der Trace-Daten-Decodierung dann über eine einheitliche Schnittstelle den weiteren Programmkomponenten zur Verfügung gestellt. Damit kann man die Ergebnisse z.B. im klassischen Trace-Window betrachten. Aber auch Funktionen wie der Code-Coverage-Anzeige im Programm-Window, der grafischen Profiling-Analyse oder einem Ausführungs-Sequenz-Diagramm dienen diese Trace-Add-Ons als Datenquelle (Bild 2).

Das Trace-Window zeigt die aufgezeichneten Daten als Maschinenbefehle oder Datenzugriffs-Records mit direktem Link zum Quelltext und Zeitstempeln. Filter-, Sortier- und Suchfunktionen ermöglichen ein komfortables Handling auch großer Datenmengen. Die Code-Coverage-Anzeige erlaubt es, mit einem Blick nicht oder unvollständig abgearbeitete Quelltext-Zeilen zu erkennen. Und die System-Debugging-Funktionen Profiling-Analyse und Ausführungs-Sequenz-Diagramm schließlich unterstützen den Entwickler beim Test des Systems.

So ist beim Profiling zum Beispiel leicht zu erkennen, welche Funktionen am häufigsten ausgeführt werden und wo sich unter Umständen eine Optimierung lohnt. Die Aufrufsequenz zeigt beispielsweise, ob eine Funktion zu selten ausgeführt wird. Grund dafür kann unter anderem eine zu hohe Interrupt-Last oder eine ungünstige Task-Priorisierung in einem Betriebssystem sein.

Das Beispiel des UAD3+ verdeutlicht, wie wichtig leistungsfähige externe Trace Port Analyzer für eine optimale Ausnutzung der CoreSight-ETM in komplexen Cortex-A-SoCs wie der OMAP-35x-Familie sind. Hohe Frequenzen und große Datenmengen lassen sich nur mit Hilfe modularer Systeme in den Griff bekommen, die dem Entwickler neben ausreichend Speicher für die Aufzeichnung auch die geeignete Software für eine schnelle und präzise Auswertung der Daten und eine Signalaufbereitung möglichst nahe am Target bieten. Mit einem typischerweise nur 4 bis 16 Kbyte großen On-Chip-Trace-Speicher sind System-Debugging-Funktionen wie Code-Coverage und Profiling nicht realisierbar. 

 

Der Autor:

Dipl.Ing. Heiko Rießland
war nach Abschluss des Infomationstechnik-Studiums an der Technischen Universität Dresden zehn Jahre in der Entwicklung und im Vertrieb von Software-Entwicklungswerkzeugen und Emulatoren für 16- und 32-bit-Mikrokontroller tätig. Seit sieben Jahren leitet er das Produktmarketing der pls Programmierbare Logik & Systeme GmbH.

Literatur:

[1] Components Technical Reference Manual. ARM, 2009.

[2] Cortex-M3 Technical Reference Manual (r2p1). ARM, 2008.

[3] Communication Hardware "Universal Access Device 3+" - UAD3+. pls, 2010, http://www.pls-mc.com/content/view/253/396/

[4] Universal Access Device 3+ Datasheet. pls, 2010.

[5] OMAP35x Applications Processor Technical Reference Manual. Texas Instruments, 2010.

 


  1. Professionelle Spurensuche
  2. Blick in den TI OMAP 35x

Verwandte Artikel

pls Programmierbare Logik & Systeme GmbH