Как разблокировать и заблокировать защиту чтения памяти CH32V20x через OpenOCD?

Для микроконтроллеров WCH, работающих под Linux, существует метод разблокировки и блокировки защиты чтения памяти через OpenOCD, который расширяет стандартные возможности скрипта. Это достигается путем очистки области User Option Bytes и записи в поле RDPR значения 0xA5 для разблокировки, а для блокировки – сбросом области User Option Bytes. Для этого используются команды OpenOCD для чтения и записи регистров, а также созданные функции lock и unlock на языке Tcl.
Как разблокировать и заблокировать защиту чтения памяти CH32V20x через OpenOCD?
Изображение носит иллюстративный характер

Процедура разблокировки включает в себя проверку статуса защиты, разблокировку FLASH_CTLR и User Option Bytes, установку бита OBPG, запись значения 0xA5 в поле RDPR, а также ожидание завершения операции и верификацию. Функция lock аналогично проверяет статусы, разблокирует, устанавливает биты OBER и STRT для очистки, ожидает завершения, верифицирует результат и затем сбрасывает бит OBER.

Интеграция этих функций в скрипт OpenOCD позволяет вызывать их через IDE MounRiver, используя команды monitor lock и monitor unlock. Для автоматизированного процесса программирования со снятием и последующей установкой защиты можно использовать команды OpenOCD в командной строке.

Необходимо отметить, что значение байта RDPR после очистки области User Option Bytes может отличаться от указанного в документации (0xFF), принимая, например, значение 0x39 для ch32v203. Поэтому для микроконтроллера ch32v203 значение для lock должно быть 0xe339.


Новое на сайте

19618Червь в реестре: как CanisterWorm превратил npm в самораспространяющуюся ловушку? 19617Почему традиционная киберзащита бессильна, если угроза уже внутри вашей сети? 19616Авторское право как наживка: как PureLog Stealer атакует больницы и госорганы 19615Атака на Axios: как через скомпрометированный npm-аккаунт раздавали троян на три... 19614Учёные Австралии спасают «дерево-зомби» от грибковой эпидемии 19613Почему США запретили продажу иностранных роутеров и при чём тут кибершпионаж Китая? 19612Астрономы впервые увидели рождение магнитара 19611Citrix призывает срочно закрыть критическую брешь в NetScaler, позволяющую красть данные... 19610Как северокорейские хакеры превратили VS Code в оружие против криптоиндустрии? 19609Дженсен Хуанг заявил об AGI, а учёные приблизились к воскрешению после смерти 19608Как компрометация одного CI/CD-пайплайна поставила под удар треть облачных сред планеты? 19607Зачем римляне построили форт в Шотландии далеко за Адриановым валом? 19606Три процессных ошибки в SOC, которые убивают продуктивность аналитиков первой линии 19605Татуировка-крест на шее исчезла, убив кожу под собой 19604Могут ли бобры спасти планету от углеродных выбросов?
Ссылка