Power cycling after ROP setting
Hello. My application hangs after setting the ROP to LVL1 and resetting the whole device. I have found some people had this issue as well and power cycling helped (which is my case as well). But it is kind of an inconvenience as my application is battery powered. Is there any way of avoiding having to do this?
My code for setting the ROP lvl:
/**
* @brief Enables a LVL1 read out protection (if it is not enabled yet) */static void enable_ROP_LVL1(void){ FLASH_OBProgramInitTypeDef OptionsBytesStruct;HAL_FLASH_Unlock(); // Unlock the Flash to enable the flash control register access
HAL_FLASH_OB_Unlock(); // Unlock the Options Bytes HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct); // Get pages write protection status// Check if read out protection is enabled
if((OptionsBytesStruct.RDPLevel) == OB_RDP_LEVEL_0) { OptionsBytesStruct.OptionType = OPTIONBYTE_RDP; OptionsBytesStruct.RDPLevel = OB_RDP_LEVEL_1;if(HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK)
{ _Error_Handler(__FILE__, __LINE__); }HAL_FLASH_OB_Launch(); // Generate System Reset to load the new option byte values
} HAL_FLASH_OB_Lock(); // Lock the Options Bytes}