NVM3 HAL#
NVM3 Hardware Abstraction Layer.
This module provides the interface to the NVM. By having all NVM access functions in a separate file, it is possible to support different hardware by substituting the functions in this module.
Note
These functions are used by the NVM3 and should not be used by any applications.
This module provides the NVM3 interface to the EFM and EFR Flash NVM.
Note
The features available through the handle are used by the NVM3 and should not be used directly by any applications.
Modules#
Typedefs#
TYPEDEFS **********************************.
Definition of the access data type.
PROTOTYPES **********************************.
Close the NVM3 HAL for usage.
Retrieve device information.
Control read and write access to the NVM.
Erase a page in the NVM.
Read data from NVM.
Write data to the NVM.
Variables#
GLOBAL VARIABLES ******************************.
Macros#
MACROS **********************************.
Two writes are allowed.
No access.
Read access.
Read and write access.
Ignore.
Typedef Documentation#
nvm3_HalPtr_t#
typedef void* nvm3_HalPtr_t
TYPEDEFS **********************************.
Pointer to NVM
nvm3_HalOpen_t#
typedef Ecode_t(* nvm3_HalOpen_t) (nvm3_HalPtr_t nvmAdr, size_t nvmSize) )(nvm3_HalPtr_t nvmAdr, size_t nvmSize)
PROTOTYPES **********************************.
Type | Direction | Argument Name | Description |
---|---|---|---|
[in] | nvmAdr | A pointer to the destination in NVM. | |
[in] | nvmSize | The total size of the NVM. |
Open the NVM3 HAL for usage.
This function must be run at initialization, before any other functions are called. It is used to call necessary startup routines before the hardware can be accessed.
Returns
The result of the open call. ECODE_NVM3_OK on success or a NVM3 Ecode_t on failure.
nvm3_HalClose_t#
typedef void(* nvm3_HalClose_t) (void) )(void)
Close the NVM3 HAL for usage.
This function should be called at program termination. Should be done before any graceful halts.
nvm3_HalGetInfo_t#
typedef Ecode_t(* nvm3_HalGetInfo_t) (nvm3_HalInfo_t *info) )(nvm3_HalInfo_t *info)
Retrieve device information.
Type | Direction | Argument Name | Description |
---|---|---|---|
[in] | info | A pointer to a structure that will receive the device information. |
This function is used to retrieve information about the device properties, such as the device family, write size, whether the NVM is memory mapped or not, and finally the NVM page size.
nvm3_HalNvmAccess_t#
typedef void(* nvm3_HalNvmAccess_t) (nvm3_HalNvmAccessCode_t access) )(nvm3_HalNvmAccessCode_t access)
Control read and write access to the NVM.
Type | Direction | Argument Name | Description |
---|---|---|---|
[in] | access | The requested access. |
This function is used to control the access to the NVM. It can be either read, write, or none.
nvm3_HalPageErase_t#
typedef Ecode_t(* nvm3_HalPageErase_t) (nvm3_HalPtr_t nvmAdr) )(nvm3_HalPtr_t nvmAdr)
Erase a page in the NVM.
Type | Direction | Argument Name | Description |
---|---|---|---|
[in] | nvmAdr | A memory address pointing to the start of the page to erase. |
This function is used to erase an NVM page.
Returns
The result of the erase operation.
nvm3_HalReadWords_t#
typedef Ecode_t(* nvm3_HalReadWords_t) (nvm3_HalPtr_t nvmAdr, void *dst, size_t wordCnt) )(nvm3_HalPtr_t nvmAdr, void *dst, size_t wordCnt)
Read data from NVM.
Type | Direction | Argument Name | Description |
---|---|---|---|
[in] | nvmAdr | A memory address in NVM where data will be read. | |
[in] | *dst | A pointer to the destination buffer. | |
[in] | wordCnt | The number of words to read. |
This function is used to read data from the NVM. It will be a blocking call, since the thread asking for data to be read cannot continue without the data.
nvm3_HalWriteWords_t#
typedef Ecode_t(* nvm3_HalWriteWords_t) (nvm3_HalPtr_t nvmAdr, void const *pSrc, size_t cnt) )(nvm3_HalPtr_t nvmAdr, void const *pSrc, size_t cnt)
Write data to the NVM.
Type | Direction | Argument Name | Description |
---|---|---|---|
[in] | nvmAdr | A memory address in NVM where data will be written. | |
[in] | *pSrc | A pointer to the source data. | |
[in] | cnt | The number of words to write. |
This function is used to write data to the NVM. This is a blocking function.
Returns
The result of the write operation. ECODE_NVM3_OK on success or a NVM3 Ecode_t on failure.
Variable Documentation#
nvm3_halFlashHandle#
const nvm3_HalHandle_t nvm3_halFlashHandle
GLOBAL VARIABLES ******************************.
The HAL flash handle.