Stlink: STM32L422CB: st-flash gagal mem-flash gambar ihex

Dibuat pada 12 Apr 2020  ·  12Komentar  ·  Sumber: stlink-org/stlink

Mencoba mem-flash file hex kecil ke STM32L422CB. File hex baik-baik saja, berhasil berkedip dengan utilitas st-link. st-flash berhasil menghapus halaman 2kb pertama dari flash, tetapi tidak menulis file hex sama sekali.

  • Jenis programer/papan: STLink V2
  • Versi firmware pemrogram: V2.J34.S7
  • Sistem operasi dan versi: Windows 10
  • Nama alat baris perintah Stlink: st-flash v.1.6.0
  • Chip target (dan papan jika ada): STM32L422CB

Selanjutnya kami dengan hormat meminta Anda untuk menjelaskan masalah yang terdeteksi sedetail mungkin dan menambahkan output debug jika tersedia, dengan menggunakan template berikut:

Commandline-Output:

PS C:\Users\xxx\Documents\Code\Test> st-flash --format ihex write ./build/test.hex
st-flash 1.6.0
2020-04-12T18:28:57 INFO common.c: Loading device parameters....
2020-04-12T18:28:57 INFO common.c: Device connected is: L41x device, id 0x10006464
2020-04-12T18:28:57 INFO common.c: SRAM size: 0xa000 bytes (40 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 2048 bytes
2020-04-12T18:28:57 INFO common.c: Attempting to write 592 (0x250) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08000000 erased
2020-04-12T18:28:57 INFO common.c: Finished erasing 1 pages of 2048 (0x800) bytes
2020-04-12T18:28:57 INFO common.c: Starting Flash write for F2/F4/L4
2020-04-12T18:28:57 INFO flash_loader.c: Successfully loaded flash loader in sram
enabling 32-bit flash writes
size: 592
2020-04-12T18:28:57 INFO common.c: Starting verification of write complete
2020-04-12T18:28:57 ERROR common.c: Verification of flash failed at offset: 0
stlink_fwrite_flash() == -1
PS C:\Users\xxx\Documents\Code\Test>

diharapkan/deskripsi:

Should flash the hex file without errors

buneeds-fix componenst-flash needinvestigation owindows programmestlinkv2 targestm32l4

Semua 12 komentar

Siapa yang bisa melihat lebih dekat ini?

Saya menyarankan pemeriksaan dengan papan yang sama dan alat flash lainnya sehingga kami dapat memastikan ini bukan masalah perangkat keras.
Verifikasi gagal di awal jadi jika itu bukan masalah perangkat keras, mungkin ada beberapa masalah di flashloader. Sayangnya pemeriksaan kode kesalahan di flashloader (jika mungkin) tidak diterapkan pada sebagian besar model. Saya menyarankan untuk mencetak semua nilai register setelah flash gagal, dengan st-util dan ( gdb atau lldb ).

Saya mencoba dengan keduanya, st link v2 asli dan salah satu salinan murah dari Cina. Gagal pada keduanya. Saya akan melihat register nanti ketika saya punya waktu lagi.

"Alat flash" yang saya sebutkan mengacu pada openocd atau alat resmi oleh ST. Maaf untuk ekspresi ambigu. Ketika Anda memeriksa nilai register, akan lebih baik untuk mencetak nilai register STM32_FLASH_SR , yang terletak di STM32_FLASH_REGS_BASE + 0x10. STM32_FLASH_REGS_BASE adalah 0x40022000 pada STM32L4.

Maaf untuk membalas begitu terlambat.
Saya mencoba mem-flash beberapa file hex berbeda dengan ukuran berbeda, st-flash berhasil menghapus halaman yang diperlukan (diverifikasi dengan memeriksa konten memori dengan utilitas tautan st), tetapi gagal mem-flash seperti yang saya katakan di posting awal.
Flash berhasil saat mem-flash hex dengan utilitas tautan st atau dfu yang sesuai dengan alat st dfu, jadi saya akan mengatakan bahwa itu bukan masalah perangkat keras.

Inilah yang dibaca STM32_FLASH_SR:
grafik

Petunjuknya adalah bahwa FLASH_SR menunjukkan PGSERR dan PGAERR disetel, yaitu, ada beberapa masalah penyelarasan. Jika Anda dapat memberikan nilai register tujuan umum setelah pemrograman gagal (dengan gdb , info registers tanpa mengatur ulang papan sebelum melampirkan) dan meluncurkan st-flash dengan --debug pada, saya pikir kami akan dapat menyelidiki lebih lanjut dengan log debug dan nilai register.

Sunting: Akan lebih baik jika Anda dapat memberikan nilai asli STM32_FLASH_SR sebelum mem-flash.

grafik

ini adalah register setelah flash gagal (terhubung tanpa reset).

Di sini output dengan --debug set:
log.txt

@lulle2007200 dalam surat yang saya terima Anda mengatakan bahwa dengan —debug itu berkedip tanpa kesalahan. Saya perhatikan bahwa Anda mengeditnya.
Apakah memang ada flashing yang berhasil, dengan debug aktif?

Jika demikian, itu mungkin masalah waktu, seperti seri f0.

Dari log, semuanya tampak baik-baik saja sebelum dijalankan. register tujuan umum menyimpan nilai yang sulit dijelaskan. Jika r0 nol di awal, mungkin ada masalah dengan fungsi yang menulis nilai ke register?

Itu tidak berhasil, saya kacau ketika mencoba mengarahkan output st-flash ke file. ternyata ga bisa sama sekali, tapi udah diflash dulu sebelum pake st link utilty...
Juga, saya menekan tutup dan berkomentar alih-alih berkomentar secara tidak sengaja, maaf atas kebingungannya.
Saya akan melihat lagi besok.

@lulle2007200 :

Saya agak lupa tentang ini, hidup menghalangi.
st-flash gagal menghapus dan mem-flash file hex yang disediakan.
Saya banyak file dengan ukuran berbeda, tidak berfungsi dengan salah satu dari mereka. Perhatikan bahwa mem-flash yang memiliki ST-Link Utility resmi berfungsi dengan baik.
Saya telah melampirkan log output st-flash dan nilai register tujuan umum dan STM32_FLASH_SR, keduanya, sebelum dan sesudah upaya flash.
log.txt
Regs

Sekarang kami mencari pengembang terampil yang entah bagaimana akrab dengan seri L4 memiliki kesempatan untuk memperbaikinya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat