SW4STM32 System Workbench, ST-Link 2.1 und SWO Ausgaben

Gast #5002057
Lesenswert?
• ▲
▼
Ich kann über den SWO Pin Debug Meldungen ausgeben. Die Anziege im 
ST-Link Utility klappt.

Allerdings muss ich das ST-Link Utility schließen, um debuggen zu 
können. Daher möchte ich die Ausgabe lieber irgendwo in der Eclipse IDE 
sehen.

Ich habe dazu im Prinzip zwei Anleitungen gefunden, die aber beide nicht 
funktionieren:

1) Die einen sagen, dass ich lediglich ein Kommando an openocd absetzen 
muss:
trace 8000000 traceoutput.bin
Aber dieses Kommando kennt meine openocd Version nicht.

2) Die andere Variante benutzt semihosting, mit dem openocd Kommando:
monitor arm semihosting enable
Auch dieses Kommando kennt meine openocd Version nicht.

Ich soll mein Programm mit den Optionen "-specs=rdimon.specs -lc 
-lrdimon" linken und die Funktion "initialise_monitor_handles()" 
aufrufen, aber die gibt es nicht (auch nicht mit z), sagt zumindest der 
Linker.

Zudem soll semihosting sehr langsam sein, ich habe daher aufgehört, hier 
weiter zu forschen. Eigentlich möchte ich Methode 1 umsetzen, jedoch 
nicht mit einem Logfile sondern mit Ausgabe in einer Ecplise View.

Kann es sein, dass ich eine kommerzielle Version von openocd benötige, 
um SWO Meldungen anzuzeigen?
#5002120
Lesenswert?
• ▲
▼
Stefan U. schrieb:
> Daher möchte ich die Ausgabe lieber irgendwo in der Eclipse IDE
> sehen.

Kannst Du Deinen ST-Link in einen J-Link umflashen? Es gibt von Segger 
für einige Typen entsprechende Firmware.

Mit einem J-Link kann man Segger RTT einsetzen. Damit kann man entweder 
den Segger RTT Viewer oder das (Telnet) Terminal in Eclipse verbinden.

Ansonsten kennt OpenOCD aucgh sein eigenes Semihosting (DCC), siehe 
libdcc (http://repo.or.cz/openocd.git/tree/HEAD:/contrib/libdcc).
Gast #5002128
Lesenswert?
• ▲
▼
SWO geht mit openocd-0.10.0 bei mir mittels

tpiu config internal tpiu.log uart off 48000000

in die Datei tpiu.log. Allerdings benutze ich dabei J-Link, nicht 
ST-Link. Eine "kommerzielle" Version von openocd gibt's nicht.
Gast #5003052
Lesenswert?
• ▲
▼
semihosting funktioniert bei mir super nach dieser Anleitung:

http://alphaloewe.com/2017/01/24/enable-semi-hosting-with-openstm32-system-workbench/

zum Testen in der main.c:
1
/* USER CODE BEGIN PFP */
2
/* Private function prototypes -----------------------------------------------*/
3
extern void initialise_monitor_handles(void);
4
/* USER CODE END PFP */
1
  /* USER CODE BEGIN 2 */
2
  initialise_monitor_handles();
3

4
  char scan_buf [10];
5
  printf("Semi Test:\n");
6
  scanf("%s",&scan_buf);
7
  printf("Eingabe war: %s\n",scan_buf);

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.