Forum: Mikrocontroller und Digitale Elektronik STM32 ST-LINK V2


von Walt N. (belayason)


Angehängte Dateien:

Lesenswert?

Guten Morgen,

bis jetzt habe ich mit der AC6 for STM32 meine mikrocontroller 
Programmiert. Jetzt bin ich umgestiegen auf die STM32CudeIDE um die 
Initialisierung durch STM32CubeMX besser aktuell halten zu können. Ich 
habe mein Programm in die STM32CudeIDE von Hand migriert. Bauen 
funktioniert ohne Fehler und Warnungen. Jedoch kommen jetzt Probleme mit 
meinem ST-Link/V2. Beim ersten flash versuch, wurde eine alte Firmware 
nachgewiesen die ich durch den Updater aktualisiert habe. Danach wurde 
der flash versuch erneut gestartet, dies funktioniert aber nicht (siehe 
Anhang).

Ich hatte die Befürchtung, dass das Update die Ursache ist. Aber mit dem 
AC6 funktioniert der ST-Link/V2 weiterhin tadellos. Hatte jemand schon 
das gleiche Problem?

von Johannes S. (Gast)


Lesenswert?

die CubeIDE nutzt einen anderen Programmer, und die neueren 
CubeProgrammer wollen auch neuere Firmware haben. Die sperrt andere 
(nicht STM) Devices aus die man vorher damit programmieren konnte.

von Walt N. (belayason)


Lesenswert?

Johannes S. schrieb:
> nicht STM

Es Handelt sich bei dem Programmer um einen originalen ST-LINK/V2 ISOL, 
wenn deine Aussage daraus hinaus laufen sollte.

von Johannes S. (Gast)


Lesenswert?

Man konnte mit dem originalen STLink auch Nordic nRF und andere 
programmieren, siehe https://github.com/EmBitz/EBlink 'Warning'.
Wird hier nicht stören, ist für mich aber ein Zeichen das die 
unterschiedlichen IDE auch unterschiedliche Programmer nutzen, AC6 
vermutlich das ältere STUtil.

von Walt N. (belayason)


Lesenswert?

Johannes S. schrieb:
> Man konnte mit dem originalen STLink auch Nordic nRF und andere
> programmieren

Bei dem zu programmierenden Device handelt es sich um einen STM32F411RE. 
Also dürfte das schonmal nicht das Problem sein. Und hast du einen 
Ansatz wo ich vielleicht suchen sollte?

von Johannes S. (Gast)


Lesenswert?

es könnte ein anderes Standardproblem sein: wurde in der CubeMX Konfig 
das SWD aktiviert? Ist per default abgeschaltet. Dann sollte allerdings 
flashen möglich sein und nicht der gdb abstürzen.

Ansonsten nochmal neu starten und kontrollieren ob auch alles beendet 
wurde und nicht noch ein gdbserver lief?

von Stefan F. (Gast)


Lesenswert?

In der "Debug configuration" kannst du von "ST-Link GDB server" auf 
"openocd" umschalten. Dann geht es vielleicht besser.

Siehe Screenshots auf http://stefanfrings.de/stm32/cube_ide.html#debug

von Walt N. (belayason)


Lesenswert?

Stefan ⛄ F. schrieb:
> openocd
1
Open On-Chip Debugger 0.11.0-rc2+dev-00037-g4c4dbd9 (2021-02-09-13:39)
2
Licensed under GNU GPL v2
3
For bug reports, read
4
  http://openocd.org/doc/doxygen/bugs.html
5
Info : Listening on port 6666 for tcl connections
6
Info : Listening on port 4444 for telnet connections
7
Info : STLINK V2J37S7 (API v2) VID:PID 0483:3748
8
Info : Target voltage: 3.254665
9
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
10
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
11
Info : clock speed 4000 kHz
12
Info : stlink_dap_op_connect(connect)
13
Info : SWD DPIDR 0x2ba01477
14
Info : STM32F411RETx.cpu: hardware has 6 breakpoints, 4 watchpoints
15
Info : STM32F411RETx.cpu: external reset detected
16
Info : starting gdb server for STM32F411RETx.cpu on 3333
17
Info : Listening on port 3333 for gdb connections
18
Info : accepting 'gdb' connection on tcp/3333
19
target halted due to debug-request, current mode: Thread 
20
xPSR: 0x01000000 pc: 0x0800471c msp: 0x20020000
21
configuring PLL
22
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
23
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
24
Info : device id = 0x10006431
25
Info : flash size = 512 kbytes
26
Info : accepting 'gdb' connection on tcp/3333
27
target halted due to debug-request, current mode: Thread 
28
xPSR: 0x01000000 pc: 0x0800471c msp: 0x20020000
29
configuring PLL
30
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
31
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
32
shutdown command invoked
33
Info : dropped 'gdb' connection
34
shutdown command invoked

Das spuckt er mir jetzt aus

von Stefan F. (Gast)


Lesenswert?

Sieht danach aus, dass SWD auf dem Target deaktiviert ist oder dass er 
sich schlafen gelegt hat.

Versuche mal die Option "Connect on Reset" und betätige die Reset Taste 
manuell. Es ist ein bisschen Tricky, das richtige Timing zu finden.

Soweit ich weiß unterstützen alle STM32 dieses "Connect on Reset". In 
dieser Phase spielt es keine Rolle, was das Programm tut, denn es läuft 
ja nicht.

Oder du nimmst einen andere Programmier-Adapter, der einen Reset-Ausgang 
hat.

von RUD (Gast)


Lesenswert?

Es gibt von ST noch die Software STM32Cube Programmer.
Vielleicht kannst du damit versuchen, ob du connecten kannst.
Falls es mit diesem funktionieren sollte, weisst du dann das es sich in 
der CubeIDE um ein Einstellungsproblem handelt.

von Stefan F. (Gast)


Lesenswert?

Bei mir ist es eher anders herum. In der IDE geht es immer, im 
Cube-Programmer nur wenn er gerade Lust dazu hat.

von Stefan F. (Gast)


Lesenswert?

Walt N. schrieb:
> Das spuckt er mir jetzt aus

Sieht eigentlich gut aus, oder? Ich sehe da keine Fehlermeldung.

von Walt N. (belayason)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Sieht eigentlich gut aus, oder? Ich sehe da keine Fehlermeldung.

Im Anhang nochmal die ganze Wahrheit. Sorry, die Fehlermeldung kommt 
leider immer noch

von Walt N. (belayason)


Lesenswert?

Stefan ⛄ F. schrieb:
> Oder du nimmst einen andere Programmier-Adapter, der einen Reset-Ausgang
> hat.

Der ST-Link/V2 ISOL hat einen Reset Ausgang

von Stefan F. (Gast)


Lesenswert?

Walt N. schrieb:
> Im Anhang nochmal die ganze Wahrheit. Sorry, die Fehlermeldung kommt
> leider immer noch

Sieht mir eher nach einem Programmabsturz aus, der womöglich gar nichts 
mit deinem Programmieradapter/Target zu tun hat.

von Stefan F. (Gast)


Lesenswert?

Walt N. schrieb:
> Der ST-Link/V2 ISOL hat einen Reset Ausgang

Ach ja, ich hatte den Asia-Stick im Sinn aber das war ein anderer 
Thread.

von Walt N. (belayason)


Lesenswert?

Ich habe das Problem gelöst. In den Debug Konfigurationen habe ich 
Debugger->Configuration Script den Reset Moder auf "Software system 
reset" gestellt. Jetzt funktioniert es problemlos!

von Johannes S. (Gast)


Lesenswert?

man kann noch probieren den Boot0 auf high pegel zu legen und dann 
einmal Reset drücken. Dann ist der µC im Bootloader und evtl. 
Programmfehler (falscher Clock, SWD abgeschaltet) wirken sich nicht aus.

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.