ARM ETM mit openocd auslesen?

#5145295
Lesenswert?

Mit ETM habe ich noch keine Erfahrungen gesammelt aber dafür mit ITM. 
Beide kommunizieren über die TPIU mit der Außenwelt . SWO ist nur eine 
der möglichen Hardwareschnittstellen (neben JTAG) und wird von OpenOCD 
unterstützt.

Prinzipiell hat man zwei Möglichkeiten:
1. Man leitet den Trace direkt in eine Datei um. Dafür muss der SWO-Pin 
des Debuggers mit dem SWO-Pin des Targets verbunden sein. Die 8000000 am 
Ende der Zeile muss dem Takt am TRACECLKIN-Port entsprechen, was 
normalerweise gleich dem CPU-Takt entspricht. Für dein Disco-Board musst 
du das entsprechend anpassen.
1
monitor tpiu config internal itm.fifo uart off 8000000

2. Man gibt den Trace am SWO-Port als UART-kompatibles NRZ-Signal aus. 
Dadurch kann man es mit einem einfachen USB-UART-Converter abfangen. Die 
2000000 am Ende der Zeile steht für die Baud-Rate (2MBaud in diesem 
Fall) und kann/muss natürlich angepasst werden.
1
monitor tpiu config external uart off 8000000 2000000


Für ITM_SendChar() reicht dann noch die folgende Zeile
1
monitor itm port 0 on

Mit ETM habe ich bisher wie gesagt noch nichts gemacht. Musst du mal 
suchen wie du das konfiguriert bekommst.

Sehr interessant finde ich die Möglichkeit mit Sigrok per Logic-Analyzer 
den Trace aufzuzeichnen und auszuwerten. Dann gehen auch deutlich mehr 
als 2MBaud. Ein paar weiterführende Links zu ETM finden sich ebenfalls 
in diesem Blog-Artikel:
http://essentialscrap.com/tips/arm_trace/theory.html

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren