EZR32 Leopard Gecko Software Documentation
ezr32lg-doc-4.2.1
|
Non-Volatile Memory Wear-Leveling driver HAL implementation. More...
Go to the source code of this file.
Functions | |
void | NVMHAL_Init (void) |
Initialize NVM driver. More... | |
void | NVMHAL_DeInit (void) |
De-initialize NVM . More... | |
void | NVMHAL_Read (uint8_t *pAddress, void *pObject, uint16_t len) |
Read data from NVM. More... | |
Ecode_t | NVMHAL_Write (uint8_t *pAddress, void const *pObject, uint16_t len) |
Write data to NVM. More... | |
Ecode_t | NVMHAL_PageErase (uint8_t *pAddress) |
Erase a page in the NVM. More... | |
void | NVMHAL_Checksum (uint16_t *pChecksum, void *pMemory, uint16_t len) |
Calculate checksum according to CCITT CRC16. More... | |
(C) Copyright 2015 Silicon Labs, http://www.silabs.com
This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.
Definition in file nvm_hal.c.
void NVMHAL_Init | ( | void | ) |
This function is run upon initialization, at least once before any other functions. It can be used to call necessary startup routines before the hardware can be accessed.
Definition at line 111 of file nvm_hal.c.
References MSC_Init().
Referenced by NVM_Init().
void NVMHAL_DeInit | ( | void | ) |
This function is run when the API deinit function is run. This should be done before any graceful halts.
Definition at line 125 of file nvm_hal.c.
References MSC_Deinit().
void NVMHAL_Read | ( | uint8_t * | pAddress, |
void * | pObject, | ||
uint16_t | len | ||
) |
This function is used to read data from the NVM hardware. It should be a blocking call, since the thread asking for data to be read cannot continue without the data.
Another requirement is the ability to read unaligned blocks of data with single byte precision.
[in] | *pAddress | Memory address in hardware for the data to read. |
[in] | *pObject | RAM buffer to store the data from NVM. |
[in] | len | The length of the data. |
Definition at line 152 of file nvm_hal.c.
Referenced by NVM_Erase(), NVM_Init(), NVM_Read(), and NVM_Write().
Ecode_t NVMHAL_Write | ( | uint8_t * | pAddress, |
void const * | pObject, | ||
uint16_t | len | ||
) |
This function is used to write data to the NVM. This is a blocking function.
[in] | *pAddress | NVM address to write to. |
[in] | *pObject | Pointer to source data. |
[in] | len | The length of the data in bytes. |
Definition at line 191 of file nvm_hal.c.
References MSC_WriteWord(), and mscReturnOk.
Referenced by NVM_Erase(), and NVM_Write().
Ecode_t NVMHAL_PageErase | ( | uint8_t * | pAddress | ) |
This function calls MSC_ErasePage and converts the return status.
[in] | *pAddress | Memory address pointing to the start of the page to erase. |
Definition at line 278 of file nvm_hal.c.
References MSC_ErasePage().
Referenced by NVM_Erase().
void NVMHAL_Checksum | ( | uint16_t * | pChecksum, |
void * | pMemory, | ||
uint16_t | len | ||
) |
This function calculates a checksum of the supplied buffer. The checksum is calculated using CCITT CRC16 plynomial x^16+x^12+x^5+1.
This functionality is also present internally in the API, but is duplicated here to allow for much more efficient calculations specific to the hardware.
[in] | pChecksum | Pointer to where the checksum should be calculated and stored. This buffer should be initialized. A good consistent starting point would be NVM_CHECKSUM_INITIAL. |
[in] | pMemory | Pointer to the data you want to calculate a checksum for. |
[in] | len | The length of the data. |