Module which provides low level functionality to store data to flash.
More...
|
typedef uint16_t | fs_length_t |
|
typedef void(* | fs_cb_t )(uint8_t op_code, uint32_t result, uint32_t const *p_data, fs_length_t length_words) |
| Callback for flash operations. More...
|
|
|
enum | fs_oper_t {
FS_OP_NONE = 0,
FS_OP_STORE = 1,
FS_OP_ERASE = 2
} |
|
Module which provides low level functionality to store data to flash.
Macro for registering of flash storage configuration variable.
This macro is expected to be invoked in the code unit that that require flash storage. Invoking this places the registered configuration variable in a section named "fs_data" that the fstorage module uses during initialization and regular operation.
typedef void(* fs_cb_t)(uint8_t op_code, uint32_t result, uint32_t const *p_data, fs_length_t length_words) |
Callback for flash operations.
- Parameters
-
[in] | op_code | Flash access operation code. |
[in] | result | Result of the operation. |
[in] | data | Pointer to resulting data (or NULL if not in use). |
[in] | length_words | Length of data in words. |
static void fs_callback |
( |
uint8_t |
op_code, |
|
|
uint32_t |
result, |
|
|
uint32_t const * |
p_data, |
|
|
fs_length_t |
length_words |
|
) |
| |
|
static |
Function prototype for a callback handler.
This function is expected to be implemented by the module that registers for fstorage usage. Its usage is described in the function pointer type fs_cb_t.
- Parameters
-
[in] | op_code | Flash operation code. |
[in] | result | Result of the flash operation. |
[in] | p_data | Pointer to the resulting data (or NULL if not in use). |
[in] | length_words | Length of data in words. |
Function to erase a page in flash.
- Note
- The erase address must be aligned on a page boundary. The length in words must be equivalent to the page size.
- Parameters
-
[in] | p_config | Pointer to the configuration of the user that requests the operation. |
[in] | p_addr | Address of page to erase (the same as first word in the page). |
[in] | length_words | Length (in 4 byte words) of the area to erase. |
- Return values
-
NRF_SUCCESS | Success. Command queued. |
NRF_ERROR_INVALID_STATE | Error. The module is not initialized. |
NRF_ERROR_INVALID_ADDR | Error. Data is unaligned or invalid configuration. |
Any | error returned by the SoftDevice flash API. |
Function to initialize FStorage.
This function allocates flash data pages according to the number requested in the config variable. The data used to initialize. the fstorage is section placed variables in the data section "fs_data".
ret_code_t fs_store |
( |
fs_config_t const * |
p_config, |
|
|
uint32_t const * |
p_addr, |
|
|
uint32_t const *const |
p_data, |
|
|
fs_length_t |
length_words |
|
) |
| |
Function to store data in flash.
- Warning
- The data to be written to flash has to be kept in memory until the operation has terminated, i.e., a callback is received.
- Parameters
-
[in] | p_config | Const pointer to configiguration of module user that requests a store operation. |
[in] | p_addr | Write address of store operation. |
[in] | p_data | Pointer to the data to store. |
[in] | length_words | Length of the data to store. |
- Return values
-
NRF_SUCCESS | Success. Command queued. |
NRF_ERROR_INVALID_STATE | Error. The module is not initialized. |
NRF_ERROR_INVALID_ADDR | Error. Data is unaligned or invalid configuration. |
Any | error returned by the SoftDevice flash API. |
void fs_sys_event_handler |
( |
uint32_t |
sys_evt | ) |
|
Function to call to handle events from the SoftDevice.
- Parameters
-
sys_evt | System event from the SoftDevice |