Stlink: STM32F030R8T6: Fehler beim Ausführen des Flash-Loaders

Erstellt am 17. Mai 2020  ·  9Kommentare  ·  Quelle: stlink-org/stlink

  • Programmierer/Board-Typ: ST-Link v2.1
  • Firmware-Version des Programmiergeräts: STSW-LINK007 2.37.26
  • Betriebssystem und Version: Linux, XUbuntu 18.04 LTS
  • Stlink-Tools-Version und/oder Git-Commit-Hash: 1.6.0-311-ga98b094
  • Name des Stlink-Befehlszeilentools: st-flash
  • Zielchip (und ggf. Platine): STM32F030R8T6, Nucleo-64

Kommandozeilen-Ausgabe:

> st-flash write dioda.bin 0x08000000
st-flash 1.6.0-311-ga98b094
2020-05-17T17:59:37 INFO common.c: F0xx: 8 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
file dioda.bin md5 checksum: d3ad84699b33f431b86a77e53b16b11a, stlink checksum: 0x0000080b
2020-05-17T17:59:37 INFO common.c: Attempting to write 56 (0x38) bytes to stm32 address: 134217728 (0x8000000)
2020-05-17T17:59:37 INFO common.c: Flash page at addr: 0x08000000 erased
2020-05-17T17:59:37 INFO common.c: Finished erasing 1 pages of 1024 (0x400) bytes
2020-05-17T17:59:37 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2020-05-17T17:59:37 INFO flash_loader.c: Successfully loaded flash loader in sram
2020-05-17T17:59:37 ERROR flash_loader.c: flash loader run error
2020-05-17T17:59:37 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1

Erwartet/Beschreibung:

Erwarten Sie, dass es natürlich geflasht wird. Mehr Info:

  • st-info erkennt den Programmierer
  • Hinzufügen von --reset zu st-flash hilft nicht
  • Powercycling des Boards hilft nicht
  • Massenlöschen des Chips vor dem Flashen hilft nicht
  • ähnliches Nucleo-Board mit STM32F103RBT6 (die gleiche ST-Link-Firmware-Version) blinkt problemlos mit der gleichen Software und dem gleichen USB-Kabel
bufixed componenst-flash erroflash-loader olinux programmestlinkv2-1 staturesolved targestm32f0

Hilfreichster Kommentar

Könnten Sie es mit meiner Filiale versuchen (mit einer schnellen und schmutzigen Lösung, nur als Beweis für meine Meinung)?

Ich habe aus deiner Branche gebaut und kann bestätigen, es behebt das Problem.

Alle 9 Kommentare

Vielleicht weiß ich, was hier das Problem ist. Könnten Sie es mit meiner Filiale versuchen (mit einer schnellen und schmutzigen Lösung, nur als Beweis für meine Meinung)?

https://github.com/chenguokai/stlink/tree/stlink-v3_pre

Wenn ich richtig liege, hängt das Problem mit dem Nicht-PIC-Code neuer Flashloader in Kombination mit einem schmutzigen Fix in flashloader.c zusammen.

Könnten Sie es mit meiner Filiale versuchen (mit einer schnellen und schmutzigen Lösung, nur als Beweis für meine Meinung)?

Ich habe aus deiner Branche gebaut und kann bestätigen, es behebt das Problem.

@chenguokai : Was haben wir hier?

Wie ich bereits erwähnt habe, sind die von der GPL lizenzierten Flashloader PIC (positionsunabhängiger Code), während die neuen es nicht sind. Aus diesem Grund musste ich auch ein Linker-Skript schreiben, das die Basisadresse angibt.

Durch das Zerlegen der kompilierten Flashloader habe ich erkannt, dass der Adressierungsmodus PC (Programmzähler) relativ ist. Ich dachte, das sind eine Art PIC, also habe ich den schmutzigen Hack als Marco in flashloader.c behalten. Aus diesem Problem kann ich bestätigen, dass der Flashloader-Code definitiv kein PIC ist, daher sollten die beiden Nops dem Flashloader-Code hinzugefügt werden, anstatt vor einer Binärdatei angehängt zu werden.

Okay, Sie können eine PR für die Juni-Veröffentlichung einreichen, aber stellen Sie sicher, dass Sie develop anstelle von stlink-v3_pre verzweigen, die ich nach der letzten PR gelöscht habe. Ich weiß nicht, ob das irgendwelche Nebenwirkungen haben kann.

@grzegorz-kraszewski Bitte überprüfen Sie, ob mein PR dieses Problem behebt :-)

@grzegorz-kraszewski Bitte überprüfen Sie, ob mein PR dieses Problem behebt :-)

Nicht sicher, da es einen anderen auslöst:

> st-flash write ~/dioda_f030.bin 0x08000000
st-flash 1.6.0-314-g273e798
2020-05-18T10:59:30 WARN common.c: unknown chip id! 0x374b
Failed to connect to target

@grzegorz-kraszewski: Das sieht nach einem anderen Thema aus. Bitte öffnen Sie dafür ein neues Ticket.

Nicht sicher, da es einen anderen auslöst:

Hilft ein Relaunch oder ein Ausstecken und Einstecken?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen