Der Cortex-M3-Prozessor liefert Verarbeitungs-Statistiken, die Hilfestellung beim Ermitteln der Leistungsfähigkeit der jeweiligen Hard- und Software-Implementierung leisten. Der in Bild 5 gezeigte Event-Counters-Dialog gibt neben der Information über die Gesamt-Verarbeitungszeit auch die folgenden Detailangaben aus:
Die ITM-Einheit (Instrumentation Trace Macrocell) implementiert 32 Stimulus-Register, mit deren Hilfe die Ausgabe zusätzlicher Trace-Daten über den Serial Wire Viewer möglich ist. Der hierfür entstehende Mehraufwand in der Anwender-Applikation ist minimal, da lediglich ein Schreibzugriff auf ein ITM-Register erforderlich ist. Die ITM-Trace-Ausgabe kann optional mit Timing-Informationen versehen werden, sodass diese Code-Instrumentierung auch zum Analysieren von Verarbeitungszeiten herangezogen werden kann.
Die ITM-Einheit lässt sich für unterschiedliche Informationen nutzen. Im ITM-Viewer-Fenster ist die Übertragung von ASCII-Textstrings über die ITM-Register möglich. Bild 6 zeigt das Beispiel eines Debuggings nach dem printf-Prinzip, das lediglich die Implementierung der folgenden Routine für die serielle Ausgabe erfordert:
int SendChar (int ch)
{
/* Write serial output to ITM */
while (ITM_Port32(0) == 0);
ITM_Port8(0) = ch;
return (ch);
}
Auf den Spuren der Interrupts
Durch Freigabe des Exception Tracing wird veranlasst, dass der Serial-Wire-Viewer-Ausgang Informationen über die Verarbeitung von Interrupt-Routinen in der Applikation ausgibt. Auch Angaben über die Zahl der Aufrufe, minimale und maximale Verarbeitungszeiten sowie minimale und maximale Zeitabstände zwischen Interrupt-Aufrufen lassen sich – mit Zeitstempeln versehen – ausgeben.
![]() | Reinhard Keil Reinhard.Keil@arm.com |
Ein Beispiel hierzu:
BS write my_value
/* stop on write to my_value */
Der ULINK2 kann so programmiert werden, dass er den Ausgangspin des Serial Wire Viewer nutzt. In dieser Betriebsart kann der Anwender Trace-Informationen über folgende Abläufe erhalten:
Der nicht-invasive Serial-Wire-Viewer-Modus kommt ohne Monitor-Software oder zusätzliche Wait-Zyklen der CPU aus. Um den Bandbreitenbedarf der Trace-Informationen zu reduzieren, kann die Datenerfassung selektiv aktiviert werden. Überprüfen lassen sich die erfassten Trace-Daten im μVision-Trace-Records-Fenster (Bild 3), das außerdem zusätzliche Filter für die Datenausgabe bereithält.
Bild 4 zeigt die typische Ausgabe des integrierten μVision-Logikanalysators, der Auskunft über Werteänderungen von bis zu vier ausgewählten Variablen über die Zeit gibt. Wenn Programmzählerstände in den Trace-Informationen enthalten sind, lässt sich durch Anklicken des Buttons „Code Show“ der Quellcode darstellen, der die Variablenmodifikation anstößt.