flash_stm32: don't unlock flash if already unlocked (#13841)

On stm32f4 after reboot from DFU it was observed that the flash is
already unlocked. In that case, attempting to unlock it again causes a
data abort.
This commit is contained in:
xyzz 2021-08-02 00:27:57 -04:00 committed by GitHub
parent 4b630c46fe
commit 720c676403
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -161,10 +161,12 @@ FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) {
* @retval None * @retval None
*/ */
void FLASH_Unlock(void) { void FLASH_Unlock(void) {
if (FLASH->CR & FLASH_CR_LOCK) {
/* Authorize the FPEC Access */ /* Authorize the FPEC Access */
FLASH->KEYR = FLASH_KEY1; FLASH->KEYR = FLASH_KEY1;
FLASH->KEYR = FLASH_KEY2; FLASH->KEYR = FLASH_KEY2;
} }
}
/** /**
* @brief Locks the FLASH Program Erase Controller. * @brief Locks the FLASH Program Erase Controller.