У меня плата NUCLEO-L073RZ. Создал пример с HAL, скомпилировал, получился bin. Когда я эту плату соединяю с компьютером, появляется флешка. Я в эту флешку закинул этот bin, всё сработало, лампочка моргает как положено. Теперь хочу через st-flash записать. Не получается.
$ st-info --probe
Found 1 stlink programmers
version: V2J38S27
serial: 066CFF494849887767255731
flash: 196608 (pagesize: 128)
sram: 20480
chipid: 0x0447
descr: L0xx Category 5
$ st-flash write build/stm32cubetest.bin 0x8000000
st-flash 1.7.0
2021-11-03T00:55:19 INFO common.c: L0xx Category 5: 20 KiB SRAM, 192 KiB flash in at least 128 byte pages.
file build/stm32cubetest.bin md5 checksum: 887f85a4d767f3f16d13668ae959e72, stlink checksum: 0x0006629a
2021-11-03T00:55:19 INFO common.c: Attempting to write 4748 (0x128c) bytes to stm32 address: 134217728 (0x8000000)
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08000000 erased
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08000080 erased
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08000100 erased
...
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08001180 erased
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08001200 erased
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08001280 erased
2021-11-03T00:55:20 INFO common.c: Finished erasing 38 pages of 128 (0x80) bytes
2021-11-03T00:55:20 INFO common.c: Starting Flash write for L0
2021-11-03T00:55:20 INFO common.c: Starting Half page flash write for STM32L core id
2021-11-03T00:55:20 INFO flash_loader.c: Successfully loaded flash loader in sram
2021-11-03T00:55:20 INFO flash_loader.c: Clear DFSR
2021-11-03T00:55:20 ERROR flash_loader.c: Flash loader run error
2021-11-03T00:55:20 WARN flash_loader.c: Loader state: R2 0x0 R15 0x0
2021-11-03T00:55:20 WARN flash_loader.c: MCU state: DHCSR 0x1080009 DFSR 0x0 CFSR 0x0 HFSR 0x0
2021-11-03T00:55:20 WARN common.c: l1_stlink_flash_loader_run(0x8000000) failed! == -1
2021-11-03T00:55:20 WARN common.c:
write_half_pages failed == -1
тут оно висит
^C
[!] send_recv send request failed: LIBUSB_ERROR_BUSY
[!] send_recv STLINK_DEBUG_READREG
2021-11-03T00:55:56 INFO common.c: Go to Thumb mode
[!] send_recv send request failed: LIBUSB_ERROR_BUSY
[!] send_recv STLINK_DEBUG_WRITEREG
[!] send_recv send request failed: LIBUSB_ERROR_BUSY
[!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
[!] send_recv send request failed: LIBUSB_ERROR_BUSY
[!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
libusb: error [do_close] Device handle closed while transfer was still being processed, but the device is still connected as far as we know
libusb: error [do_close] A cancellation hasn't even been scheduled on the transfer for which the device is closing
st-flash: os/threads_posix.h:58: usbi_mutex_destroy: Assertion `pthread_mutex_destroy(mutex) == 0' failed.
Aborted (core dumped)
После этого девайс вообще не отвечает и даже reset не помогает, только перетыкивание из USB.
STM32Programmer у меня не запускается, жава падает с коре дампом. Предполагаю, что из-за wayland, пока хочу без него обойтись.
Возможно я неправильно указываю параметр ADDR, но во всех примерах указывают 0x8000000, никаких инструкций по поиску правильного адреса я не нашёл.
Прошивку на st-link который на плате я обновил до последней версии.
stlink у меня из дистрибутива, версия 1.7.0. Судя по гитхабу это последняя.