#1, for ST
FLASH_OBProgramInitTypeDef OBInit; //flash option bytes
__HAL_FLASH_PREFETCH_BUFFER_DISABLE(); //prefetch buffer disable
HAL_FLASHEx_OBGetConfig(&OBInit); //Get the Option byte configuration
if(OBInit.RDPLevel == OB_RDP_LEVEL_0)//option byte read protection
{
OBInit.OptionType = OPTIONBYTE_RDP;
OBInit.RDPLevel = OB_RDP_LEVEL_1;
HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();
HAL_FLASHEx_OBProgram(&OBInit);
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
}
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
读保护分三个 级别,具体定义如下:
#2, for GD
https://blog.csdn.net/u011106767/article/details/123168468?ops_request_misc=&request_id=&biz_id=102&utm_term=fmc%20GD%E4%BF%9D%E6%8A%A4&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-123168468.142v62js_top,201v3control_1,213v1t3_esquery_v1&spm=1018.2226.3001.4187
bank0, bank1 解锁






Detail code:
/******************************************
Option bytes memory位置
