选项字节是什么
选项字节用于配置 FLASH 的读写保护、电源管理中的 BOR 级别、软件/硬件看门狗等功能,这部分共 32 字节。可以通过修改 FLASH 的选项控制寄存器修改。
因业务需要,将RDP配置为级别2,从而禁止调试和从RAM启动
注意:RDP一旦设置为级别2,不可降级,相当于熔断下载和调试,芯片将无法通过硬件方式下载,使用该功能之前,一定要实现远程升级功能,否则该芯片将报废。
实现步骤,使用cubemx生成一个hal库文件,在用户代码中添加如下代码
FLASH_OBProgramInitTypeDef obData;
HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();
HAL_FLASHEx_OBGetConfig(&obData);
printf("***pOBInit->RDPLevel=%02x\r\n",obData.RDPLevel);
if(obData.RDPLevel<OB_RDP_LEVEL_2)
{
obData.OptionType=OPTIONBYTE_RDP;
obData.RDPLevel=OB_RDP_LEVEL_2;
if(HAL_FLASHEx_OBProgram(&obData)!=HAL_OK)
{
printf("写入失败 \r\n");
}else
{
printf("写入成功 \r\n");
HAL_FLASH_OB_Launch();
}
}
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
printf("********pOBInit->RDPLevel=%02x\r\n",obData.RDPLevel);
printf("HAL_FLASHEx_OBProgram=%d \r\n",HAL_FLASHEx_OBProgram(&obData));
串口监听数据:
下载失败,下载和调试功能被熔断
ok!