nvm_hal.h File Reference

Non-Volatile Memory HAL. More...

#include <stdbool.h>
#include "nvm.h"
#include "ecode.h"
#include "em_device.h"
#include "em_msc.h"
#include "em_dma.h"
#include "em_cmu.h"
#include "em_emu.h"
#include "em_int.h"
Include dependency graph for nvm_hal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

false void NVMHAL_Init (void)
 Use energy saving version of format function.
void NVMHAL_DeInit (void)
 De-initialize NVM .
void NVMHAL_Read (uint8_t *pAddress, void *pObject, uint16_t len)
 Read data from NVM.
Ecode_t NVMHAL_Write (uint8_t *pAddress, void const *pObject, uint16_t len)
 Write data to NVM.
Ecode_t NVMHAL_PageErase (uint8_t *pAddress)
 Erase a page in the NVM.
void NVMHAL_Checksum (uint16_t *checksum, void *pMemory, uint16_t len)
 Calculate checksum according to CCITT CRC16.

Detailed Description

Non-Volatile Memory HAL.

Version:
3.20.5

License

(C) Copyright 2014 Silicon Labs, http://www.silabs.com

This file is licensensed 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.h.


Function Documentation

void NVMHAL_Checksum ( uint16_t *  pChecksum,
void *  pMemory,
uint16_t  len 
)

Calculate checksum according to CCITT CRC16.

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.

Parameters:
[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.

Definition at line 688 of file nvm_hal.c.

void NVMHAL_DeInit ( void   ) 

De-initialize NVM .

This function is run when the API deinit function is run. This should be done before any graceful halts.

Definition at line 438 of file nvm_hal.c.

false void NVMHAL_Init ( void   ) 

Use energy saving version of format function.

Use energy saving version of write function DMA read uses the DMA to read data from flash. This also works, but takes a bit more time than the usual reading operations, while not providing a high amount of power saving since read operations are normally very fast.

Use energy saving version of format function.

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 414 of file nvm_hal.c.

Referenced by NVM_Init().

Here is the caller graph for this function:

Ecode_t NVMHAL_PageErase ( uint8_t *  pAddress  ) 

Erase a page in the NVM.

This function is used to erase a page in the NVM (typically an aligned 512 byte block of memory). It is important that the size and alignment of the page erased is the same as specified in the configuration.

Parameters:
[in] *pAddress Memory address pointing to the start of the page to erase.
Returns:
Returns the result of the erase operation using a Ecode_t.

Definition at line 651 of file nvm_hal.c.

References NVMHAL_ReturnTypeConvert().

Referenced by NVM_Erase().

Here is the call graph for this function:

Here is the caller graph for this function:

void NVMHAL_Read ( uint8_t *  pAddress,
void *  pObject,
uint16_t  len 
)

Read data from NVM.

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.

Parameters:
[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 464 of file nvm_hal.c.

Referenced by NVM_Erase(), NVM_Init(), NVM_Read(), NVM_WearLevelGet(), and NVM_Write().

Here is the caller graph for this function:

Ecode_t NVMHAL_Write ( uint8_t *  pAddress,
void const *  pObject,
uint16_t  len 
)

Write data to NVM.

This function is used to write data from the NVM. It should be a blocking call. This may be changed in the future, but this is currently a requirement made due to the design of the API code.

Another requirement is the ability to write unaligned blocks of data with single byte precision.

Parameters:
[in] *pAddress Memory address to write to.
[in] *pObject Pointer to data to write.
[in] len The length of the data.
Returns:
Returns the result of the write operation using a Ecode_t.

Definition at line 555 of file nvm_hal.c.

References NVMHAL_ReturnTypeConvert().

Referenced by NVM_Erase(), and NVM_Write().

Here is the call graph for this function:

Here is the caller graph for this function: