Robobo
Enhanced Embedded Flash Controller (EEFC)

Macros

#define FWP_KEY   0x5Au
 
#define EEFC_ERROR_FLAGS   (EEFC_FSR_FLOCKE | EEFC_FSR_FCMDE)
 

Functions

void efc_write_fmr (Efc *p_efc, uint32_t ul_fmr)
 
uint32_t efc_perform_fcr (Efc *p_efc, uint32_t ul_fcr)
 
uint32_t efc_init (Efc *p_efc, uint32_t ul_access_mode, uint32_t ul_fws)
 Initialize the EFC controller. More...
 
void efc_enable_frdy_interrupt (Efc *p_efc)
 Enable the flash ready interrupt. More...
 
void efc_disable_frdy_interrupt (Efc *p_efc)
 Disable the flash ready interrupt. More...
 
void efc_set_flash_access_mode (Efc *p_efc, uint32_t ul_mode)
 Set flash access mode. More...
 
uint32_t efc_get_flash_access_mode (Efc *p_efc)
 Get flash access mode. More...
 
void efc_set_wait_state (Efc *p_efc, uint32_t ul_fws)
 Set flash wait state. More...
 
uint32_t efc_get_wait_state (Efc *p_efc)
 Get flash wait state. More...
 
uint32_t efc_perform_command (Efc *p_efc, uint32_t ul_command, uint32_t ul_argument)
 Perform the given command and wait until its completion (or an error). More...
 
uint32_t efc_get_status (Efc *p_efc)
 Get the current status of the EEFC. More...
 
uint32_t efc_get_result (Efc *p_efc)
 Get the result of the last executed command. More...
 
 __attribute__ ((section(".ramfunc")))
 Perform read sequence. Supported sequences are read Unique ID and read User Signature. More...
 

Detailed Description

The Enhanced Embedded Flash Controller ensures the interface of the Flash block with the 32-bit internal bus.

Function Documentation

__attribute__ ( (section(".ramfunc"))  )

Perform read sequence. Supported sequences are read Unique ID and read User Signature.

Perform command.

Set mode register.

Parameters
p_efcPointer to an EFC instance.
ul_cmd_stStart command to perform.
ul_cmd_spStop command to perform.
p_ul_bufPointer to an data buffer.
ul_sizeBuffer size.
Returns
0 if successful, otherwise returns an error code.
Parameters
p_efcPointer to an EFC instance.
ul_fmrValue of mode register
p_efcPointer to an EFC instance.
ul_fcrFlash command.
Returns
The current status.
void efc_disable_frdy_interrupt ( Efc p_efc)

Disable the flash ready interrupt.

Parameters
p_efcPointer to an EFC instance.
void efc_enable_frdy_interrupt ( Efc p_efc)

Enable the flash ready interrupt.

Parameters
p_efcPointer to an EFC instance.
uint32_t efc_get_flash_access_mode ( Efc p_efc)

Get flash access mode.

Parameters
p_efcPointer to an EFC instance.
Returns
0 for 128-bit or EEFC_FMR_FAM for 64-bit.
uint32_t efc_get_result ( Efc p_efc)

Get the result of the last executed command.

Parameters
p_efcPointer to an EFC instance.
Returns
The result of the last executed command.
uint32_t efc_get_status ( Efc p_efc)

Get the current status of the EEFC.

Note
This function clears the value of some status bits (FLOCKE, FCMDE).
Parameters
p_efcPointer to an EFC instance.
Returns
The current status.
uint32_t efc_get_wait_state ( Efc p_efc)

Get flash wait state.

Parameters
p_efcPointer to an EFC instance.
Returns
The number of wait states in cycle (no shift).
uint32_t efc_init ( Efc p_efc,
uint32_t  ul_access_mode,
uint32_t  ul_fws 
)

Initialize the EFC controller.

Parameters
ul_access_mode0 for 128-bit, EEFC_FMR_FAM for 64-bit.
ul_fwsThe number of wait states in cycle (no shift).
Returns
0 if successful.
uint32_t efc_perform_command ( Efc p_efc,
uint32_t  ul_command,
uint32_t  ul_argument 
)

Perform the given command and wait until its completion (or an error).

Note
Unique ID commands are not supported, use efc_read_unique_id.
Parameters
p_efcPointer to an EFC instance.
ul_commandCommand to perform.
ul_argumentOptional command argument.
Note
This function will automatically choose to use IAP function.
Returns
0 if successful, otherwise returns an error code.
void efc_set_flash_access_mode ( Efc p_efc,
uint32_t  ul_mode 
)

Set flash access mode.

Parameters
p_efcPointer to an EFC instance.
ul_mode0 for 128-bit, EEFC_FMR_FAM for 64-bit.
void efc_set_wait_state ( Efc p_efc,
uint32_t  ul_fws 
)

Set flash wait state.

Parameters
p_efcPointer to an EFC instance.
ul_fwsThe number of wait states in cycle (no shift).