STM32F05x加入RDP(LV1)后,Segger無法Unlock的解決辦法
沿用之前CM3核的STM32F10X系列的加入RDP功能,之后在Segger的Unsecured Chip或者Unlock STM32的Cmd無法進行去除RDP,而Unlock STM32則提示無法識別該型號。嘗試了很多方法,依然無法對其進行Remove RDP,估計是型號比較新,Segger還未完全支持吧。所用 的Segger為官方最新的Release跟Beta版本V4.65d跟V4.67c/
估計可用的方法有以下三種:
1、配置Boot區(qū),用System bootloader啟動,Boot1 = 0,Boot0=1,然后用串口ISP的A上位機對其進行去除讀保護;
2、配置Boot區(qū),用SRAM運行程序,在SRAM的主程序中執(zhí)行去除RDP操作;
3、購買了STLink II,下載STVP,選擇Option Byte的編程,將Option Byte重新設定為LV0;
以上只驗證了第三個方法,因為硬件已經(jīng)固定。驗證通過,完美去除RDP!
附上加入RDP的方法:
if(SET!=FLASH_OB_GetRDP()){FLASH_Unlock();//必須加,否則會出錯FLASH_OB_Unlock();FLASH_OB_RDPConfig(OB_RDP_Level_1);FLASH_OB_Lock();FLASH_Lock();FLASH_OB_Launch();//這句話一定加上,將自動復位加載,否則第一次上電,RDP并未生效,需要復位后才能生效。}
重大更新:
寫這篇文章到現(xiàn)在有一年了,最近剛更新了KeilMDK5.0,也趁這個時候在Segger官網(wǎng)下載了最新的V4.78e,此時再加入RDP后,使用J-Flash的Unsecured chip功能,能成功的將之前J-Flash版本不能去除RDP的bug。