Forum: Mikrocontroller und Digitale Elektronik Cortex M0 + ST-LINK/V2 via Console debuggen


von Mia (foxforcefive)


Lesenswert?

Guten Abend,

ich versuche gerade herauszufinden, ob man einen Cortex M0 mit 
ST-LINK/V2 in STM32CubeIDE via Konsole debuggen kann? Es geht z.B. um 
Status-Abläufe via printf, aber auch um das Einlesen von Variablen via 
Tastaur, um bestimmte Programmabläufe vorab testen zu können, ohne die 
gesamte Peripherie anschließen und die passenden Umweltbedingungen 
herstellen zu müssen.

Ich habe schon zu dem Thema recherchiert und es scheint leider so zu 
sein, dass der Cortex M0 keinen Serial Wire Viewer (SWV) unterstützt. 
Die Option im Debugger ist jedenfalls ausgegraut.

Bei anderen Wegen scheint man zusätzliche Hardware zu benötigen, z.B. in 
Form eines FTDI-Chips + Terminal-Software.

Kann man mit dem ST-LINK/V2 und Cortex M0 diese Art des Debuggens 
irgendwie per Software erreichen? Falls das möglich ist, wäre ich für 
etwas Hilfe dankbar.

Vielen Dank.

von olaf (Gast)


Lesenswert?

Also ich kenne deinen Debugger nicht weil ich den jlink nutze,
aber das Grundkonzept ist doch einfach und sollte auch fuer
dich nutzbar sein.

1. Im Linkerscript einen bestimmten Speicherbereich fest zuteilen

2. Fuer den Mikrocontroller ein printf schreiben das seine
   Ausgaben immer in diesen Speicherbereich schreibt. Eventuell noch ein
   Flag/semaphore setzen.

3. Dein Testprogramm liesst den Speicher aus und setzt das Flag zurueck.

Wenn dein DEbugger dir die moeglichkeit bietet zur Laufzeit beliebige
Speicheradresen zu lesen/schreiben dann ist das eigentlich keine grosse 
Sache.

Olaf

von J. S. (jojos)


Lesenswert?

Mia schrieb:
> Ich habe schon zu dem Thema recherchiert und es scheint leider so zu
> sein, dass der Cortex M0 keinen Serial Wire Viewer (SWV) unterstützt.
> Die Option im Debugger ist jedenfalls ausgegraut.

ja, die M0 haben etwas abgespeckte Debugmöglichkeiten und keine SDO 
Leitung für den SWV.

> Bei anderen Wegen scheint man zusätzliche Hardware zu benötigen, z.B. in
> Form eines FTDI-Chips + Terminal-Software.

Eine serielle ist immer nützlich für Statusausgaben und ein FTDI oder 
ähnlicher Adapter ist billig.
Die STLink V3 Mini sind da bequemer weil da gleich ein UART mit auf dem 
Board ist. Die STLink V2.1 die auf einigen Boards integriert sind 
stellen auch einen VCOM zur Verfügung, ist bei vielen STM Nucleo Boards 
so.
Ein Terminal hat Eclipse integriert.

von A. B. (Gast)


Lesenswert?

Auch die STLink-V2-Klone haben einen UART-Eingang (RxD), auch wenn der 
nicht
auf den 10-pol Pfostenfeld herausgeführt ist. Man kann aber einen Pin 
"frei" machen (z. B. +5V oder NRST) und den dann per Fädeldraht an den 
F103, PA10, Pin 31, anschließen. Keine externe Hardware erforderlich ...

von Johnny B. (johnnyb)


Lesenswert?

Mia schrieb:
> Es geht z.B. um
> Status-Abläufe via printf

Ich nutze in der STM32CubeIDE oft die Funktionalität mit den "Live 
Expressions" um mir Variabelninhalte zur Laufzeit per SWD-Schnittstelle 
anzuschauen. Aber ob das mit den M0 auch geht weiss ich nicht.

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
Noch kein Account? Hier anmelden.