Moin, wie bekomme ich einen Trace mit der ETM von meinem stm32f4disco?
Hast Du denn einen ETM-fähigen Debugger? ST-Link kennt nur SWO - das kann man fürs Tracing benutzen, ist aber langsamer so dass Informationen verloren gehen können.
Selber nachlesen, wie es auch alle anderen tun, hilft bei der Lösung deines Problems...
Nachtrag: OpenOCD kann AFAIK kein SWO. Upgrade den ST-Link zum J-Link un nutze dann die SEGGER Software.
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
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.