подключаю STLink_v2 к хосту, SWDIO & SWCLK к таргету (в данном случае - к STM32F103, который стоит на STM8S-dicsovery).
всё отлично: кристалл определяется читается, всё шьётся.
Код
$ /usr/local/bin/st-flash read out.bin 0x8000000 0x10000
2013-11-19T13:32:05 INFO src/stlink-common.c: Loading device parameters....
2013-11-19T13:32:05 INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410
2013-11-19T13:32:05 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2013-11-19T13:32:05 INFO src/stlink-common.c: Loading device parameters....
2013-11-19T13:32:05 INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410
2013-11-19T13:32:05 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
заливаю туда образ STLinkV2 :
Код
$ /usr/local/bin/st-flash write STLinkV2.J16.S4.bin 0x08000000
2013-11-19T18:04:42 INFO src/stlink-common.c: Loading device parameters....
2013-11-19T18:04:42 INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410
2013-11-19T18:04:42 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2013-11-19T18:04:42 INFO src/stlink-common.c: Ignoring 15328 bytes of Zeros at end of file
2013-11-19T18:04:42 INFO src/stlink-common.c: Attempting to write 50208 (0xc420) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x0800c400 erased
2013-11-19T18:04:43 INFO src/stlink-common.c: Finished erasing 50 pages of 1024 (0x400) bytes
2013-11-19T18:04:43 INFO src/stlink-common.c: Starting Flash write for VL/F0 core id
2013-11-19T18:04:43 INFO src/stlink-common.c: Successfully loaded flash loader in sram
49/49 pages written
2013-11-19T18:04:46 INFO src/stlink-common.c: Starting verification of write complete
2013-11-19T18:04:47 INFO src/stlink-common.c: Flash written and verified! jolly good!
2013-11-19T18:04:42 INFO src/stlink-common.c: Loading device parameters....
2013-11-19T18:04:42 INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410
2013-11-19T18:04:42 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2013-11-19T18:04:42 INFO src/stlink-common.c: Ignoring 15328 bytes of Zeros at end of file
2013-11-19T18:04:42 INFO src/stlink-common.c: Attempting to write 50208 (0xc420) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x0800c400 erased
2013-11-19T18:04:43 INFO src/stlink-common.c: Finished erasing 50 pages of 1024 (0x400) bytes
2013-11-19T18:04:43 INFO src/stlink-common.c: Starting Flash write for VL/F0 core id
2013-11-19T18:04:43 INFO src/stlink-common.c: Successfully loaded flash loader in sram
49/49 pages written
2013-11-19T18:04:46 INFO src/stlink-common.c: Starting verification of write complete
2013-11-19T18:04:47 INFO src/stlink-common.c: Flash written and verified! jolly good!
- тоже всё круто.
Чип корректно прошился и при подключении по USB определяется как STLinkV2
Но!!!!
Теперь не могу больше не прочитать ни стереть ни записать кристалл Flash: 0 bytes (0 KiB):
Код
$ /usr/local/bin/st-flash read out.bin 0x8000000 0x10000
2013-11-19T23:05:05 INFO src/stlink-common.c: Loading device parameters....
2013-11-19T23:05:05 INFO src/stlink-common.c: Device connected is: F1 Connectivity line device, id 0x10016418
2013-11-19T23:05:05 INFO src/stlink-common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0 bytes (0 KiB) in pages of 2048 bytes
2013-11-19T23:05:05 INFO src/stlink-common.c: Loading device parameters....
2013-11-19T23:05:05 INFO src/stlink-common.c: Device connected is: F1 Connectivity line device, id 0x10016418
2013-11-19T23:05:05 INFO src/stlink-common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0 bytes (0 KiB) in pages of 2048 bytes
Код
$ /usr/local/bin/st-flash --reset write STLinkV2.J16.S4.bin 0x08000000
2013-11-19T20:05:48 INFO src/stlink-common.c: Loading device parameters....
2013-11-19T20:05:48 INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410
2013-11-19T20:05:48 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0 bytes (0 KiB) in pages of 1024 bytes
2013-11-19T20:05:48 INFO src/stlink-common.c: Loading device parameters....
2013-11-19T20:05:48 INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410
2013-11-19T20:05:48 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0 bytes (0 KiB) in pages of 1024 bytes
- пробовал в разных комбинациях с --reset и даже как советуют в гуглах с коннектом ноги ресета на Vcc
вопрос:
как восстановить доступ к флеш по SWD?
если даже флеш залочена на чтение - дать возможность стереть он же должен??
вопрос более общего плана:
как вообще в этом st-flash фьюз-байты рулятся?
увы, st-flash -h ответа не даёт