ST-LINK ist eine serielle Kommunikation möglich?

Ich verwende das STM32F4 Discovery Board und Atollic TrueStudio für ARM Lite 3

Ich möchte einige Debugging-Daten mit printf an den PC weitergeben, und ich kann keine Möglichkeit finden, dies über STLink zu tun. Ist es überhaupt möglich? Es scheint ein wesentliches Merkmal für jeden Debugging-Prozess zu sein.

Bearbeiten: Ich muss Serial Wire Viewer verwenden, aber immer noch kein Glück, dass es funktioniert.

Wenn Sie das zum Laufen gebracht haben, könnten Sie ein Beispiel posten, ich habe das gleiche Problem und hatte kein Glück. Ich habe meine eigene printf-Funktion geschrieben, die die _write-Funktion in der Basis-Syscall-Datei verwendet.

Antworten (4)

OK, der Weg zur Kommunikation in Atollic TrueStudio für ARM Lite (ja, es funktioniert unter Lite-Wersion seit 3.0):

  1. Aktivieren Sie den Serial Wire Viewer in der aktiven Debug-Konfiguration
  2. SWV-Konsole anzeigen (unter Debug-Perspektive)
  3. Öffnen Sie die Serial Wire Viewer-Einstellungen (erste Schaltfläche im SWV-Konsolenfenster)
  4. ITM-Stimulus-Port 0 aktivieren
  5. Aktivieren Sie die Start/Stop Trace-Schaltfläche in der SWV-Konsole (zweite Schaltfläche)
  6. Verwenden Sie die ITM_SendChar-Funktion
  7. Viel Spaß beim Debuggen von Strings!
Dies funktioniert auch auf Keil uCVision mit der gesamten ulink jtag-Familie.

Es verwendet Crossworks. In Crossworks verwenden wir dbg_printf, aber es ist langsam, seien Sie gewarnt.

Für alle CrossWorks-Benutzer: Das Semihosting funktioniert, ist aber langsam. Dies liegt daran, dass Cross Works printf-Daten nicht über SWO, sondern über die JTAG/SWD-Schnittstelle weiterleitet. Es hält uC an und liest aus den Registerdaten zur Anzeige. Beachten Sie, dass uC stoppt, wenn Sie die printf-Funktion verwenden und der Debugger getrennt wird.

Hier ist eine vollständige Anleitung für STM32F3-DISCOVERY mit SWD-Debugging:

http://controlsoft.nmmu.ac.za/STM32F3-Discovery-Board/Example-programs/Serial-Wire-Viewer-%28SWV%29

Ich habe es auf meiner stm32-Discovery getestet und es hat funktioniert.