Defines | |
#define | EFC EFC0 |
#define | GPNVM_NUM_MAX 3 |
#define | IFLASH_ADDR IFLASH0_ADDR |
#define | IFLASH_LOCK_REGION_SIZE IFLASH0_LOCK_REGION_SIZE |
#define | IFLASH_PAGE_SIZE IFLASH0_PAGE_SIZE |
Functions | |
static void | compute_address (Efc *p_efc, uint16_t us_page, uint16_t us_offset, uint32_t *pul_addr) |
Compute the address of a flash by the given page and offset. | |
static void | compute_lock_range (uint32_t ul_start, uint32_t ul_end, uint32_t *pul_actual_start, uint32_t *pul_actual_end) |
Compute the lock range associated with the given address range. | |
uint32_t | flash_clear_gpnvm (uint32_t ul_gpnvm) |
Clear the given GPNVM bit. | |
uint32_t | flash_enable_security_bit (void) |
Set security bit. | |
uint32_t | flash_erase_all (uint32_t ul_address) |
Erase the entire flash. | |
uint32_t | flash_get_descriptor (uint32_t ul_address, uint32_t *pul_flash_descriptor, uint32_t ul_size) |
Get flash descriptor. | |
uint32_t | flash_get_page_count (const uint32_t *pul_flash_descriptor) |
Get flash total page count for the specified bank. | |
uint32_t | flash_get_page_count_per_region (const uint32_t *pul_flash_descriptor) |
Get flash page count per region (plane) for the specified bank. | |
uint32_t | flash_get_region_count (const uint32_t *pul_flash_descriptor) |
Get flash region (plane) count for the specified bank. | |
uint32_t | flash_get_wait_state (uint32_t ul_address) |
Get flash wait state. | |
uint32_t | flash_init (uint32_t ul_mode, uint32_t ul_fws) |
Initialize the flash service. | |
uint32_t | flash_is_gpnvm_set (uint32_t ul_gpnvm) |
Check if the given GPNVM bit is set or not. | |
uint32_t | flash_is_locked (uint32_t ul_start, uint32_t ul_end) |
Get the number of locked regions inside the given address range. | |
uint32_t | flash_is_security_bit_enabled (void) |
Check if the security bit is set or not. | |
uint32_t | flash_lock (uint32_t ul_start, uint32_t ul_end, uint32_t *pul_actual_start, uint32_t *pul_actual_end) |
Lock all the regions in the given address range. The actual lock range is reported through two output parameters. | |
uint32_t | flash_read_unique_id (uint32_t *pul_data, uint32_t ul_size) |
Read the flash unique ID. | |
uint32_t | flash_set_gpnvm (uint32_t ul_gpnvm) |
Set the given GPNVM bit. | |
uint32_t | flash_set_wait_state (uint32_t ul_address, uint32_t ul_fws) |
Set flash wait state. | |
uint32_t | flash_set_wait_state_adaptively (uint32_t ul_address) |
Set flash wait state. | |
uint32_t | flash_unlock (uint32_t ul_start, uint32_t ul_end, uint32_t *pul_actual_start, uint32_t *pul_actual_end) |
Unlock all the regions in the given address range. The actual unlock range is reported through two output parameters. | |
uint32_t | flash_write (uint32_t ul_address, const void *p_buffer, uint32_t ul_size, uint32_t ul_erase_flag) |
Write a data buffer on flash. | |
static void | translate_address (Efc **pp_efc, uint32_t ul_addr, uint16_t *pus_page, uint16_t *pus_offset) |
Translate the given flash address to page and offset values. | |
Variables | |
static uint32_t | gs_ul_page_buffer [IFLASH_PAGE_SIZE/sizeof(uint32_t)] |
The Embedded Flash service provides functions for internal flash operations.
#define EFC EFC0 |
Definition at line 83 of file flash_efc.cpp.
#define GPNVM_NUM_MAX 3 |
Definition at line 85 of file flash_efc.cpp.
#define IFLASH_ADDR IFLASH0_ADDR |
Definition at line 87 of file flash_efc.cpp.
#define IFLASH_LOCK_REGION_SIZE IFLASH0_LOCK_REGION_SIZE |
Definition at line 91 of file flash_efc.cpp.
#define IFLASH_PAGE_SIZE IFLASH0_PAGE_SIZE |
Definition at line 89 of file flash_efc.cpp.
static void compute_address | ( | Efc * | p_efc, |
uint16_t | us_page, | ||
uint16_t | us_offset, | ||
uint32_t * | pul_addr | ||
) | [static] |
Compute the address of a flash by the given page and offset.
p_efc | Pointer to an EFC instance. |
us_page | Page number. |
us_offset | Byte offset inside page. |
pul_addr | Computed address (optional). |
Definition at line 145 of file flash_efc.cpp.
static void compute_lock_range | ( | uint32_t | ul_start, |
uint32_t | ul_end, | ||
uint32_t * | pul_actual_start, | ||
uint32_t * | pul_actual_end | ||
) | [static] |
Compute the lock range associated with the given address range.
ul_start | Start address of lock range. |
ul_end | End address of lock range. |
pul_actual_start | Actual start address of lock range. |
pul_actual_end | Actual end address of lock range. |
Definition at line 179 of file flash_efc.cpp.
uint32_t flash_clear_gpnvm | ( | uint32_t | ul_gpnvm | ) |
Clear the given GPNVM bit.
ul_gpnvm | GPNVM bit index. |
Definition at line 747 of file flash_efc.cpp.
uint32_t flash_enable_security_bit | ( | void | ) |
Set security bit.
Definition at line 797 of file flash_efc.cpp.
uint32_t flash_erase_all | ( | uint32_t | ul_address | ) |
Erase the entire flash.
ul_address | Flash bank start address. |
Definition at line 371 of file flash_efc.cpp.
uint32_t flash_get_descriptor | ( | uint32_t | ul_address, |
uint32_t * | pul_flash_descriptor, | ||
uint32_t | ul_size | ||
) |
Get flash descriptor.
ul_address | Flash bank start address. |
pul_flash_descriptor | Pointer to a data buffer to store flash descriptor. |
ul_size | Data buffer size in DWORD. |
Definition at line 288 of file flash_efc.cpp.
uint32_t flash_get_page_count | ( | const uint32_t * | pul_flash_descriptor | ) |
Get flash total page count for the specified bank.
pul_flash_descriptor | Pointer to a flash descriptor. |
Definition at line 325 of file flash_efc.cpp.
uint32_t flash_get_page_count_per_region | ( | const uint32_t * | pul_flash_descriptor | ) |
Get flash page count per region (plane) for the specified bank.
pul_flash_descriptor | Pointer to a flash descriptor. |
Definition at line 340 of file flash_efc.cpp.
uint32_t flash_get_region_count | ( | const uint32_t * | pul_flash_descriptor | ) |
Get flash region (plane) count for the specified bank.
pul_flash_descriptor | Pointer to a flash descriptor. |
Definition at line 355 of file flash_efc.cpp.
uint32_t flash_get_wait_state | ( | uint32_t | ul_address | ) |
Get flash wait state.
ul_address | Flash bank start address. |
Definition at line 271 of file flash_efc.cpp.
uint32_t flash_init | ( | uint32_t | ul_mode, |
uint32_t | ul_fws | ||
) |
Initialize the flash service.
ul_mode | FLASH_ACCESS_MODE_128 or FLASH_ACCESS_MODE_64. |
ul_fws | The number of wait states in cycle (no shift). |
Definition at line 205 of file flash_efc.cpp.
uint32_t flash_is_gpnvm_set | ( | uint32_t | ul_gpnvm | ) |
Check if the given GPNVM bit is set or not.
ul_gpnvm | GPNVM bit index. |
1 | If the given GPNVM bit is currently set. |
0 | If the given GPNVM bit is currently cleared. |
Definition at line 772 of file flash_efc.cpp.
uint32_t flash_is_locked | ( | uint32_t | ul_start, |
uint32_t | ul_end | ||
) |
Get the number of locked regions inside the given address range.
ul_start | Start address of range |
ul_end | End address of range. |
Definition at line 662 of file flash_efc.cpp.
uint32_t flash_is_security_bit_enabled | ( | void | ) |
Check if the security bit is set or not.
1 | If the security bit is currently set. |
0 | If the security bit is currently cleared. |
Definition at line 808 of file flash_efc.cpp.
uint32_t flash_lock | ( | uint32_t | ul_start, |
uint32_t | ul_end, | ||
uint32_t * | pul_actual_start, | ||
uint32_t * | pul_actual_end | ||
) |
Lock all the regions in the given address range. The actual lock range is reported through two output parameters.
ul_start | Start address of lock range. |
ul_end | End address of lock range. |
pul_actual_start | Start address of the actual lock range (optional). |
pul_actual_end | End address of the actual lock range (optional). |
Definition at line 569 of file flash_efc.cpp.
uint32_t flash_read_unique_id | ( | uint32_t * | pul_data, |
uint32_t | ul_size | ||
) |
Read the flash unique ID.
pul_data | Pointer to a data buffer to store 128-bit unique ID. |
ul_size | Data buffer size in DWORD. |
Definition at line 821 of file flash_efc.cpp.
uint32_t flash_set_gpnvm | ( | uint32_t | ul_gpnvm | ) |
Set the given GPNVM bit.
ul_gpnvm | GPNVM bit index. |
Definition at line 723 of file flash_efc.cpp.
uint32_t flash_set_wait_state | ( | uint32_t | ul_address, |
uint32_t | ul_fws | ||
) |
Set flash wait state.
ul_address | Flash bank start address. |
ul_fws | The number of wait states in cycle (no shift). |
Definition at line 224 of file flash_efc.cpp.
uint32_t flash_set_wait_state_adaptively | ( | uint32_t | ul_address | ) |
Set flash wait state.
ul_address | Flash bank start address. |
ul_fws | The number of wait states in cycle (no shift). |
Definition at line 242 of file flash_efc.cpp.
uint32_t flash_unlock | ( | uint32_t | ul_start, |
uint32_t | ul_end, | ||
uint32_t * | pul_actual_start, | ||
uint32_t * | pul_actual_end | ||
) |
Unlock all the regions in the given address range. The actual unlock range is reported through two output parameters.
ul_start | Start address of unlock range. |
ul_end | End address of unlock range. |
pul_actual_start | Start address of the actual unlock range (optional). |
pul_actual_end | End address of the actual unlock range (optional). |
Definition at line 618 of file flash_efc.cpp.
uint32_t flash_write | ( | uint32_t | ul_address, |
const void * | p_buffer, | ||
uint32_t | ul_size, | ||
uint32_t | ul_erase_flag | ||
) |
Write a data buffer on flash.
ul_address | Write address. |
p_buffer | Data buffer. |
ul_size | Size of data buffer in bytes. |
ul_erase_flag | Flag to set if erase first. |
Definition at line 482 of file flash_efc.cpp.
static void translate_address | ( | Efc ** | pp_efc, |
uint32_t | ul_addr, | ||
uint16_t * | pus_page, | ||
uint16_t * | pus_offset | ||
) | [static] |
Translate the given flash address to page and offset values.
pp_efc | Pointer to an EFC pointer. |
ul_addr | Address to translate. |
pus_page | The first page accessed. |
pus_offset | Byte offset in the first page. |
Definition at line 106 of file flash_efc.cpp.
uint32_t gs_ul_page_buffer[IFLASH_PAGE_SIZE/sizeof(uint32_t)] [static] |
Definition at line 94 of file flash_efc.cpp.