Perform a mass erase or erase the specified FLASH memory pages.
129 HAL_StatusTypeDef status;
136 assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
146 if(READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != 0U)
149 __HAL_FLASH_INSTRUCTION_CACHE_DISABLE();
151 if(READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U)
154 __HAL_FLASH_DATA_CACHE_DISABLE();
162 else if(READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U)
165 __HAL_FLASH_DATA_CACHE_DISABLE();
173 if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
181 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || \ 182 defined (STM32L496xx) || defined (STM32L4A6xx) || \ 183 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx) 185 CLEAR_BIT(FLASH->CR, (FLASH_CR_MER1 | FLASH_CR_MER2));
194 *PageError = 0xFFFFFFFFU;
196 for(page_index = pEraseInit->Page; page_index < (pEraseInit->Page + pEraseInit->NbPages); page_index++)
204 CLEAR_BIT(FLASH->CR, (FLASH_CR_PER | FLASH_CR_PNB));
209 *PageError = page_index;
void FLASH_PageErase(uint32_t Page, uint32_t Banks)
Erase the specified FLASH memory page.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
void FLASH_FlushCaches(void)
Flush the instruction and data caches.
HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
Wait for a FLASH operation to complete.
FLASH_ProcessTypeDef pFlash
Variable used for Program/Erase sectors under interruption.
__IO FLASH_CacheTypeDef CacheToReactivate
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
static void FLASH_MassErase(uint32_t Banks)
Mass erase of FLASH memory.