После прошивки в контроллер DFU-бутлоадера и поигравшись немного с ним, решил прошить контроллер своей программой по-обычному, через ST-LinkV2 (SWD). Поставил boot-джамперы в положение 00, и попытался прошить через ST-Link. И каково же было мое удивление, что я этого сделать не могу по причине некорректного chipid.
До прошивки DFU-bootloaderа плата выдавала такие данные:
Код: Выделить всё
> st-info --probe
Found 1 stlink programmers
serial: 132014026315303030303032
openocd: "\x13\x20\x14\x02\x63\x15\x30\x30\x30\x30\x30\x32"
flash: 65536 (pagesize: 1024)
sram: 20480
chipid: 0x0410
descr: F1 Medium-density device
Код: Выделить всё
Found 1 stlink programmers
serial: 132014026315303030303032
hla-serial: "\x13\x20\x14\x02\x63\x15\x30\x30\x30\x30\x30\x32"
flash: 0 (pagesize: 0)
sram: 0
chipid: 0x0748
Код: Выделить всё
> st-flash --reset write myprogramm.bin 0x08000000
st-flash 1.6.1
2022-04-09T18:48:44 WARN common.c: unknown chip id! 0x3748
Failed to connect to target
Начал искать советы, как сбросить плату. Советы были разные, ни один не сработал. Вот что я делал:
* * *
Вначале выставил boot-перемычки на boot0=1 и boot1=0 чтобы при старте платы не выполнялся левый код, переткнул плату в USB-гнезде и попытался обнулить FLASH. Но нет, такое не прокатывает:
Код: Выделить всё
> st-flash erase
st-flash 1.6.1
2022-04-09T18:57:41 WARN common.c: unknown chip id! 0x3748
Failed to connect to target
В конце концов заметил, что если нажать Reset и удерживать, плата начинает выдавать такую информацию о себе:
Код: Выделить всё
Found 1 stlink programmers
serial: 132014026315303030303032
hla-serial: "\x13\x20\x14\x02\x63\x15\x30\x30\x30\x30\x30\x32"
flash: 61010944 (pagesize: 1024)
sram: 20480
chipid: 0x0410
descr: F1xx Medium-density
Код: Выделить всё
> st-flash erase
st-flash 1.6.1
INFO common.c: F1xx Medium-density: 20 KiB SRAM, 59581 KiB flash in at least 1 KiB pages.
Тогда при нажатом Reset я проверил, а что вообще в FLASH памяти есть:
Код: Выделить всё
> st-flash read firmware.bin 0x8000000 0x2000
> xxd firmware.bin
00000000: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000010: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000020: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000030: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000040: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000050: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000060: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000070: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000080: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
00000090: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
000000a0: 08b5 1420 08b5 1420 08b5 1420 08b5 1420 ... ... ... ...
...
Я пробовал зажимать Reset до вставки ST-LinkV2 в USB, пробовал не зажимать, пробовал нажимать один раз, с разными положениями boot-перемычек, давал команды st-flash erase, st-flash reset, но все бестолку. Плата упорно показывает flash:0, sram:0, chipid:0x0748.
Вопрос: как, блин, эту плату можно сбросить? Чтобы вернулся нормальный id и правильный размер FLASH/RAM?

