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 ?
Christoph K. schrieb:> Ich müßte doch 512KB auslesen, also 0x80000 ab 0x0800000 ?
Welche Tatsache stimmt dich optimistisch dass dein ST-Link
nicht vor dem Auslesen geschützt ist?
Wastl schrieb:> Christoph K. schrieb:>> Ich müßte doch 512KB auslesen, also 0x80000 ab 0x0800000 ?>> Welche Tatsache stimmt dich optimistisch dass dein ST-Link> nicht vor dem Auslesen geschützt ist?
Hab ich, ehrlich gesagt, gar nicht in Erwägung gezogen. Aber wenn dem so
ist, dann geht eben nur Upgrade und durch. Danke für den Hinweis.
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.
Gerd E. schrieb:> 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.
Gerd E. schrieb:> vermutlich ein fall für voltage glitching
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.
Christoph K. schrieb:> Irgendwo im ST-Forum sagte jemand, man müsse 3,3V des Target mit> Vdd verbinden
Das wird wohl nötig sein, ist normal. Damit werden die
Schnittstellentreiber versorgt, so dass ihre Pegel ans Target angepasst
sind.
Falls es dann immer noch nicht geht, setze den Boot0 Jumper auf 1 (High)
und drücke dann den Reset Button.
Christoph K. schrieb:> Habe jetzt das STLINK-V3MINIE "geupgraded"
Da hast Du aber zweimal überlegt das zu schreiben - "aktualisiert" würde
es wohl nicht ganz treffen.
Nemopuk schrieb:> Christoph K. schrieb:>> 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.
Christoph K. schrieb:> 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?
Nemopuk schrieb:
...
> 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).
Gerd E. schrieb:> 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.
Er hat einfach das update-tool disassembliert. st hatte es da nich sooo
ernst genommen mit der cybersecurity:
http://www.taylorkillian.com/2013/01/retrieving-st-linkv2-firmware-from.html