nRF5 SDK v13.0.0
Typedefs | Functions
Flash operations

Typedefs

typedef fs_cb_t dfu_flash_callback_t
 fstorage event handler function for DFU fstorage operations. More...
 

Functions

uint32_t nrf_dfu_flash_init (bool sd_enabled)
 Function for initializing the flash module. More...
 
fs_ret_t nrf_dfu_flash_store (uint32_t const *p_dest, uint32_t const *const p_src, uint32_t len_words, dfu_flash_callback_t callback)
 Function for storing data to flash (with or without the SoftDevice enabled). More...
 
fs_ret_t nrf_dfu_flash_erase (uint32_t const *p_dest, uint32_t num_pages, dfu_flash_callback_t callback)
 Function for erasing data from flash (with or without the SoftDevice enabled). More...
 
void nrf_dfu_flash_error_clear (void)
 Function for clearing an error that has occurred during fstorage operations.
 
fs_ret_t nrf_dfu_flash_wait (void)
 Function for waiting for an event from fstorage. More...
 

Detailed Description

Typedef Documentation

fstorage event handler function for DFU fstorage operations.

This function is intended to be registered to the fstorage module as the event handler for all DFU flash operations. When each flash operation has completed or failed this function will be called.

See fs_cb_t for implementation details.

Function Documentation

fs_ret_t nrf_dfu_flash_erase ( uint32_t const *  p_dest,
uint32_t  num_pages,
dfu_flash_callback_t  callback 
)

Function for erasing data from flash (with or without the SoftDevice enabled).

Parameters
[in]p_destThe address of the first byte to be deleted.
[in]num_pagesThe number of flash pages to be deleted.
[in]callbackPointer to the callback function.
Return values
FS_SUCCESSIf the operation was successful.
FS_ERR_UNALIGNED_ADDRIf p_dest is not aligned to a page boundary.
FS_ERR_INVALID_ADDRIf p_dest does not point to the start of a flash page or the operation would go beyond the flash memory boundary.
FS_ERR_NOT_INITIALIZEDIf the fstorage module is not initialized.
FS_ERR_INVALID_CFGIf the initialization of the fstorage module is invalid.
FS_ERR_NULL_ARGIf p_dest is NULL.
FS_ERR_INVALID_ARGIf num_pages is zero.
FS_ERR_QUEUE_FULLIf the internal operation queue of the fstorage module is full.
uint32_t nrf_dfu_flash_init ( bool  sd_enabled)

Function for initializing the flash module.

You can use this module with or without a SoftDevice:

  • If the module is initialized with the SoftDevice enabled flag set, the fstorage module is used as back end for all flash operations. Flash storage calls are asynchronous; the SoftDevice manages when the actual operation in flash is done.
  • If the module is initialized with the SoftDevice enabled flag not set, the non-volatile memory controller (NVMC) driver handles the flash operations by directly accessing flash. These operations are synchronous.
Parameters
[in]sd_enabledSet the flash handling to run with or without the SoftDevice enabled.
Return values
NRF_SUCCESSIf the operation was successful.
NRF_ERROR_INVALID_STATEIf the fstorage module could not be initiated or the SoftDevice could not set the event handler.
fs_ret_t nrf_dfu_flash_store ( uint32_t const *  p_dest,
uint32_t const *const  p_src,
uint32_t  len_words,
dfu_flash_callback_t  callback 
)

Function for storing data to flash (with or without the SoftDevice enabled).

Warning
The content to be stored must be kept at p_src until the operation is complete. Without SoftDevice, the operation is complete when the function returns. With SoftDevice, the operation is complete when the fstorage event is received.
Parameters
[in]p_destPointer to the address where the data should be stored.
[in]p_srcPointer to the address where the data should be copied from. This address can be in flash or RAM.
[in]len_wordsThe number of words to be copied from p_src to p_dest.
[in]callbackPointer to the callback function.
Return values
FS_SUCCESSIf the operation was successful.
FS_ERR_FAILURE_SINCE_LASTIf an error occurred in another transaction and fstorage cannot continue before the event has been dealt with.
FS_ERR_UNALIGNED_ADDRIf p_src or p_dest is not word-aligned. Ensure that the address pointed to is divisible by four.
FS_ERR_INVALID_ARGIf len_words is zero. It is not possible to write zero words.
FS_ERR_NULL_ARGIf p_src or p_dest is NULL.
FS_ERR_NOT_INITIALIZEDIf the fstorage module is not initialized.
FS_ERR_INVALID_CFGIf the initialization of the fstorage module is invalid.
FS_ERR_QUEUE_FULLIf the internal operation queue of the fstorage module is full.
fs_ret_t nrf_dfu_flash_wait ( void  )

Function for waiting for an event from fstorage.

This function halts execution until an event is received from the SoftDevice. You can use this function to halt execution until a flash operation has completed, to prevent tampering with the source data until fstorage is done with it.

Return values
FS_SUCCESSIf the operation was successful.
FS_ERR_FAILURE_SINCE_LASTIf an error has occurred in another transaction and fstorage cannot continue before the event has been dealt with.

Documentation feedback | Developer Zone | Subscribe | Updated