Der BICEPS Real-Time-Trace-Speicher
JTAG-Debugging ist kein wirkliches Echtzeit-Debugging, weil die Real-Time-Programmausführung der ARM-Controller durch Breakpoints unterbrochen werden muss. Bei Applikationen mit Interrupts oder Bussystemen, die ständig in Echtzeit bedient werden müssen (USB, CAN) - und für solche Anwendungen sind die LPC-Controller gedacht - gibt es nur zwei Möglichkeiten:
- Im Real-Time-Trace-Speicher sehen, was vor sich gegangen ist
- Raten, was in der Applikation nicht richtig läuft
Ein wichtiges Merkmal des BICEPS-Emulators ist der Real-Time-Trace-Speicher. Er arbeitet mit der vollen Systemgeschwindigkeit und zeichnet alle ausgeführten Opcodes des ARM-Controllers auf.
Der Trace-Speicher-Inhalt kann auf Quelltext- oder Assembler-Ebene, bzw. auch in einer "Mixed Mode"-Darstellung ausgegeben werden.
Ein spezieller Kontext-Modus zeigt den Trace-Speicher-Cursor als Balken im Quelltext an. Dadurch kann man in zwei Richtungen durch sein Programm "steppen", so als wenn man Einzelschritte vor- und zurück ausführen kann (siehe Datenblatt).
Der Einsatz eines Real-Time-Traces bedeutet First-class-Debugging. Zusätzliche Informationen wie der Zeitstempel (time stamp) zu jeder ausgeführten Programmzeile geben Hinweise, die man von anderen Tools nicht bekommen kann. Ein Beispiel: lassen Sie den Debugger die Zeitdifferenzen zwischen einzelnen Interrupt-Calls berechnen und sehen Sie auf einen Blick, dass die Interrupt-Routine in einem von 20 Fällen viel zu lange dauert. Das ist echtes Real-Time-Debugging !
Besonderheiten des BICEPS-Emulators
Real-time Trace-Filter
Wegen der begrenzten on-chip Filtermöglichkeiten vieler ARM-Bausteine besitzt der BICEPS-Emulator eine einzigartige off-chip Trace-Filter Erweiterungslogik. Sie arbeitet in Echtzeit und erlaubt eine Vorfilterung der Trace-Daten mit einer unbegrenzten Anzahl von Adresskomparatoren. Beispielsweise kann für jede Funktion oder jede Quelltextzeile festgelegt werden, ob sie aufgezeichnet werden soll oder nicht. Dies erweitert die Trace-Kapazität vom Millisekunden-Bereich auf Sekunden oder Minuten.