STM32 СЧИТЫВАЕТ УРОВЕНЬ ЗАЩИТЫ 2, используя openocd

STM32 имеет функцию защиты от считывания уровня 2, поэтому код не может быть считан через интерфейс отладки (SWD).

Как с помощью OpenOCD включить защиту от считывания УРОВЕНЬ 2 через интерфейс SWD?


person kahan    schedule 18.06.2020    source источник


Ответы (2)


Скрипт openocd для STM32F42x:

// unlock Option bytes
mww 0x40023C08 0x08192A3B; // OPT key1
mww 0x40023C08 0x4C5D6E7F; // OPT key2
mdw 0x40023c0c // wait until returns 00000000 that signifies flash write done

mww 0x40023C14 0x8000AAEC; // enable SPRMOD (8), disable write protection
mww 0x40023C18 0x00000000;
mww 0x40023C14 0x8000AAEE; // execute option start
mdw 0x40023c0c // wait until returns 00000000 that signifies flash write done

// at this point SPRMOD should be set, but no protection. Now invert protection bits
mww 0x40023C14 0x8FFFCCEC; // enable WRP on bank 1 and read protection lvl2
mww 0x40023C18 0x0FFF0000; // WRP on bank 2
mww 0x40023C14 0x8FFFCCEE; // execute option start
mdw 0x40023c0c // wait until returns 00000000 that signifies flash write done

Заметьте, я не делал этого сам (по крайней мере, не намеренно), но справочник вам в помощь.

Примечание 2: это может привести к поломке вашего MCU.

person stiebrs    schedule 28.04.2021

вам нужно будет написать скрипт, разблокирующий байты опций и программирующий их.

Вместо этого используйте утилиту st-link

person 0___________    schedule 18.06.2020
comment
Это приложение на базе Windows. Я хочу запрограммировать stm через raspberry pi. Необходимо включить уровень защиты от чтения 2. - person kahan; 18.06.2020
comment
@kahan, тогда напиши сценарий - person 0___________; 18.06.2020
comment
Можете ли вы показать мне, как мы можем добиться этого с помощью скрипта? - person kahan; 21.06.2020