Stlink: STM32L476 ENTDECKUNG: st-flash kann nicht schreiben

Erstellt am 13. Juni 2020  ·  5Kommentare  ·  Quelle: stlink-org/stlink

Vielen Dank für Ihr Feedback zum stlink-Projekt.

Nehmen Sie sich bitte etwas Zeit, um Entwicklern und anderen Mitwirkenden zu ermöglichen, Ihr jeweiliges Problem zu isolieren und gezielt zu behandeln, und füllen Sie die folgenden Punkte aus, die für Ihr spezifisches Problem geeignet sind:

  • Programmierer- / Board-Typ: Stlink / v2-1
  • Firmware-Version des Programmiergeräts: In STM32L476 DISCOVERY integrierte Version
  • Betriebssystem und Version: Linux 5.5.0-1-amd64
  • Stlink Tools Version und / oder Git Commit Hash: v1.6.1 (ab Release .tar.gz)
  • Name des Stlink-Befehlszeilentools: st-flash
  • Zielchip (und ggf. Platine): STM32L476 DISCOVERY

Weiterhin bitten wir Sie, das erkannte Problem so detailliert wie möglich zu beschreiben und die Debug-Ausgabe, falls verfügbar, mithilfe der folgenden Vorlage hinzuzufügen:

Befehlszeilenausgabe:

tabemann<strong i="18">@sirius</strong>:~/projects/zeptoforth$ st-flash write zeptoforth.bin 0x08000000
st-flash 1.6.1
2020-06-12T22:42:05 INFO common.c: L4xx: 96 KiB SRAM, 1024 KiB flash in at least 2 KiB pages.
file zeptoforth.bin md5 checksum: d1e51663b9f8971cf1167145c9e76850, stlink checksum: 0x001cfa29
2020-06-12T22:42:05 INFO common.c: Attempting to write 23324 (0x5b1c) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Page:0x0 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08000000 erased
EraseFlash - Page:0x1 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08000800 erased
EraseFlash - Page:0x2 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08001000 erased
EraseFlash - Page:0x3 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08001800 erased
EraseFlash - Page:0x4 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08002000 erased
EraseFlash - Page:0x5 Size:0x800 2020-06-12T22:42:05 INFO common.c: Flash page at addr: 0x08002800 erased
EraseFlash - Page:0x6 Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08003000 erased
EraseFlash - Page:0x7 Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08003800 erased
EraseFlash - Page:0x8 Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08004000 erased
EraseFlash - Page:0x9 Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08004800 erased
EraseFlash - Page:0xa Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08005000 erased
EraseFlash - Page:0xb Size:0x800 2020-06-12T22:42:06 INFO common.c: Flash page at addr: 0x08005800 erased
2020-06-12T22:42:06 INFO common.c: Finished erasing 12 pages of 2048 (0x800) bytes
2020-06-12T22:42:06 INFO common.c: Starting Flash write for F2/F4/L4
2020-06-12T22:42:06 INFO flash_loader.c: Successfully loaded flash loader in sram
size: 23324
2020-06-12T22:42:06 ERROR flash_loader.c: flash loader run error
2020-06-12T22:42:06 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1

Erwartet / Beschreibung:

Dieser st-flash würde zeptoforth.bin erfolgreich in den Flash-Speicher der STM32L476-MCU unter 0x08000000 schreiben.

HINWEIS: Dieser Fehlerbericht kann ohne weitere Ankündigung geschlossen werden, wenn nicht genügend Informationen bereitgestellt werden!

Danke für Ihre Unterstützung.

Die Betreuer des stlink-Projekts

bufixed buregression componenst-flash componenstlink-lib erroflash-loader programmestlinkv2-1 staturesolved targestm32l4

Hilfreichster Kommentar

Ich habe den Patch im Entwicklungszweig mit der Nucleo STM32L476RG-Karte und dem integrierten ST-LINK / V2-1 getestet. Der Patch hat die Regression behoben. Vielen Dank, dass Sie sich damit befasst haben.

Alle 5 Kommentare

Ich habe auf einem Nucleo L476RG-Board die gleiche Regression festgestellt, dass sowohl stlink 1.5.0 als auch 1.6.0 für mich funktionieren, aber die neueste Version von git erzeugt diese Ausgabe (nachdem ich das Spammen von USB-Protokollnachrichten an stdout gestoppt habe):

st-flash 1.6.0-370-g05f79e1-dirty
2020-06-13T07:03:42 INFO common.c: L4xx: 96 KiB SRAM, 1024 KiB flash in at least 2 KiB pages.
file /home/crest/mecrisp-stellaris-2.5.4/mecrisp-stellaris-source/stm32l476-ra-nucleo/mecrisp-stellaris-stm32l476.bin md5 checksum: 2a291252c8ab59ec649217f666b78d4, stlink checksum: 0x001f2ba2
2020-06-13T07:03:42 INFO common.c: Attempting to write 20304 (0x4f50) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Page:0x0 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08000000 erased
EraseFlash - Page:0x1 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08000800 erased
EraseFlash - Page:0x2 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08001000 erased
EraseFlash - Page:0x3 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08001800 erased
EraseFlash - Page:0x4 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08002000 erased
EraseFlash - Page:0x5 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08002800 erased
EraseFlash - Page:0x6 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08003000 erased
EraseFlash - Page:0x7 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08003800 erased
EraseFlash - Page:0x8 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08004000 erased
EraseFlash - Page:0x9 Size:0x800 2020-06-13T07:03:42 INFO common.c: Flash page at addr: 0x08004800 erased
2020-06-13T07:03:42 INFO common.c: Finished erasing 10 pages of 2048 (0x800) bytes
2020-06-13T07:03:42 INFO common.c: Starting Flash write for F2/F4/L4
2020-06-13T07:03:42 INFO flash_loader.c: Successfully loaded flash loader in sram
size: 20304
2020-06-13T07:03:43 ERROR flash_loader.c: flash loader run error
2020-06-13T07:03:43 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1

Ich denke, dies könnte ein Zeitproblem sein. Ich hatte das gleiche Problem mit dem stm32l432. Ich habe die folgende Änderung in flash_loader.c vorgenommen, die das Problem zu beheben scheint. Ich zögere zu sagen, dass dies die Hauptursache ist.

@@ -368,7 +368,7 @@ int stlink_flash_loader_run(stlink_t *sl, flash_loader_t* fl
, stm32_addr_t targe
 // by increasing the sleep-per-round to the same order-of-magnitude as
 // the tick-rounding that the OS uses, the wait until the error message is
 // reduced to the same order of magnitude as what was intended. -- REW.
-#define WAIT_ROUNDS 100
+#define WAIT_ROUNDS 200
     /* wait until done (reaches breakpoint) */
     for (i = 0; i < WAIT_ROUNDS; i++) {
         usleep(1000);

@geoffreymbrown : Könnten Sie dies als PR einreichen, sobald @tabemann und / oder @Crest überprüft wurden?

Ich habe den Patch im Entwicklungszweig mit der Nucleo STM32L476RG-Karte und dem integrierten ST-LINK / V2-1 getestet. Der Patch hat die Regression behoben. Vielen Dank, dass Sie sich damit befasst haben.

@geoffreymbrown : Das überlasse ich dir dann ...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen