FLASH
[STM32F4xx_StdPeriph_Driver]

FLASH driver modules. More...

Modules

 FLASH_Exported_Constants
 FLASH_Private_Functions

Defines

#define SECTOR_MASK   ((uint32_t)0xFFFFFF07)

Enumerations

enum  FLASH_Status {
  FLASH_BUSY = 1, FLASH_ERROR_PGS, FLASH_ERROR_PGP, FLASH_ERROR_PGA,
  FLASH_ERROR_WRP, FLASH_ERROR_PROGRAM, FLASH_ERROR_OPERATION, FLASH_COMPLETE
}
 

FLASH Status.


Functions

void FLASH_SetLatency (uint32_t FLASH_Latency)
 Sets the code latency value.
void FLASH_PrefetchBufferCmd (FunctionalState NewState)
 Enables or disables the Prefetch Buffer.
void FLASH_InstructionCacheCmd (FunctionalState NewState)
 Enables or disables the Instruction Cache feature.
void FLASH_DataCacheCmd (FunctionalState NewState)
 Enables or disables the Data Cache feature.
void FLASH_InstructionCacheReset (void)
 Resets the Instruction Cache.
void FLASH_DataCacheReset (void)
 Resets the Data Cache.
void FLASH_Unlock (void)
 Unlocks the FLASH control register access.
void FLASH_Lock (void)
 Locks the FLASH control register access.
FLASH_Status FLASH_EraseSector (uint32_t FLASH_Sector, uint8_t VoltageRange)
 Erases a specified FLASH Sector.
FLASH_Status FLASH_EraseAllSectors (uint8_t VoltageRange)
 Erases all FLASH Sectors.
FLASH_Status FLASH_ProgramDoubleWord (uint32_t Address, uint64_t Data)
 Programs a double word (64-bit) at a specified address.
FLASH_Status FLASH_ProgramWord (uint32_t Address, uint32_t Data)
 Programs a word (32-bit) at a specified address.
FLASH_Status FLASH_ProgramHalfWord (uint32_t Address, uint16_t Data)
 Programs a half word (16-bit) at a specified address.
FLASH_Status FLASH_ProgramByte (uint32_t Address, uint8_t Data)
 Programs a byte (8-bit) at a specified address.
void FLASH_OB_Unlock (void)
 Unlocks the FLASH Option Control Registers access.
void FLASH_OB_Lock (void)
 Locks the FLASH Option Control Registers access.
void FLASH_OB_WRPConfig (uint32_t OB_WRP, FunctionalState NewState)
 Enables or disables the write protection of the desired sectors.
void FLASH_OB_RDPConfig (uint8_t OB_RDP)
 Sets the read protection level.
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.
void FLASH_OB_BORConfig (uint8_t OB_BOR)
 Sets the BOR Level.
FLASH_Status FLASH_OB_Launch (void)
 Launch the option byte loading.
uint8_t FLASH_OB_GetUser (void)
 Returns the FLASH User Option Bytes values.
uint16_t FLASH_OB_GetWRP (void)
 Returns the FLASH Write Protection Option Bytes value.
FlagStatus FLASH_OB_GetRDP (void)
 Returns the FLASH Read Protection level.
uint8_t FLASH_OB_GetBOR (void)
 Returns the FLASH BOR level.
void FLASH_ITConfig (uint32_t FLASH_IT, FunctionalState NewState)
 Enables or disables the specified FLASH interrupts.
FlagStatus FLASH_GetFlagStatus (uint32_t FLASH_FLAG)
 Checks whether the specified FLASH flag is set or not.
void FLASH_ClearFlag (uint32_t FLASH_FLAG)
 Clears the FLASH's pending flags.
FLASH_Status FLASH_GetStatus (void)
 Returns the FLASH Status.
FLASH_Status FLASH_WaitForLastOperation (void)
 Waits for a FLASH operation to complete.

Detailed Description

FLASH driver modules.


Function Documentation

void FLASH_ClearFlag ( uint32_t  FLASH_FLAG  ) 

Clears the FLASH's pending flags.

Parameters:
FLASH_FLAG,: specifies the FLASH flags to clear. This parameter can be any combination of the following values:

  • FLASH_FLAG_EOP: FLASH End of Operation flag
  • FLASH_FLAG_OPERR: FLASH operation Error flag
  • FLASH_FLAG_WRPERR: FLASH Write protected error flag
  • FLASH_FLAG_PGAERR: FLASH Programming Alignment error flag
  • FLASH_FLAG_PGPERR: FLASH Programming Parallelism error flag
  • FLASH_FLAG_PGSERR: FLASH Programming Sequence error flag
Return values:
None 
void FLASH_DataCacheCmd ( FunctionalState  NewState  ) 

Enables or disables the Data Cache feature.

Parameters:
NewState,: new state of the Data Cache. This parameter can be: ENABLE or DISABLE.
Return values:
None 
void FLASH_DataCacheReset ( void   ) 

Resets the Data Cache.

Note:
This function must be used only when the Data Cache is disabled.
Parameters:
None 
Return values:
None 
FLASH_Status FLASH_EraseAllSectors ( uint8_t  VoltageRange  ) 

Erases all FLASH Sectors.

Parameters:
VoltageRange,: The device voltage range which defines the erase parallelism. This parameter can be one of the following values:

  • VoltageRange_1: when the device voltage range is 1.8V to 2.1V, the operation will be done by byte (8-bit)
  • VoltageRange_2: when the device voltage range is 2.1V to 2.7V, the operation will be done by half word (16-bit)
  • VoltageRange_3: when the device voltage range is 2.7V to 3.6V, the operation will be done by word (32-bit)
  • VoltageRange_4: when the device voltage range is 2.7V to 3.6V + External Vpp, the operation will be done by double word (64-bit)
Return values:
FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
FLASH_Status FLASH_EraseSector ( uint32_t  FLASH_Sector,
uint8_t  VoltageRange 
)

Erases a specified FLASH Sector.

Parameters:
FLASH_Sector,: The Sector number to be erased. This parameter can be a value between FLASH_Sector_0 and FLASH_Sector_11
VoltageRange,: The device voltage range which defines the erase parallelism. This parameter can be one of the following values:

  • VoltageRange_1: when the device voltage range is 1.8V to 2.1V, the operation will be done by byte (8-bit)
  • VoltageRange_2: when the device voltage range is 2.1V to 2.7V, the operation will be done by half word (16-bit)
  • VoltageRange_3: when the device voltage range is 2.7V to 3.6V, the operation will be done by word (32-bit)
  • VoltageRange_4: when the device voltage range is 2.7V to 3.6V + External Vpp, the operation will be done by double word (64-bit)
Return values:
FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
FlagStatus FLASH_GetFlagStatus ( uint32_t  FLASH_FLAG  ) 

Checks whether the specified FLASH flag is set or not.

Parameters:
FLASH_FLAG,: specifies the FLASH flag to check. This parameter can be one of the following values:

  • FLASH_FLAG_EOP: FLASH End of Operation flag
  • FLASH_FLAG_OPERR: FLASH operation Error flag
  • FLASH_FLAG_WRPERR: FLASH Write protected error flag
  • FLASH_FLAG_PGAERR: FLASH Programming Alignment error flag
  • FLASH_FLAG_PGPERR: FLASH Programming Parallelism error flag
  • FLASH_FLAG_PGSERR: FLASH Programming Sequence error flag
  • FLASH_FLAG_BSY: FLASH Busy flag
Return values:
The new state of FLASH_FLAG (SET or RESET).
FLASH_Status FLASH_GetStatus ( void   ) 

Returns the FLASH Status.

Parameters:
None 
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_InstructionCacheCmd ( FunctionalState  NewState  ) 

Enables or disables the Instruction Cache feature.

Parameters:
NewState,: new state of the Instruction Cache. This parameter can be: ENABLE or DISABLE.
Return values:
None 
void FLASH_InstructionCacheReset ( void   ) 

Resets the Instruction Cache.

Note:
This function must be used only when the Instruction Cache is disabled.
Parameters:
None 
Return values:
None 
void FLASH_ITConfig ( uint32_t  FLASH_IT,
FunctionalState  NewState 
)

Enables or disables the specified FLASH interrupts.

Parameters:
FLASH_IT,: specifies the FLASH interrupt sources to be enabled or disabled. This parameter can be any combination of the following values:

  • FLASH_IT_ERR: FLASH Error Interrupt
  • FLASH_IT_EOP: FLASH end of operation Interrupt
Return values:
None 
void FLASH_Lock ( void   ) 

Locks the FLASH control register access.

Parameters:
None 
Return values:
None 
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:
None 
uint8_t FLASH_OB_GetBOR ( void   ) 

Returns the FLASH BOR level.

Parameters:
None 
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:
None 
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:
None 
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:
None 
Return values:
The FLASH Write Protection Option Bytes value
FLASH_Status FLASH_OB_Launch ( void   ) 

Launch the option byte loading.

Parameters:
None 
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:
None 
Return values:
None 
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:
None 
void FLASH_OB_Unlock ( void   ) 

Unlocks the FLASH Option Control Registers access.

Parameters:
None 
Return values:
None 
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:
None 
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:
None 
void FLASH_PrefetchBufferCmd ( FunctionalState  NewState  ) 

Enables or disables the Prefetch Buffer.

Parameters:
NewState,: new state of the Prefetch Buffer. This parameter can be: ENABLE or DISABLE.
Return values:
None 
FLASH_Status FLASH_ProgramByte ( uint32_t  Address,
uint8_t  Data 
)

Programs a byte (8-bit) at a specified address.

Note:
This function can be used within all the device supply voltage ranges.
Parameters:
Address,: specifies the address to be programmed. This parameter can be any address in Program memory zone or in OTP zone.
Data,: specifies the data to be programmed.
Return values:
FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
FLASH_Status FLASH_ProgramDoubleWord ( uint32_t  Address,
uint64_t  Data 
)

Programs a double word (64-bit) at a specified address.

Note:
This function must be used when the device voltage range is from 2.7V to 3.6V and an External Vpp is present.
Parameters:
Address,: specifies the address to be programmed.
Data,: specifies the data to be programmed.
Return values:
FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
FLASH_Status FLASH_ProgramHalfWord ( uint32_t  Address,
uint16_t  Data 
)

Programs a half word (16-bit) at a specified address.

Note:
This function must be used when the device voltage range is from 2.1V to 3.6V.
Parameters:
Address,: specifies the address to be programmed. This parameter can be any address in Program memory zone or in OTP zone.
Data,: specifies the data to be programmed.
Return values:
FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
FLASH_Status FLASH_ProgramWord ( uint32_t  Address,
uint32_t  Data 
)

Programs a word (32-bit) at a specified address.

Parameters:
Address,: specifies the address to be programmed. This parameter can be any address in Program memory zone or in OTP zone.
Note:
This function must be used when the device voltage range is from 2.7V to 3.6V.
Parameters:
Data,: specifies the data to be programmed.
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_SetLatency ( uint32_t  FLASH_Latency  ) 

Sets the code latency value.

Parameters:
FLASH_Latency,: specifies the FLASH Latency value. This parameter can be one of the following values:

  • FLASH_Latency_0: FLASH Zero Latency cycle
  • FLASH_Latency_1: FLASH One Latency cycle
  • FLASH_Latency_2: FLASH Two Latency cycles
  • FLASH_Latency_3: FLASH Three Latency cycles
  • FLASH_Latency_4: FLASH Four Latency cycles
  • FLASH_Latency_5: FLASH Five Latency cycles
  • FLASH_Latency_6: FLASH Six Latency cycles
  • FLASH_Latency_7: FLASH Seven Latency cycles
Return values:
None 
void FLASH_Unlock ( void   ) 

Unlocks the FLASH control register access.

Parameters:
None 
Return values:
None 
FLASH_Status FLASH_WaitForLastOperation ( void   ) 

Waits for a FLASH operation to complete.

Parameters:
None 
Return values:
FLASH Status: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
Generated on Fri Jun 22 00:58:30 2012 for STM32F4xx_StdPeriph_Driver by  doxygen 1.6.3