Option Bytes Programming functions.
More...
Option Bytes Programming functions.
===============================================================================
Option Bytes Programming functions
===============================================================================
This group includes the following functions:
- void FLASH_OB_Unlock(void)
- void FLASH_OB_Lock(void)
- void FLASH_OB_WRPConfig(uint32_t OB_WRP, FunctionalState NewState)
- void FLASH_OB_RDPConfig(uint8_t OB_RDP)
- void FLASH_OB_UserConfig(uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY)
- void FLASH_OB_BORConfig(uint8_t OB_BOR)
- FLASH_Status FLASH_ProgramOTP(uint32_t Address, uint32_t Data)
- FLASH_Status FLASH_OB_Launch(void)
- uint32_t FLASH_OB_GetUser(void)
- uint8_t FLASH_OB_GetWRP(void)
- uint8_t FLASH_OB_GetRDP(void)
- uint8_t FLASH_OB_GetBOR(void)
Any operation of erase or program should follow these steps:
1. Call the FLASH_OB_Unlock() function to enable the FLASH option control register access
2. Call one or several functions to program the desired Option Bytes:
- void FLASH_OB_WRPConfig(uint32_t OB_WRP, FunctionalState NewState) => to Enable/Disable
the desired sector write protection
- void FLASH_OB_RDPConfig(uint8_t OB_RDP) => to set the desired read Protection Level
- void FLASH_OB_UserConfig(uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY) => to configure
the user Option Bytes.
- void FLASH_OB_BORConfig(uint8_t OB_BOR) => to set the BOR Level
3. Once all needed Option Bytes to be programmed are correctly written, call the
FLASH_OB_Launch() function to launch the Option Bytes programming process.
@note When changing the IWDG mode from HW to SW or from SW to HW, a system
reset is needed to make the change effective.
4. Call the FLASH_OB_Lock() function to disable the FLASH option control register
access (recommended to protect the Option Bytes against possible unwanted operations)
void FLASH_OB_BORConfig |
( |
uint8_t |
OB_BOR | ) |
|
Sets the BOR Level.
- Parameters
-
OB_BOR,: | specifies the Option Bytes BOR Reset Level. This parameter can be one of the following values:
- OB_BOR_LEVEL3: Supply voltage ranges from 2.7 to 3.6 V
- OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V
- OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V
- OB_BOR_OFF: Supply voltage ranges from 1.62 to 2.1 V
|
- Return values
-
uint8_t FLASH_OB_GetBOR |
( |
void |
| ) |
|
Returns the FLASH BOR level.
- Parameters
-
- Return values
-
The | FLASH BOR level:
- OB_BOR_LEVEL3: Supply voltage ranges from 2.7 to 3.6 V
- OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V
- OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V
- OB_BOR_OFF : Supply voltage ranges from 1.62 to 2.1 V
|
FlagStatus FLASH_OB_GetRDP |
( |
void |
| ) |
|
Returns the FLASH Read Protection level.
- Parameters
-
- Return values
-
FLASH | ReadOut Protection Status:
- SET, when OB_RDP_Level_1 or OB_RDP_Level_2 is set
- RESET, when OB_RDP_Level_0 is set
|
uint8_t FLASH_OB_GetUser |
( |
void |
| ) |
|
Returns the FLASH User Option Bytes values.
- Parameters
-
- Return values
-
The | FLASH User Option Bytes values: IWDG_SW(Bit0), RST_STOP(Bit1) and RST_STDBY(Bit2). |
uint16_t FLASH_OB_GetWRP |
( |
void |
| ) |
|
Returns the FLASH Write Protection Option Bytes value.
- Parameters
-
- Return values
-
The | FLASH Write Protection Option Bytes value |
Launch the option byte loading.
- Parameters
-
- Return values
-
FLASH | Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE. |
void FLASH_OB_Lock |
( |
void |
| ) |
|
Locks the FLASH Option Control Registers access.
- Parameters
-
- Return values
-
void FLASH_OB_RDPConfig |
( |
uint8_t |
OB_RDP | ) |
|
Sets the read protection level.
- Parameters
-
OB_RDP,: | specifies the read protection level. This parameter can be one of the following values:
- OB_RDP_Level_0: No protection
- OB_RDP_Level_1: Read protection of the memory
- OB_RDP_Level_2: Full chip protection
!!!Warning!!! When enabling OB_RDP level 2 it's no more possible to go back to level 1 or 0 |
- Return values
-
void FLASH_OB_Unlock |
( |
void |
| ) |
|
Unlocks the FLASH Option Control Registers access.
- Parameters
-
- Return values
-
void FLASH_OB_UserConfig |
( |
uint8_t |
OB_IWDG, |
|
|
uint8_t |
OB_STOP, |
|
|
uint8_t |
OB_STDBY |
|
) |
| |
Programs the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY.
- Parameters
-
OB_IWDG,: | Selects the IWDG mode This parameter can be one of the following values:
- OB_IWDG_SW: Software IWDG selected
- OB_IWDG_HW: Hardware IWDG selected
|
OB_STOP,: | Reset event when entering STOP mode. This parameter can be one of the following values:
- OB_STOP_NoRST: No reset generated when entering in STOP
- OB_STOP_RST: Reset generated when entering in STOP
|
OB_STDBY,: | Reset event when entering Standby mode. This parameter can be one of the following values:
- OB_STDBY_NoRST: No reset generated when entering in STANDBY
- OB_STDBY_RST: Reset generated when entering in STANDBY
|
- Return values
-
void FLASH_OB_WRPConfig |
( |
uint32_t |
OB_WRP, |
|
|
FunctionalState |
NewState |
|
) |
| |
Enables or disables the write protection of the desired sectors.
- Parameters
-
OB_WRP,: | specifies the sector(s) to be write protected or unprotected. This parameter can be one of the following values:
- OB_WRP: A value between OB_WRP_Sector0 and OB_WRP_Sector11
- OB_WRP_Sector_All
|
Newstate,: | new state of the Write Protection. This parameter can be: ENABLE or DISABLE. |
- Return values
-