MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
The flash provides the C90TFS Flash driver of MCUXpresso SDK devices with the C90TFS Flash module inside. The flash driver provides general APIs to handle specific operations on C90TFS/FTFx Flash module. The user can use those APIs directly in the application. In addition, it provides internal functions called by the driver. Although these functions are not meant to be called from the user's application directly, the APIs can still be used.
Data Structures | |
struct | flash_execute_in_ram_function_config_t |
Flash execute-in-RAM function information. More... | |
struct | flash_swap_state_config_t |
Flash Swap information. More... | |
struct | flash_swap_ifr_field_config_t |
Flash Swap IFR fields. More... | |
union | flash_swap_ifr_field_data_t |
Flash Swap IFR field data. More... | |
union | pflash_protection_status_low_t |
PFlash protection status - low 32bit. More... | |
struct | pflash_protection_status_t |
PFlash protection status - full. More... | |
struct | flash_prefetch_speculation_status_t |
Flash prefetch speculation status. More... | |
struct | flash_protection_config_t |
Active flash protection information for the current operation. More... | |
struct | flash_access_config_t |
Active flash Execute-Only access information for the current operation. More... | |
struct | flash_operation_config_t |
Active flash information for the current operation. More... | |
struct | flash_config_t |
Flash driver state information. More... | |
Typedefs | |
typedef void(* | flash_callback_t )(void) |
A callback type used for the Pflash block. | |
Flash version | |
enum | _flash_driver_version_constants { kFLASH_DriverVersionName = 'F', kFLASH_DriverVersionMajor = 2, kFLASH_DriverVersionMinor = 3, kFLASH_DriverVersionBugfix = 1 } |
Flash driver version for ROM. More... | |
#define | MAKE_VERSION(major, minor, bugfix) (((major) << 16) | ((minor) << 8) | (bugfix)) |
Constructs the version number for drivers. More... | |
#define | FSL_FLASH_DRIVER_VERSION (MAKE_VERSION(2, 3, 1)) |
Flash driver version for SDK. More... | |
Flash configuration | |
#define | FLASH_SSD_CONFIG_ENABLE_FLEXNVM_SUPPORT 1 |
Indicates whether to support FlexNVM in the Flash driver. More... | |
#define | FLASH_SSD_IS_FLEXNVM_ENABLED (FLASH_SSD_CONFIG_ENABLE_FLEXNVM_SUPPORT && FSL_FEATURE_FLASH_HAS_FLEX_NVM) |
Indicates whether the FlexNVM is enabled in the Flash driver. | |
#define | FLASH_SSD_CONFIG_ENABLE_SECONDARY_FLASH_SUPPORT 1 |
Indicates whether to support Secondary flash in the Flash driver. More... | |
#define | FLASH_SSD_IS_SECONDARY_FLASH_ENABLED (0) |
Indicates whether the secondary flash is supported in the Flash driver. | |
#define | FLASH_DRIVER_IS_FLASH_RESIDENT 1 |
Flash driver location. More... | |
#define | FLASH_DRIVER_IS_EXPORTED 0 |
Flash Driver Export option. More... | |
Flash API key | |
enum | _flash_driver_api_keys { kFLASH_ApiEraseKey = FOUR_CHAR_CODE('k', 'f', 'e', 'k') } |
Enumeration for Flash driver API keys. More... | |
#define | FOUR_CHAR_CODE(a, b, c, d) (((d) << 24) | ((c) << 16) | ((b) << 8) | ((a))) |
Constructs the four character code for the Flash driver API key. More... | |
Initialization | |
status_t | FLASH_Init (flash_config_t *config) |
Initializes the global flash properties structure members. More... | |
status_t | FLASH_SetCallback (flash_config_t *config, flash_callback_t callback) |
Sets the desired flash callback function. More... | |
status_t | FLASH_PrepareExecuteInRamFunctions (flash_config_t *config) |
Prepares flash execute-in-RAM functions. More... | |
Erasing | |
status_t | FLASH_EraseAll (flash_config_t *config, uint32_t key) |
Erases entire flash. More... | |
status_t | FLASH_Erase (flash_config_t *config, uint32_t start, uint32_t lengthInBytes, uint32_t key) |
Erases the flash sectors encompassed by parameters passed into function. More... | |
status_t | FLASH_EraseAllExecuteOnlySegments (flash_config_t *config, uint32_t key) |
Erases the entire flash, including protected sectors. More... | |
Programming | |
status_t | FLASH_Program (flash_config_t *config, uint32_t start, uint32_t *src, uint32_t lengthInBytes) |
Programs flash with data at locations passed in through parameters. More... | |
status_t | FLASH_ProgramOnce (flash_config_t *config, uint32_t index, uint32_t *src, uint32_t lengthInBytes) |
Programs Program Once Field through parameters. More... | |
Reading | |||||||||||||||||||||||||||||||||||||||||||||||||
Programs flash with data at locations passed in through parameters via the Program Section command. This function programs the flash memory with the desired data for a given flash area as determined by the start address and length.
Programs the EEPROM with data at locations passed in through parameters. This function programs the emulated EEPROM with the desired data for a given flash area as determined by the start address and length.
| |||||||||||||||||||||||||||||||||||||||||||||||||
status_t | FLASH_ReadResource (flash_config_t *config, uint32_t start, uint32_t *dst, uint32_t lengthInBytes, flash_read_resource_option_t option) | ||||||||||||||||||||||||||||||||||||||||||||||||
Reads the resource with data at locations passed in through parameters. More... | |||||||||||||||||||||||||||||||||||||||||||||||||
status_t | FLASH_ReadOnce (flash_config_t *config, uint32_t index, uint32_t *dst, uint32_t lengthInBytes) | ||||||||||||||||||||||||||||||||||||||||||||||||
Reads the Program Once Field through parameters. More... | |||||||||||||||||||||||||||||||||||||||||||||||||
Security | |
status_t | FLASH_GetSecurityState (flash_config_t *config, flash_security_state_t *state) |
Returns the security state via the pointer passed into the function. More... | |
status_t | FLASH_SecurityBypass (flash_config_t *config, const uint8_t *backdoorKey) |
Allows users to bypass security with a backdoor key. More... | |
Verification | |
status_t | FLASH_VerifyEraseAll (flash_config_t *config, flash_margin_value_t margin) |
Verifies erasure of the entire flash at a specified margin level. More... | |
status_t | FLASH_VerifyErase (flash_config_t *config, uint32_t start, uint32_t lengthInBytes, flash_margin_value_t margin) |
Verifies an erasure of the desired flash area at a specified margin level. More... | |
status_t | FLASH_VerifyProgram (flash_config_t *config, uint32_t start, uint32_t lengthInBytes, const uint32_t *expectedData, flash_margin_value_t margin, uint32_t *failedAddress, uint32_t *failedData) |
Verifies programming of the desired flash area at a specified margin level. More... | |
status_t | FLASH_VerifyEraseAllExecuteOnlySegments (flash_config_t *config, flash_margin_value_t margin) |
Verifies whether the program flash execute-only segments have been erased to the specified read margin level. More... | |
Protection | |
status_t | FLASH_IsProtected (flash_config_t *config, uint32_t start, uint32_t lengthInBytes, flash_protection_state_t *protection_state) |
Returns the protection state of the desired flash area via the pointer passed into the function. More... | |
status_t | FLASH_IsExecuteOnly (flash_config_t *config, uint32_t start, uint32_t lengthInBytes, flash_execute_only_access_state_t *access_state) |
Returns the access state of the desired flash area via the pointer passed into the function. More... | |
Properties | |
status_t | FLASH_GetProperty (flash_config_t *config, flash_property_tag_t whichProperty, uint32_t *value) |
Returns the desired flash property. More... | |
status_t | FLASH_SetProperty (flash_config_t *config, flash_property_tag_t whichProperty, uint32_t value) |
Sets the desired flash property. More... | |
Flash Protection Utilities | |||||||||||||||||||||
Prepares the FlexNVM block for use as data flash, EEPROM backup, or a combination of both and initializes the FlexRAM.
| |||||||||||||||||||||
status_t | FLASH_PflashSetProtection (flash_config_t *config, pflash_protection_status_t *protectStatus) | ||||||||||||||||||||
Sets the PFlash Protection to the intended protection status. More... | |||||||||||||||||||||
status_t | FLASH_PflashGetProtection (flash_config_t *config, pflash_protection_status_t *protectStatus) | ||||||||||||||||||||
Gets the PFlash protection status. More... | |||||||||||||||||||||
struct flash_execute_in_ram_function_config_t |
Data Fields | |
uint32_t | activeFunctionCount |
Number of available execute-in-RAM functions. More... | |
uint32_t * | flashRunCommand |
Execute-in-RAM function: flash_run_command. More... | |
uint32_t * | flashCommonBitOperation |
Execute-in-RAM function: flash_common_bit_operation. More... | |
uint32_t flash_execute_in_ram_function_config_t::activeFunctionCount |
uint32_t* flash_execute_in_ram_function_config_t::flashRunCommand |
uint32_t* flash_execute_in_ram_function_config_t::flashCommonBitOperation |
struct flash_swap_state_config_t |
Data Fields | |
flash_swap_state_t | flashSwapState |
The current Swap system status. More... | |
flash_swap_block_status_t | currentSwapBlockStatus |
The current Swap block status. More... | |
flash_swap_block_status_t | nextSwapBlockStatus |
The next Swap block status. More... | |
flash_swap_state_t flash_swap_state_config_t::flashSwapState |
flash_swap_block_status_t flash_swap_state_config_t::currentSwapBlockStatus |
flash_swap_block_status_t flash_swap_state_config_t::nextSwapBlockStatus |
struct flash_swap_ifr_field_config_t |
Data Fields | |
uint16_t | swapIndicatorAddress |
A Swap indicator address field. More... | |
uint16_t | swapEnableWord |
A Swap enable word field. More... | |
uint8_t | reserved0 [4] |
A reserved field. More... | |
uint16_t flash_swap_ifr_field_config_t::swapIndicatorAddress |
uint16_t flash_swap_ifr_field_config_t::swapEnableWord |
uint8_t flash_swap_ifr_field_config_t::reserved0[4] |
union flash_swap_ifr_field_data_t |
Data Fields | |
uint32_t | flashSwapIfrData [2] |
A flash Swap IFR field data . More... | |
flash_swap_ifr_field_config_t | flashSwapIfrField |
A flash Swap IFR field structure. More... | |
uint32_t flash_swap_ifr_field_data_t::flashSwapIfrData[2] |
flash_swap_ifr_field_config_t flash_swap_ifr_field_data_t::flashSwapIfrField |
union pflash_protection_status_low_t |
struct pflash_protection_status_t |
Data Fields | |
pflash_protection_status_low_t | valueLow32b |
PROT[31:0] or PROTS[15:0]. More... | |
pflash_protection_status_low_t pflash_protection_status_t::valueLow32b |
struct flash_prefetch_speculation_status_t |
Data Fields | |
flash_prefetch_speculation_option_t | instructionOption |
Instruction speculation. More... | |
flash_prefetch_speculation_option_t | dataOption |
Data speculation. More... | |
flash_prefetch_speculation_option_t flash_prefetch_speculation_status_t::instructionOption |
flash_prefetch_speculation_option_t flash_prefetch_speculation_status_t::dataOption |
struct flash_protection_config_t |
Data Fields | |
uint32_t | regionBase |
Base address of flash protection region. More... | |
uint32_t | regionSize |
size of flash protection region. More... | |
uint32_t | regionCount |
flash protection region count. More... | |
uint32_t flash_protection_config_t::regionBase |
uint32_t flash_protection_config_t::regionSize |
uint32_t flash_protection_config_t::regionCount |
struct flash_access_config_t |
Data Fields | |
uint32_t | SegmentBase |
Base address of flash Execute-Only segment. More... | |
uint32_t | SegmentSize |
size of flash Execute-Only segment. More... | |
uint32_t | SegmentCount |
flash Execute-Only segment count. More... | |
uint32_t flash_access_config_t::SegmentBase |
uint32_t flash_access_config_t::SegmentSize |
uint32_t flash_access_config_t::SegmentCount |
struct flash_operation_config_t |
Data Fields | |
uint32_t | convertedAddress |
A converted address for the current flash type. More... | |
uint32_t | activeSectorSize |
A sector size of the current flash type. More... | |
uint32_t | activeBlockSize |
A block size of the current flash type. More... | |
uint32_t | blockWriteUnitSize |
The write unit size. More... | |
uint32_t | sectorCmdAddressAligment |
An erase sector command address alignment. More... | |
uint32_t | sectionCmdAddressAligment |
A program/verify section command address alignment. More... | |
uint32_t | resourceCmdAddressAligment |
A read resource command address alignment. More... | |
uint32_t | checkCmdAddressAligment |
A program check command address alignment. More... | |
uint32_t flash_operation_config_t::convertedAddress |
uint32_t flash_operation_config_t::activeSectorSize |
uint32_t flash_operation_config_t::activeBlockSize |
uint32_t flash_operation_config_t::blockWriteUnitSize |
uint32_t flash_operation_config_t::sectorCmdAddressAligment |
uint32_t flash_operation_config_t::sectionCmdAddressAligment |
uint32_t flash_operation_config_t::resourceCmdAddressAligment |
uint32_t flash_operation_config_t::checkCmdAddressAligment |
struct flash_config_t |
An instance of this structure is allocated by the user of the flash driver and passed into each of the driver APIs.
Data Fields | |
uint32_t | PFlashBlockBase |
A base address of the first PFlash block. | |
uint32_t | PFlashTotalSize |
The size of the combined PFlash block. More... | |
uint8_t | PFlashBlockCount |
A number of PFlash blocks. More... | |
uint8_t | FlashMemoryIndex |
0 - primary flash; 1 - secondary flash | |
uint8_t | FlashCacheControllerIndex |
0 - Controller for core 0; 1 - Controller for core 1 | |
uint8_t | Reserved0 |
Reserved field 0. | |
uint32_t | PFlashSectorSize |
The size in bytes of a sector of PFlash. More... | |
flash_callback_t | PFlashCallback |
The callback function for the flash API. More... | |
uint32_t | PFlashAccessSegmentSize |
A size in bytes of an access segment of PFlash. More... | |
uint32_t | PFlashAccessSegmentCount |
A number of PFlash access segments. More... | |
uint32_t * | flashExecuteInRamFunctionInfo |
An information structure of the flash execute-in-RAM function. More... | |
uint32_t | FlexRAMBlockBase |
For the FlexNVM device, this is the base address of the FlexRAM. More... | |
uint32_t | FlexRAMTotalSize |
For the FlexNVM device, this is the size of the FlexRAM. More... | |
uint32_t | DFlashBlockBase |
For the FlexNVM device, this is the base address of the D-Flash memory (FlexNVM memory) More... | |
uint32_t | DFlashTotalSize |
For the FlexNVM device, this is the total size of the FlexNVM memory;. More... | |
uint32_t | EEpromTotalSize |
For the FlexNVM device, this is the size in bytes of the EEPROM area which was partitioned from FlexRAM. More... | |
uint32_t flash_config_t::PFlashTotalSize |
uint8_t flash_config_t::PFlashBlockCount |
uint32_t flash_config_t::PFlashSectorSize |
flash_callback_t flash_config_t::PFlashCallback |
uint32_t flash_config_t::PFlashAccessSegmentSize |
uint32_t flash_config_t::PFlashAccessSegmentCount |
uint32_t* flash_config_t::flashExecuteInRamFunctionInfo |
uint32_t flash_config_t::FlexRAMBlockBase |
For the non-FlexNVM device, this is the base address of the acceleration RAM memory
uint32_t flash_config_t::FlexRAMTotalSize |
For the non-FlexNVM device, this is the size of the acceleration RAM memory
uint32_t flash_config_t::DFlashBlockBase |
For the non-FlexNVM device, this field is unused
uint32_t flash_config_t::DFlashTotalSize |
For the non-FlexNVM device, this field is unused
uint32_t flash_config_t::EEpromTotalSize |
For the non-FlexNVM device, this field is unused
#define MAKE_VERSION | ( | major, | |
minor, | |||
bugfix | |||
) | (((major) << 16) | ((minor) << 8) | (bugfix)) |
#define FSL_FLASH_DRIVER_VERSION (MAKE_VERSION(2, 3, 1)) |
Version 2.3.1.
#define FLASH_SSD_CONFIG_ENABLE_FLEXNVM_SUPPORT 1 |
Enables the FlexNVM support by default.
#define FLASH_SSD_CONFIG_ENABLE_SECONDARY_FLASH_SUPPORT 1 |
Enables the secondary flash support by default.
#define FLASH_DRIVER_IS_FLASH_RESIDENT 1 |
Used for the flash resident application.
#define FLASH_DRIVER_IS_EXPORTED 0 |
Used for the KSDK application.
#define kStatusGroupGeneric 0 |
#define MAKE_STATUS | ( | group, | |
code | |||
) | ((((group)*100) + (code))) |
#define FOUR_CHAR_CODE | ( | a, | |
b, | |||
c, | |||
d | |||
) | (((d) << 24) | ((c) << 16) | ((b) << 8) | ((a))) |
enum _flash_status |
enum flash_margin_value_t |
enum flash_property_tag_t |
enum flash_swap_state_t |
enum flash_memory_index_t |
status_t FLASH_Init | ( | flash_config_t * | config | ) |
This function checks and initializes the Flash module for the other Flash APIs.
config | Pointer to the storage for the driver runtime state. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_PartitionStatusUpdateFailure | Failed to update the partition status. |
status_t FLASH_SetCallback | ( | flash_config_t * | config, |
flash_callback_t | callback | ||
) |
config | Pointer to the storage for the driver runtime state. |
callback | A callback function to be stored in the driver. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
status_t FLASH_PrepareExecuteInRamFunctions | ( | flash_config_t * | config | ) |
config | Pointer to the storage for the driver runtime state. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
status_t FLASH_EraseAll | ( | flash_config_t * | config, |
uint32_t | key | ||
) |
config | Pointer to the storage for the driver runtime state. |
key | A value used to validate all flash erase APIs. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_EraseKeyError | API erase key is invalid. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during command execution. |
kStatus_FLASH_PartitionStatusUpdateFailure | Failed to update the partition status. |
status_t FLASH_Erase | ( | flash_config_t * | config, |
uint32_t | start, | ||
uint32_t | lengthInBytes, | ||
uint32_t | key | ||
) |
This function erases the appropriate number of flash sectors based on the desired start address and length.
config | The pointer to the storage for the driver runtime state. |
start | The start address of the desired flash memory to be erased. The start address does not need to be sector-aligned but must be word-aligned. |
lengthInBytes | The length, given in bytes (not words or long-words) to be erased. Must be word-aligned. |
key | The value used to validate all flash erase APIs. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_AlignmentError | The parameter is not aligned with the specified baseline. |
kStatus_FLASH_AddressError | The address is out of range. |
kStatus_FLASH_EraseKeyError | The API erase key is invalid. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_EraseAllExecuteOnlySegments | ( | flash_config_t * | config, |
uint32_t | key | ||
) |
config | Pointer to the storage for the driver runtime state. |
key | A value used to validate all flash erase APIs. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_EraseKeyError | API erase key is invalid. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during command execution. |
kStatus_FLASH_PartitionStatusUpdateFailure | Failed to update the partition status. |
Erases all program flash execute-only segments defined by the FXACC registers.
config | Pointer to the storage for the driver runtime state. |
key | A value used to validate all flash erase APIs. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_EraseKeyError | API erase key is invalid. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_Program | ( | flash_config_t * | config, |
uint32_t | start, | ||
uint32_t * | src, | ||
uint32_t | lengthInBytes | ||
) |
This function programs the flash memory with the desired data for a given flash area as determined by the start address and the length.
config | A pointer to the storage for the driver runtime state. |
start | The start address of the desired flash memory to be programmed. Must be word-aligned. |
src | A pointer to the source buffer of data that is to be programmed into the flash. |
lengthInBytes | The length, given in bytes (not words or long-words), to be programmed. Must be word-aligned. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_AlignmentError | Parameter is not aligned with the specified baseline. |
kStatus_FLASH_AddressError | Address is out of range. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_ProgramOnce | ( | flash_config_t * | config, |
uint32_t | index, | ||
uint32_t * | src, | ||
uint32_t | lengthInBytes | ||
) |
This function programs the Program Once Field with the desired data for a given flash area as determined by the index and length.
config | A pointer to the storage for the driver runtime state. |
index | The index indicating which area of the Program Once Field to be programmed. |
src | A pointer to the source buffer of data that is to be programmed into the Program Once Field. |
lengthInBytes | The length, given in bytes (not words or long-words), to be programmed. Must be word-aligned. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_ReadResource | ( | flash_config_t * | config, |
uint32_t | start, | ||
uint32_t * | dst, | ||
uint32_t | lengthInBytes, | ||
flash_read_resource_option_t | option | ||
) |
This function reads the flash memory with the desired location for a given flash area as determined by the start address and length.
config | A pointer to the storage for the driver runtime state. |
start | The start address of the desired flash memory to be programmed. Must be word-aligned. |
dst | A pointer to the destination buffer of data that is used to store data to be read. |
lengthInBytes | The length, given in bytes (not words or long-words), to be read. Must be word-aligned. |
option | The resource option which indicates which area should be read back. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_AlignmentError | Parameter is not aligned with the specified baseline. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_ReadOnce | ( | flash_config_t * | config, |
uint32_t | index, | ||
uint32_t * | dst, | ||
uint32_t | lengthInBytes | ||
) |
This function reads the read once feild with given index and length.
config | A pointer to the storage for the driver runtime state. |
index | The index indicating the area of program once field to be read. |
dst | A pointer to the destination buffer of data that is used to store data to be read. |
lengthInBytes | The length, given in bytes (not words or long-words), to be programmed. Must be word-aligned. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_GetSecurityState | ( | flash_config_t * | config, |
flash_security_state_t * | state | ||
) |
This function retrieves the current flash security status, including the security enabling state and the backdoor key enabling state.
config | A pointer to storage for the driver runtime state. |
state | A pointer to the value returned for the current security status code: |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
status_t FLASH_SecurityBypass | ( | flash_config_t * | config, |
const uint8_t * | backdoorKey | ||
) |
If the MCU is in secured state, this function unsecures the MCU by comparing the provided backdoor key with ones in the flash configuration field.
config | A pointer to the storage for the driver runtime state. |
backdoorKey | A pointer to the user buffer containing the backdoor key. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_VerifyEraseAll | ( | flash_config_t * | config, |
flash_margin_value_t | margin | ||
) |
This function checks whether the flash is erased to the specified read margin level.
config | A pointer to the storage for the driver runtime state. |
margin | Read margin choice. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_VerifyErase | ( | flash_config_t * | config, |
uint32_t | start, | ||
uint32_t | lengthInBytes, | ||
flash_margin_value_t | margin | ||
) |
This function checks the appropriate number of flash sectors based on the desired start address and length to check whether the flash is erased to the specified read margin level.
config | A pointer to the storage for the driver runtime state. |
start | The start address of the desired flash memory to be verified. The start address does not need to be sector-aligned but must be word-aligned. |
lengthInBytes | The length, given in bytes (not words or long-words), to be verified. Must be word-aligned. |
margin | Read margin choice. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_AlignmentError | Parameter is not aligned with specified baseline. |
kStatus_FLASH_AddressError | Address is out of range. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_VerifyProgram | ( | flash_config_t * | config, |
uint32_t | start, | ||
uint32_t | lengthInBytes, | ||
const uint32_t * | expectedData, | ||
flash_margin_value_t | margin, | ||
uint32_t * | failedAddress, | ||
uint32_t * | failedData | ||
) |
This function verifies the data programed in the flash memory using the Flash Program Check Command and compares it to the expected data for a given flash area as determined by the start address and length.
config | A pointer to the storage for the driver runtime state. |
start | The start address of the desired flash memory to be verified. Must be word-aligned. |
lengthInBytes | The length, given in bytes (not words or long-words), to be verified. Must be word-aligned. |
expectedData | A pointer to the expected data that is to be verified against. |
margin | Read margin choice. |
failedAddress | A pointer to the returned failing address. |
failedData | A pointer to the returned failing data. Some derivatives do not include failed data as part of the FCCOBx registers. In this case, zeros are returned upon failure. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_AlignmentError | Parameter is not aligned with specified baseline. |
kStatus_FLASH_AddressError | Address is out of range. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_VerifyEraseAllExecuteOnlySegments | ( | flash_config_t * | config, |
flash_margin_value_t | margin | ||
) |
config | A pointer to the storage for the driver runtime state. |
margin | Read margin choice. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_ExecuteInRamFunctionNotReady | Execute-in-RAM function is not available. |
kStatus_FLASH_AccessError | Invalid instruction codes and out-of bounds addresses. |
kStatus_FLASH_ProtectionViolation | The program/erase operation is requested to execute on protected areas. |
kStatus_FLASH_CommandFailure | Run-time error during the command execution. |
status_t FLASH_IsProtected | ( | flash_config_t * | config, |
uint32_t | start, | ||
uint32_t | lengthInBytes, | ||
flash_protection_state_t * | protection_state | ||
) |
This function retrieves the current flash protect status for a given flash area as determined by the start address and length.
config | A pointer to the storage for the driver runtime state. |
start | The start address of the desired flash memory to be checked. Must be word-aligned. |
lengthInBytes | The length, given in bytes (not words or long-words) to be checked. Must be word-aligned. |
protection_state | A pointer to the value returned for the current protection status code for the desired flash area. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_AlignmentError | Parameter is not aligned with specified baseline. |
kStatus_FLASH_AddressError | The address is out of range. |
status_t FLASH_IsExecuteOnly | ( | flash_config_t * | config, |
uint32_t | start, | ||
uint32_t | lengthInBytes, | ||
flash_execute_only_access_state_t * | access_state | ||
) |
This function retrieves the current flash access status for a given flash area as determined by the start address and length.
config | A pointer to the storage for the driver runtime state. |
start | The start address of the desired flash memory to be checked. Must be word-aligned. |
lengthInBytes | The length, given in bytes (not words or long-words), to be checked. Must be word-aligned. |
access_state | A pointer to the value returned for the current access status code for the desired flash area. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_AlignmentError | The parameter is not aligned to the specified baseline. |
kStatus_FLASH_AddressError | The address is out of range. |
status_t FLASH_GetProperty | ( | flash_config_t * | config, |
flash_property_tag_t | whichProperty, | ||
uint32_t * | value | ||
) |
config | A pointer to the storage for the driver runtime state. |
whichProperty | The desired property from the list of properties in enum flash_property_tag_t |
value | A pointer to the value returned for the desired flash property. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_UnknownProperty | An unknown property tag. |
status_t FLASH_SetProperty | ( | flash_config_t * | config, |
flash_property_tag_t | whichProperty, | ||
uint32_t | value | ||
) |
config | A pointer to the storage for the driver runtime state. |
whichProperty | The desired property from the list of properties in enum flash_property_tag_t |
value | A to set for the desired flash property. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_UnknownProperty | An unknown property tag. |
kStatus_FLASH_InvalidPropertyValue | An invalid property value. |
kStatus_FLASH_ReadOnlyProperty | An read-only property tag. |
status_t FLASH_PflashSetProtection | ( | flash_config_t * | config, |
pflash_protection_status_t * | protectStatus | ||
) |
config | A pointer to storage for the driver runtime state. |
protectStatus | The expected protect status to set to the PFlash protection register. Each bit is corresponding to protection of 1/32(64) of the total PFlash. The least significant bit is corresponding to the lowest address area of PFlash. The most significant bit is corresponding to the highest address area of PFlash. There are two possible cases as shown below: 0: this area is protected. 1: this area is unprotected. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |
kStatus_FLASH_CommandFailure | Run-time error during command execution. |
status_t FLASH_PflashGetProtection | ( | flash_config_t * | config, |
pflash_protection_status_t * | protectStatus | ||
) |
config | A pointer to the storage for the driver runtime state. |
protectStatus | Protect status returned by the PFlash IP. Each bit is corresponding to the protection of 1/32(64) of the total PFlash. The least significant bit corresponds to the lowest address area of the PFlash. The most significant bit corresponds to the highest address area of PFlash. There are two possible cases as shown below: 0: this area is protected. 1: this area is unprotected. |
kStatus_FLASH_Success | API was executed successfully. |
kStatus_FLASH_InvalidArgument | An invalid argument is provided. |