Forum: Mikrocontroller und Digitale Elektronik STM32 schneller SWDIO Programmer gesucht mit CMD


von A. F. (artur-f) Benutzerseite


Lesenswert?

Hi Leute,
kann jemand einen Programmer empfehlen, der schnell ist, wen STLink-V2 
angeblich 4Mhz kann, dauert es bei einer 32K FW ~ eine halbe Minute. Da 
ist mein eigener Bootlooader mit 10 Sekunden schneller, obwohl ich über 
I2C mit 100Kbps update. Wichtig ist mir aber auch, dass sich die FW via 
CMD flashen läßt und HardRST Pin funktioniert, was man in der Produktion 
verwenden kann...

Wäre für eine Empfehlung dankbar.

von Achim M. (minifloat)


Lesenswert?

A. F. schrieb:
> Da ist mein eigener Bootlooader mit 10 Sekunden schneller

Wie lange dauert es, den Bootloader über SWD drauf zu pusten? Danach 
kannst du mit einem eigenen Tool per i2c die Applikation flashen.

mfg mf

von A. F. (artur-f) Benutzerseite


Lesenswert?

Das wäre ein Workaround, aber keine Lösung. BL wird nur als eine Art 
Not-Lösung vorgehalten, die eigentliche Initialprogrammierung muss via 
SWD geschehen.

von Ingo Less (Gast)


Lesenswert?

ST-Link V3 kann 24MHz

von Florian S. (vatterger)


Lesenswert?

Hört sich für mich so an, als würde dein ST-Link nicht auf der richtigen 
Taktrate laufen. Habe grade mal einen F103 mit dem China-ST-LinkV2 
ausgelesen: Das dauert 0.4 Sekunden den kompletten Speicher von 64kB 
auszulesen.

Schreiben ist ähnlich schnell: Fürs Flashen brauche ich normalerweise 
wenige Sekunden inklusive der Zeit, die er zum Starten und Verbinden 
braucht.

Du machst definitiv was falsch: Check mal deine Config/Software. Vl. mal 
die ST-Link-Firmware updaten wenn sie nicht aktuell ist.

Wie sieht überhaupt dein Setup aus? MCU? Betriebssystem? Toolchain? 
SWD-Kabellänge?

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

A. F. schrieb:
> Hi Leute,
> kann jemand einen Programmer empfehlen, der schnell ist, wen STLink-V2
> angeblich 4Mhz kann, dauert es bei einer 32K FW ~ eine halbe Minute.

30 Sekunden für 32kByte klingt extrem langsam. Das hat dann 
wahrscheinlich auch nichts mit der SWD Clock zu tun. Mit meinem BJPA 
komme ich im Moment beim flashen eines nRF52 auf ~20kByte / sec. Die SWD 
Clock ist dabei 1MHz.

Meine Empfehlung: BJPA: https://www.torrox.de/#wirelessdebugger ;-)

: Bearbeitet durch User
von A. B. (Gast)


Lesenswert?

A. F. schrieb:
> angeblich 4Mhz kann, dauert es bei einer 32K FW ~ eine halbe Minute. Da

STLink-V2-1 auf einem Nucleo-G0B1RE mit 32 kByte Datei in nicht einmal 
2s:

date;openocd -f ./nucleo-g071rb.cfg -c init -c "program test.srec verify 
reset" -c exit; date
2021-03-29 16:14:49+02:00
Open On-Chip Debugger 0.11.0+dev-01612-gf87337cc7-dirty 
(2021-03-13-18:34)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The 
results might differ compared to plain JTAG/SWD
Info : clock speed 2000 kHz
Info : STLINK V2J37M27 (API v2) VID:PID 0483:374B
Info : Target voltage: 3.241967
Info : stm32g0x.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : starting gdb server for stm32g0x.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0xfffffffe msp: 0xfffffffc
** Programming Started **
Info : device idcode = 0x10006467 (STM32G0B/G0Cxx - Rev A : 0x1000)
Info : flash size = 512kbytes
Info : flash mode : single-bank
** Programming Finished **
** Verify Started **
** Verified OK **
** Resetting Target **
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
2021-03-29 16:14:50+02:00

Nix von einer halben Minute ...

von Florian S. (vatterger)


Lesenswert?

> Das hat dann wahrscheinlich auch nichts mit der SWD Clock zu tun.
Würde ich nicht ausschließen, die lässt sich bis auf 5kHz drücken, dann 
dauern 32kByte ca. ne Minute ;)

Mit 10kHz dann entsprechend die halbe Minute die OP hier bemängelt.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Florian S. schrieb:
> Würde ich nicht ausschließen, die lässt sich bis auf 5kHz drücken, dann
> dauern 32kByte ca. ne Minute ;)

Stimmt. Oder aber an Übertragungsfehlern, die ein immer wieder aufsetzen 
der Kommunikation / Flashen zur Folge hat.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Schon mal blackmagic fuer den PC versucht ? "make PROBE_HOST=hosted".
Und dann "blackmagic <file.bin>"? Mehr Optionen "blackmagic -h"

von Kater (Gast)


Lesenswert?

Uwe B. schrieb:
> Und dann "blackmagic <file.bin>"?

Hätte man das nicht mit "BM <file> ..." abkürzen können? So geht weitere 
wertvolle Lebenszeit beim Eintippen des Programmnamen verloren.

von Dr. MCU (Gast)


Lesenswert?

A. F. schrieb:
> Hi Leute,
> kann jemand einen Programmer empfehlen, der schnell ist, wen STLink-V2
> angeblich 4Mhz kann, dauert es bei einer 32K FW ~ eine halbe Minute. Da
> ist mein eigener Bootlooader mit 10 Sekunden schneller, obwohl ich über
> I2C mit 100Kbps update. Wichtig ist mir aber auch, dass sich die FW via
> CMD flashen läßt und HardRST Pin funktioniert, was man in der Produktion
> verwenden kann...
>
> Wäre für eine Empfehlung dankbar.

Der übliche China V2-Clone mit st-link braucht für 64kB keine zwei 
Sekunden auf einem STM32F411.
1
st-flash --freq=4m write <filename> 0x8000000

von A. F. (artur-f) Benutzerseite


Angehängte Dateien:

Lesenswert?

> Du machst definitiv was falsch: Check mal deine Config/Software. Vl. mal
> die ST-Link-Firmware updaten wenn sie nicht aktuell ist.

Was soll man da falsch machen können? Kabellänge = Original ST Kabel, 
die STLink FW ist aktuell.

Torsten R. schrieb:
> 30 Sekunden für 32kByte klingt extrem langsam. Das hat dann
> wahrscheinlich auch nichts mit der SWD Clock zu tun.

Natürlich nicht, das sollte bei 4Mhz super flott gehen, was aber nicht 
der Fall ist.
Habe die Sekunden mitgezählt. Die FW ist nicht mal 32KB groß, dauert 
aber 20 sek zu flaschen....

ST Link V2 ist original.

Ingo Less schrieb:
> ST-Link V3 kann 24MHz
Konte davon CMD nicht nutzen...

von Stefan F. (Gast)


Lesenswert?

Was meinst du mit CMD? Meinst du ein Kommandozeile-Programm?

Ich nutze unter Linux oft dieses: https://github.com/stlink-org/stlink
Da müsste auch unter Windows laufen, laut Beschreibung.

von A. B. (Gast)


Lesenswert?

A. F. schrieb:
> Natürlich nicht, das sollte bei 4Mhz super flott gehen, was aber nicht
> der Fall ist.
> Habe die Sekunden mitgezählt. Die FW ist nicht mal 32KB groß, dauert
> aber 20 sek zu flaschen....
                     ^
Freudscher Verschreiber ;-)

Aber im Ernst: 20s sind schon mal nicht eine halbe Minute. Das "Connect 
under Reset" kann vielleicht 1 oder 2 Sekunden Verzögerung bewirken. 
Außerdem wäre noch die Frage, ob vielleicht alle Sektoren vorher einzeln 
gelöscht werden, oder nur die benutzten oder gar keine. Das kann weitere 
1 bis 2 Sekunden ausmachen. Ansonsten ist's wohl das GUI, das sich da 
vieeeeeel Zeit lässt. Ging es nicht gerade um Kommandozeilen-Tool???

> ST Link V2 ist original.
>
> Ingo Less schrieb:
>> ST-Link V3 kann 24MHz
> Konte davon CMD nicht nutzen...

von dummschwaetzer (Gast)


Lesenswert?

mit welchem Programm tust du flashen?
Mal mit STM32CubeProgrammer probiert?
Eventuell siehst du dort, wo es hängt.

von A. F. (artur-f) Benutzerseite


Lesenswert?

> Ansonsten ist's wohl das GUI, das sich da
> vieeeeeel Zeit lässt. Ging es nicht gerade um Kommandozeilen-Tool???
Es geht hauptsächlich um CMD, der Test mit der GUI ergibt die gleichen 
Flashzeiten....

von Stefan F. (Gast)


Lesenswert?

Was zum Henker ist CMD? Drücke dich mal bitte klar aus!

von A. F. (artur-f) Benutzerseite


Lesenswert?

dummschwaetzer schrieb:
> Mal mit STM32CubeProgrammer probiert?

Danke, installiert, mit GUI ausprobiert und tatsache, hat nur 2 Sekunden 
gedauert!

Wie connecte ich mihc richtig via CMD, wenn ich in meiner .bat -c 
port=SWD benutze, kommt eine Fehlermeldung, dass die erbindung nicht 
besteht....


STM32_Programmer_CLI.exe -HardRst>NUL
STM32_Programmer_CLI.exe c- port=SWD -d %destination_file%

von A. F. (artur-f) Benutzerseite


Lesenswert?

Stefan ⛄ F. schrieb:
> Was zum Henker ist CMD? Drücke dich mal bitte klar aus!

Sorry, bin windowsbelastet. CMD = Commando-Eingabe bei Windows. Die 
nicht GUI basierte Version von STM32 programmer. CLI von STLink...

von Stefan F. (Gast)


Lesenswert?

A. F. schrieb:
> CMD = Commando-Eingabe bei Windows

Dann schreibe demnächst bitte "Eingabeaufforderung" oder cmd.exe. Das 
ist dann klarer. probiere mal das Kommandozeilentool aus, dass ich dir 
weiter oben empfohlen habe.

von dummschwaetzer (Gast)


Lesenswert?

>Es geht hauptsächlich um CMD, der Test mit der GUI ergibt die gleichen
>Flashzeiten....
die GUI hat doch für jede Aktion (Connect, Erase, ....) Zeitstempel
Welcher Teilschritt braucht so lange?

von A. F. (artur-f) Benutzerseite


Lesenswert?

Ich muss die comman line version benutzen. GUI nur zum ausprobieren!

STM32_Programmer_CLI.exe -c port=SWD mode=UR reset=hwRst  -d 
%destination_file%

ST-LINK SN  : 49FF6B066767564949410767
ST-LINK FW  : V2J37S7
Board       : --
Voltage     : 3.17V
SWD freq    : 4000 KHz
Connect mode: Under Reset
Reset mode  : Hardware reset
Error: Unable to list supported devices
Error: Cannot identify the device
Press any key to continue . . .


Weiß jemand welche Files die EXE braucht, um den uC zu identifizieren?

von dummschwaetzer (Gast)


Lesenswert?

eventuell alles aus den Unterordnern in BIN.
kannst du in der GUI eventuell schauen, mit welchen Optionen die GUI 
dann die  STM32_Programmer_CLI aufruft?

von Stefan F. (Gast)


Lesenswert?

Unter Linux kann man mit dem Befehl strace herausfinden, auf welche 
Dateien ein Programm zugreift. Vielleicht gibt es etwas ähnliches für 
Windows.

Dies hier scheint in die Richtung zu gehen: 
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/wt--trace-and-watch-data-

von Johannes S. (Gast)


Lesenswert?

Da ist doch ein Setup für das Programm? Nur ein exe rausfischen 
funktioniert nie.
War das überhaupt so gemeint oder hat die CLI Version generell ein 
Verbindungsproblem?

von A. F. (artur-f) Benutzerseite


Lesenswert?

Johannes S. schrieb:
> Da ist doch ein Setup für das Programm? Nur ein exe rausfischen
> funktioniert nie.
> War das überhaupt so gemeint oder hat die CLI Version generell ein
> Verbindungsproblem?


Ich hab es! Wenn man die STM32_Programmer_CLI.exe als Kopie irgendwo 
anders Ordner benutzen möchte, muss der Ordner Data_Base (eine ebene 
höher) mitkopiert werden. Und in dem gleichen Verzeichnis wie die EXE 
Ordner Flashloader Ordner liegen.

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.