Forum: Mikrocontroller und Digitale Elektronik STM32F103C8T6 kann nicht verbinden zu GDB in STM32CubeIDE


von Christoph K. (chriskuku)


Angehängte Dateien:

Lesenswert?

Habe hier 3 Stck. STM32F103C8T6 (BP, blue pill), die ich mit 
STM32CubeIDE mittels BMP Usb Stick (ein auf BMP umprogrammierter XTW 
ST-LINK V2) programmieren will. 2 von ihnen lassen sich problemlos 
programmieren über GDB Hardware debugging, über die 4 Pins (3.3V, GND, 
SWIO, SWCLK) angeschlossen.

Bei einem der drei jedoch sagt STM32CubeIDE aber immer, s.Bild, es gebe 
ein Verbindungsproblem zum Target.

Jetzt meine Frage: entweder die BP ist kaputt oder sie wurde mal so 
programmiert, daß das SWD-Interface nicht funktioniert. Wie könnte ich 
die BP zurücksetzen?

von Monk (roehrmond)


Lesenswert?

Es sind Fälschungen im Umlauf, bei denen die SWD Schnittstelle nicht 
funktioniert. Und ja, man kann die STM32 so programmieren, dass SWD 
deaktiviert wird. Sowohl der generierte Code von der Cube IDE als auch 
Arduino tun das per default.

Da kommst du mit den Boot Jumpern heraus:

Boot0 = HIGH
Boot1 = LOW
Dann Reset drücken.

Danach wartet er auf einen Firmware Upload, wahlweise seriell oder per 
SWD.

: Bearbeitet durch User
von Christoph K. (chriskuku)


Lesenswert?

OK. Wenn Du sagst: "Firmware upload", ist damit das allgemeine "Flashen" 
einer Anwendung gemeint? Oder meinst Du die "Firmware", die per default 
auf der BP programmiert ist und die das SWD-Interface wieder 
freischaltet? Wenn dem so wäre, woher bekäme ich denn diese initiale 
"Firmware"?

von Monk (roehrmond)


Lesenswert?

Christoph K. schrieb:
> Wenn Du sagst: "Firmware upload", ist damit das allgemeine
> "Flashen" einer Anwendung gemeint?

Ja

Mit dem Boot0 Jumper + Reset aktivierst du den Bootloader. Nach einem 
Reset ist die SWD Schnittstelle erstmal aktiv. Der Bootloader lässt die 
SWD Schnittstelle auch aktiv, das ist der eigentliche "Trick".

: Bearbeitet durch User
von Christoph K. (chriskuku)


Lesenswert?

Steve van de Grens schrieb:
> Christoph K. schrieb:
>> Wenn Du sagst: "Firmware upload", ist damit das allgemeine
>> "Flashen" einer Anwendung gemeint?
>
> Ja
>
> Mit dem Boot0 Jumper + Reset aktivierst du den Bootloader. Nach einem
> Reset ist die SWD Schnittstelle erstmal aktiv. Der Bootloader lässt die
> SWD Schnittstelle auch aktiv, das ist der eigentliche "Trick".

Oh Wunder, das hat's jetzt gebracht. Einmal BOOT0=1 gesetzt, Reset, 
Programm (via SWD) geflasht. BOOT0=0 gesetzt. Programm noch mal via SWD 
geflasht und Board tut's wieder wie einstmals. Danke!

: Bearbeitet durch User
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.