![]() | arbeitete nach seinem Physikstudium am Heidelberger Max-Planck-Institut in der Halbleiter-Grundlagenforschung. 1989 begann er bei der Firma Hitex, war maßgeblich an der Entwicklung von In-Circuit-Emulatoren beteiligt, später im Produktmanagement tätig und ist heute Leiter der Abteilung Technology & Innovation. Kurt.Boehringer@hitex.de |
Ein typischer Anwendungsfall zur Sicherung der Software-Qualität oder auch zur Fehleranalyse ist die Aufzeichnung zwecks Überwachung eines Kommunikationsprotokolls. Fast jedes Kommnunikationsperipheral hat Receive- und Transmit-Register auf definierten Adressen.
Zur Aufzeichnung und Ausgabe über den Serial Wire Viewer werden diese Adressen als Trace-Filter in den Trace-Dialog eingetragen und können nun im Trace-Fenster angezeigt werden. Das Ergebnis ist eine Liste der empfangenen und gesendeten Daten, auf Wunsch mit Zeitstempeln, damit auch Timeout-Zustände untersucht werden können. Auch der Export der so aufgezeichneten Daten in eine Datei ist möglich, um automatisierte Soll-Ist-Vergleiche durchzuführen.
Ein anderer Anwendungsfall ist die Überwachung von Variablen, z.B. solche, die kritische Applikationszustände anzeigen, bestimmte Werte nicht über- oder unterschreiten dürfen oder evtl. auch mit einem A/D-Wandler gemessene Analogwerte. Auch hier wird die Adresse als Trace-Filter definiert. Insbesondere bei Analogwerten ist hier die grafische Anzeige sehr übersichtlich (Bild 2).
Gerade bei Anwendungen mit großem Echtzeit-Einfluss ist die Sicherheit der Performance-Reserve sehr wichtig. Hier können detaillierte Zeitmessungen der Interrupt-Service-Routinen helfen. In fast allen Fällen reicht aber auch eine statistische Messung aus. Dies geschieht mit der „Execute Profile“-Methode. Hier werden zyklisch Werte über den Serial Wire Viewer ausgegeben und analysiert. Das Ergebnis ist eine Auswertung, die zeigt, welche der zu untersuchenden Funktionen (oder Code-Bereiche) wie viel CPU-Zeit erforden (Bild 3). Neben der Performance-Sicherheit kann diese Analyse auch zur gezielten Optimierung der Funktionen eingesetzt werden, die viel CPU-Zeit benötigen.
Analysemethoden, bei denen der Code instrumentiert werden muss, waren bisher umstritten, hauptsächlich deshalb, weil der hiermit analysierte Code dann meistens nicht dem Auslieferungszustand entsprochen hat, da bei Auslieferung diese Instrumentierung wieder entfernt wurde. Der Serial Wire Viewer bietet vielfältige Analysemethoden auch über Code-Instrumentierung. Da hier der Code, der für die Instrumentierung nötig ist, sehr klein gehalten werden kann und auch keine zusätzliche Ressource (wie z.B serielle Schnittstelle) benötigt wird, besteht keine Notwendigkeit, diese Instrumentierung bei Auslieferung wieder zu entfernen. Damit entfällt der o.g. Grund für die Zweifel an dieser Methode.