FLASH: Make sure that the flash unlock register state is cleared before trying to unlock the flash.
This commit is contained in:
@@ -52,6 +52,9 @@ void flash_set_ws(u32 ws)
|
|||||||
|
|
||||||
void flash_unlock(void)
|
void flash_unlock(void)
|
||||||
{
|
{
|
||||||
|
/* Clear the unlock state. */
|
||||||
|
FLASH_CR |= FLASH_CR_LOCK;
|
||||||
|
|
||||||
/* Authorize the FPEC access. */
|
/* Authorize the FPEC access. */
|
||||||
FLASH_KEYR = FLASH_KEYR_KEY1;
|
FLASH_KEYR = FLASH_KEYR_KEY1;
|
||||||
FLASH_KEYR = FLASH_KEYR_KEY2;
|
FLASH_KEYR = FLASH_KEYR_KEY2;
|
||||||
|
|||||||
@@ -78,6 +78,9 @@ void flash_set_ws(u32 ws)
|
|||||||
|
|
||||||
void flash_unlock(void)
|
void flash_unlock(void)
|
||||||
{
|
{
|
||||||
|
/* Clear the unlock state. */
|
||||||
|
FLASH_CR |= FLASH_CR_LOCK;
|
||||||
|
|
||||||
/* Authorize the FPEC access. */
|
/* Authorize the FPEC access. */
|
||||||
FLASH_KEYR = FLASH_KEYR_KEY1;
|
FLASH_KEYR = FLASH_KEYR_KEY1;
|
||||||
FLASH_KEYR = FLASH_KEYR_KEY2;
|
FLASH_KEYR = FLASH_KEYR_KEY2;
|
||||||
@@ -130,6 +133,10 @@ void flash_clear_status_flags(void)
|
|||||||
|
|
||||||
void flash_unlock_option_bytes(void)
|
void flash_unlock_option_bytes(void)
|
||||||
{
|
{
|
||||||
|
/* Clear the unlock state. */
|
||||||
|
FLASH_OPTCR |= FLASH_OPTCR_OPTLOCK;
|
||||||
|
|
||||||
|
/* Unlock the option bytes. */
|
||||||
FLASH_OPTKEYR = FLASH_OPTKEYR_KEY1;
|
FLASH_OPTKEYR = FLASH_OPTKEYR_KEY1;
|
||||||
FLASH_OPTKEYR = FLASH_OPTKEYR_KEY2;
|
FLASH_OPTKEYR = FLASH_OPTKEYR_KEY2;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,9 @@ void flash_set_ws(u32 ws)
|
|||||||
|
|
||||||
void flash_unlock(void)
|
void flash_unlock(void)
|
||||||
{
|
{
|
||||||
|
/* Clear the unlock sequence state. */
|
||||||
|
FLASH_CR |= FLASH_CR_LOCK;
|
||||||
|
|
||||||
/* Authorize the FPEC access. */
|
/* Authorize the FPEC access. */
|
||||||
FLASH_KEYR = FLASH_KEYR_KEY1;
|
FLASH_KEYR = FLASH_KEYR_KEY1;
|
||||||
FLASH_KEYR = FLASH_KEYR_KEY2;
|
FLASH_KEYR = FLASH_KEYR_KEY2;
|
||||||
@@ -130,6 +133,10 @@ void flash_clear_status_flags(void)
|
|||||||
|
|
||||||
void flash_unlock_option_bytes(void)
|
void flash_unlock_option_bytes(void)
|
||||||
{
|
{
|
||||||
|
/* Clear the unlock state. */
|
||||||
|
FLASH_OPTCR |= FLASH_OPTCR_OPTLOCK;
|
||||||
|
|
||||||
|
/* Unlock option bytes. */
|
||||||
FLASH_OPTKEYR = FLASH_OPTKEYR_KEY1;
|
FLASH_OPTKEYR = FLASH_OPTKEYR_KEY1;
|
||||||
FLASH_OPTKEYR = FLASH_OPTKEYR_KEY2;
|
FLASH_OPTKEYR = FLASH_OPTKEYR_KEY2;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user