Forum: Mikrocontroller und Digitale Elektronik STLINK Clone stoppt nicht an Breakpoints


von Peter (Gast)


Lesenswert?

Hallo,

ich wollte mir einen original STLINK kaufen und musste leider 
feststellen, dass die Dinger zur Zeit ausverkauft sind. Also habe ich 
mir einen Clone besorgt.

Das Problem: Er funktioniert offenbar nicht richtig. An den Breakpoints, 
die ich vor dem Start des Debuggens festlege hält er nicht an. Aber an 
denen, die ich während des Debuggens hinzufüge schon! Echt 'strange'.

So bringt mir das wenig, da das Programm durchgelaufen ist, bevor ich 
den Breakpoint 'im Betrieb' setzen kann.

Kennt dieses Verhalten jemand ? Gibt es hierfür eine Lösung ?

Setup: STLINK Clone, ST-UTIL, VS CODE.

Gruß Peter

von Kevin M. (arduinolover)


Lesenswert?

Peter schrieb:
> dass die Dinger zur Zeit ausverkauft sind.

Kauf dir ein beliebiges NUCLEO 64 oder 144.

Da hast du einen STLink + Controller, bei den neueren sogar einen 
STLinkV3

von J. S. (jojos)


Lesenswert?

Mit cortex-debug Extension? Das sollte schon ordentlich funktionieren. 
Da gibt es ein ‚runToMain‘ oder ähnlich (wurde kürzlich geändert), damit 
soll schon im Main angehalten werden.
Werden die BP rot dargestellt? Sonst kann die Adresse evtl nicht 
ermittelt werden.
Und in das Debug Terminal gucken ob da Fehler angezeigt werden.

von Peter (Gast)


Lesenswert?

Kevin M. schrieb:
> Kauf dir ein beliebiges NUCLEO 64 oder 144.

Ich habe hier Nucleo- und Discovery-Boards, aber ich wollte eine selbst 
entwickelte Schaltung debuggen.

J. S. schrieb:
> Mit cortex-debug Extension? Das sollte schon ordentlich funktionieren.
> Da gibt es ein ‚runToMain‘ oder ähnlich (wurde kürzlich geändert), damit
> soll schon im Main angehalten werden.

Genau: Cortex-Debug und "RunToMain" - läuft durch :) !!

von J. S. (jojos)


Lesenswert?

Wie geschrieben, da wurde was geändert, man muss main oder ein anderes 
Symbol als ersten BP angeben.

von Kevin M. (arduinolover)


Lesenswert?

Peter schrieb:
> Ich habe hier Nucleo- und Discovery-Boards, aber ich wollte eine selbst
> entwickelte Schaltung debuggen.

Die kannst du da auch anschließen...

von Stefan F. (Gast)


Lesenswert?

Peter schrieb:
> Kennt dieses Verhalten jemand ?

Dieses konkrete Problem kenne ich nicht. Aber die Dinger funktionieren 
generell nur eingeschränkt, wenn du nicht stets die aktuelle Firmware 
drauf hast, die von der STM32 Cube IDE ggf. vorgeschlagen wird.

von J. S. (jojos)


Lesenswert?

Die Clones haben meist nicht die aktuelle STLink Firmware, funktionieren 
aber auch. Zur Not mit BMP Firmware, aber die wird auch immer größer und 
die Frage ist welcher Controller im Clone drin ist.

von Stefan F. (Gast)


Lesenswert?

Hast du denn den Optimierungslevel des Compilers passend eingestellt?
-O0 -O1 oder -Og ?

von J. S. (jojos)


Lesenswert?

Wenn main wegoptimiert wird ist was anderes faul.

von Peter (Gast)


Lesenswert?

Kevin M. schrieb:
> Die kannst du da auch anschließen...

Das werde ich morgen mal versuchen.

Stefan ⛄ F. schrieb:
> Aber die Dinger funktionieren
> generell nur eingeschränkt, wenn du nicht stets die aktuelle Firmware
> drauf hast, die von der STM32 Cube IDE ggf. vorgeschlagen wird.

Der STM32Programmer erkennt die Clones und weigert sich das Update 
aufzuspielen.

von Stefan F. (Gast)


Lesenswert?

Peter schrieb:
> Der STM32Programmer erkennt die Clones und weigert sich das Update
> aufzuspielen.

Du sollst die STM32Cube IDE benutzen.

von Kevin M. (arduinolover)


Lesenswert?

Stefan ⛄ F. schrieb:
> Du sollst die STM32Cube IDE benutzen.

Die wird sich vermutlich genau so weigern, die nutzen nämlich das 
gleiche Tool.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Kevin M. schrieb:
> Die wird sich vermutlich genau so weigern, die nutzen nämlich das
> gleiche Tool.

Ja kann sein. Ich hatte die Cube IDE empfohlen, weil ich meine ST-Link 
Stick bisher immer damit aktualisierte.

Ich habe gerade mal den Cube Programmer 2.10.0 unter Linux versucht, hat 
auch ohne Probleme geklappt.

von Stefan F. (Gast)


Lesenswert?

Du könntest versuchen, den OpenOCD Debugger anstatt den ST-Link GDB 
Server zu benutzen. zumindest die Cube IDE enthält beide.

von J. S. (jojos)


Lesenswert?

Oder VisualGDB benutzen. Oder Clion. Oder die MCUEclipse oder wie die 
heissen. Oder oder oder.
VSC bietet auch zig Möglichkeiten, mal ohne STM proprietäre SW. HAL ist 
böse, aber die IDE wird gepriesen?
stutil, openocd, pyocd, bmp: die Transportschicht ist in cortex-debug 
sehr austauschbar. Warum deshalb gleich alles über Board werfen und sich 
das elende Eclipse ans Bein binden?
Naja, jeder wie er es mag.

von Peter (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich habe gerade mal den Cube Programmer 2.10.0 unter Linux versucht, hat
> auch ohne Probleme geklappt.

Ich habe das Upgrade noch einmal ausprobiert, und zumindest dieses hat 
jetzt auch geklappt. Es war etwas 'tricky', da alles in der VirtualBox 
läuft, und da musste ich das Gerät 'per Hand' an- und abmelden.
Allerdings wird bei den Breakpoints immer noch nicht angehalten.

Kevin M. schrieb:
> Kauf dir ein beliebiges NUCLEO 64 oder 144.
>
> Da hast du einen STLink + Controller, bei den neueren sogar einen
> STLinkV3

Ich habe jetzt ein Discovery-Board verwendet und dort die Reset-Bridge 
ausgelötet. Damit funktioniert es nun.

Danke an alle für die Hilfe. Ich werde das nun erstmal so lassen.

Gruß Peter

von Monk (roehrmond)


Lesenswert?

Peter schrieb:
> Ich habe jetzt ein Discovery-Board verwendet und dort die Reset-Bridge
> ausgelötet.

Die hättest du ruhig drin lassen können. Oder fällt ein Flugzeug vom 
Himmel, wenn der Mikrocontroller deines Discovery Boardes als 
Seiteneffekt mit resetted wird?

von Peter (Gast)


Lesenswert?

Steve schrieb:
> Die hättest du ruhig drin lassen können. Oder fällt ein Flugzeug vom
> Himmel, wenn der Mikrocontroller deines Discovery Boardes als
> Seiteneffekt mit resetted wird?

Das nicht, es hat aber ohne auslöten bei mir nicht funktioniert, und 
dann soll man das wohl so machen (siehe Manual 6.1.2):

https://www.st.com/resource/en/user_manual/um1842-discovery-kit-with-stm32f411ve-mcu-stmicroelectronics.pdf

Beitrag #7179243 wurde von einem Moderator gelöscht.
von A. B. (Gast)


Lesenswert?

Boy schrieb im Beitrag #7179243:
> Das kommt davon wenn man china-clones kauft.
>
> Wer billig kauft kauft zwei mal!
> Wer chinaschrott kauft kauft drei mal!

Nun ja, das ist sicher was dran, nur in diesem speziellen Fall ... Wenn 
in dem Klon ein echter STM32F10x drin ist, muss der sich mit der 
Original-ST-Firmware gleich verhalten wie ein "echter". Selbst wenn da 
ein STM32-Klon drin ist, ist so ein exotisches Problem wenig plausibel.

Wird vielleicht die Reset-Leitung des STLink verwendet? Da liegt eine 
böse Falle, weil die herausgeführte RST-Leitung die fürs SWIM-, nicht 
die fürs SWD-Interface ist ...

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.