Habe jetzt einen ST-LINK V3MINIE hier vor mir und würde ihn, bevor ich die Firmware auf den neuesten Stand bringe (STLinkUpgrade.app, macOS), gerne auslesen, um die Original-Firmware zu sichern.
Leider hat der Support der st-link utilities für macOS mit der Version 1.8 geendet.
Versuche es gerade mit STM32CubeProgrammer, aber das Programm meckert, weil kein Target angeschlossen ist.
1
0:58:40 : UR connection mode is defined with the HWrst reset mode
2
10:58:40 : UR connection mode is defined with the HWrst reset mode
3
10:58:40 : ST-LINK SN : 001B003A3234512457333831
4
10:58:40 : ST-LINK FW : V3J15M7
5
10:58:40 : Board : STLINK-V3MINIE
6
10:58:40 : Voltage : 0.00V
7
10:58:40 : Error: Unable to get core ID
8
10:58:40 : Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug Authentication
Ich müßte doch 512KB auslesen, also 0x80000 ab 0x0800000 ?
Bei den ganz alten stlinks auf basis der STM32F103 gab es mal jemanden der die readout-protection geknackt hatte und die firmware-images irgendwo zum download gestellt hatte.
Bei den neueren hab ich davon noch nix gesehen. Da die deutlich neuere controller verwenden und außerdem das ganze swd aus ist dürfte das aber schwerer werden. vermutlich ein fall für voltage glitching, em fault injection oder eine der anderen angriffstechniken.
Bei den ganz alten stlinks auf basis der STM32F103 gab es mal jemanden
der die readout-protection geknackt hatte
Na, es gab mal eine einzelne Version für sehr kurze Zeit, bei der ST vergessen hat, den Schutz zu aktivieren - Also ging das ganz ohne kriminelle Energie. Vermutlich ärgern sie sich bis heute darüber.
Papperlapapp! Es ist sicher einfacher, einen Angestellten von ST zu bestechen oder zu erpressen. Die Chinesen scheuen sich auch nicht davor, sich zum Zwecke des "Know-How Transfers" ganz normal als Fachkraft einstellen zu lassen.
Habe jetzt das STLINK-V3MINIE "geupgraded". Habe an den Edge Connector einen 2reihigen Pinheader angelötet und ein Target (STM32H503 blue pill) verbunden.
1
Target - STLINKV3
2
GND - GND
3
SWCLK - CLK
4
SWDIO - TDO
5
6
17:51:30 : STM32CubeProgrammer API v2.20.0 | MacOS-64Bits
7
17:51:35 : UR connection mode is defined with the HWrst reset mode
8
17:51:35 : UR connection mode is defined with the HWrst reset mode
9
17:51:36 : ST-LINK SN : 001B003A3234512457333831
10
17:51:36 : ST-LINK FW : V3J16M9
11
17:51:36 : Board : STLINK-V3MINIE
12
17:51:36 : Voltage : 0.21V
13
17:51:36 : Error: Unable to get core ID
14
17:51:36 : Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug Authentication
Man sieht, Firmware Version ist höher. Bei Spannung wird 0.21V angezeigt (?). Irgendwo im ST-Forum sagte jemand, man müsse 3,3V des Target mit Vdd verbinden (?). Erstens habe ich nur einen Pin Vcc und zweitens ist mir momentan nicht wohl dabei. Vielleicht ist aber auch der 14pol. Miniheader anders belegt als der 10pol. Edge-Connector.
Jemand eine Idee?
EDIT: habe festgestellt, daß man tatsächlich den 3,3V pin des Targets mit dem Vcc Pin des STLINKV3Minie verbinden muß. Ich hatte erst mal am nicht verbundenen Vcc Pin gemessen und da maß ich gut 0,2V, was STM32Prog ja auch anzeigt. Dann habe ich die Verbindung 3,3V Target mit dem Vcc Pin hergestellt und nun zeigt STM32CubeProgrammer 3,28 V an. Allerdings verbindet er nicht zum Target.
Wie gesagt: setze den Boot0 Jumper auf 1 (High) und drücke dann den
Reset Button.
Das STM32H503 Board hat für BOOT0 resp. NRST jeweils einen Druckknopf. Schwierig, die "hintereinander" zu drücken und mit der dritten Hand dann noch den Connect Button vom STM32CubeProgrammer. Gut, mit meinem Patschemittelfinger versucht, also BOOT0 gedrückt, den haltend, NRST dazu gedrückt, beide haltend und dann mit dem Mauscursor den Connect button? Führt leider immer noch zum Connect-Fehler.
Das STM32H503 Board hat für BOOT0 resp. NRST jeweils einen Druckknopf.
Schwierig, die "hintereinander" zu drücken und mit der dritten Hand dann
noch den Connect Button vom STM32CubeProgrammer.
Es ist nur wichtig, dass der µC mit Boot0=1 startet. Also Boot0 und Reset drücken, dann Reset loslassen. Von da an läuft der Bootloader, der auch die Kommunikation via SWD zulässt. Wann du den Programmieradapter verbindest ist egal, Hauptsache danach.
Programme, die mit der Cube IDE generiert wurden, deaktivieren SWD hingegen standardmäßig.
Funktioniert dein Mikrocontroller überhaupt? Kannst du den Bootloader seriell ansprechen? Hast du da ein funktionierendes Programm drauf?
Funktioniert dein Mikrocontroller überhaupt? Kannst du den Bootloader
seriell ansprechen? Hast du da ein funktionierendes Programm drauf?
Ja, hatte ihn vorher mit blackmagic Pill programmiert über den SWD header. Funktioniert alles.
So, wie Du es jetzt beschreibst, habe ich es mal gemacht (BOOT0 gedrückt, gehalten, NRST gedrückt und losgelassen, BOOt0 weiter gehalten, Connect gedrückt - keine Verbindung).
Ich könnte noch mal ein Mass-Erase des Targets machen (mit einem anderen Programmer).
Bei den ganz alten stlinks auf basis der STM32F103 gab es mal
jemanden
der die readout-protection geknackt hatte und die firmware-images
irgendwo zum download gestellt hatte.
Bei den neueren hab ich davon noch nix gesehen. Da die deutlich neuere
controller verwenden und außerdem das ganze swd aus ist dürfte das aber
schwerer werden. vermutlich ein fall für voltage glitching, em fault
injection oder eine der anderen angriffstechniken.
Anderes Target ausprobiert (STM32F103C8T6 bluepill). Verbindet auch nicht.
1
0:28:11 : UR connection mode is defined with the HWrst reset mode
2
10:28:11 : UR connection mode is defined with the HWrst reset mode
3
10:28:11 : ST-LINK SN : 001B003A3234512457333831
4
10:28:11 : ST-LINK FW : V3J16M9
5
10:28:11 : Board : STLINK-V3MINIE
6
10:28:11 : Voltage : 3.29V
7
10:28:11 : Error: Unable to get core ID
8
10:28:11 : Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug Authentication
Auch alle möglichen Frequenzen und Modi probiert. Mit BOOT0 Jumper gesetzt, Reset. Und ohne. Keine Chance, das STLINK-V3 zu verbinden (10-pol Edge Connector mit angelöteten Header Pins). Grübel.