Gast
#5145189
Moin, wie bekomme ich einen Trace mit der ETM von meinem stm32f4disco?
|
Anzeige
|
ARM ETM mit openocd auslesen?
Gast
#5145189
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.
Gast
#5145204
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.
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.
Für ITM_SendChar() reicht dann noch die folgende Zeile
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 schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|