Stlink: STM32L476 PENEMUAN: st-flash gagal menulis

Dibuat pada 13 Jun 2020  ·  5Komentar  ·  Sumber: stlink-org/stlink

Terima kasih telah memberikan umpan balik untuk proyek stlink.

Untuk memungkinkan pengembang dan kontributor lainnya mengisolasi dan menargetkan masalah Anda masing-masing, luangkan waktu untuk mengisi setiap item berikut yang sesuai dengan masalah khusus Anda:

  • Jenis programmer / papan: Stlink / v2-1
  • Versi firmware programmer: versi terintegrasi dengan STM32L476 DISCOVERY
  • Sistem operasi dan versi: Linux 5.5.0-1-amd64
  • Versi alat Stlink dan / atau git commit hash: v1.6.1 (dari rilis .tar.gz)
  • Nama alat baris perintah Stlink: st-flash
  • Chip target (dan papan jika ada): STM32L476 DISCOVERY

Selanjutnya kami dengan hormat meminta Anda untuk mendeskripsikan masalah yang terdeteksi sedetail mungkin dan menambahkan keluaran debug jika tersedia, dengan menggunakan templat berikut:

Output Baris Perintah:

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

Diharapkan / deskripsi:

St-flash tersebut akan berhasil menulis zeptoforth.bin ke memori flash dari STM32L476 MCU, pada 0x08000000.

PEMBERITAHUAN: Laporan bug ini mungkin ditutup tanpa pemberitahuan lebih lanjut, jika tidak tersedia informasi yang cukup!

Terima kasih atas dukungan Anda.

Pengelola proyek stlink

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

Komentar yang paling membantu

Saya menguji tambalan di cabang pengembangan dengan papan Nucleo STM32L476RG dan onboard ST-LINK / V2-1. Patch memperbaiki regresi. Terima kasih telah memeriksanya.

Semua 5 komentar

Saya mengalami regresi yang sama pada papan Nucleo L476RG baik stlink 1.5.0 dan 1.6.0 berfungsi untuk saya, tetapi versi terbaru dari git menghasilkan keluaran ini (setelah saya menghentikannya dari mengirim pesan log USB ke stdout):

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

Saya pikir ini mungkin masalah waktu. Saya memiliki masalah yang sama dengan stm32l432 tersebut. Saya membuat perubahan berikut di flash_loader.c yang tampaknya menyelesaikan masalah. Saya ragu untuk mengatakan bahwa itulah akar masalahnya.

@@ -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 : Bisakah Anda mengirimkan ini sebagai PR, segera setelah @tabemann dan / atau @Crest diverifikasi?

Saya menguji tambalan di cabang pengembangan dengan papan Nucleo STM32L476RG dan onboard ST-LINK / V2-1. Patch memperbaiki regresi. Terima kasih telah memeriksanya.

@geoffreymbrown : Saya akan serahkan ini kepada Anda kemudian ...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat