nvm.h File Reference

Non-Volatile Memory Wear-Leveling driver API.

Version
5.5.0

License

(C) Copyright 2014 Silicon Labs, 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.h .

#include <stdint.h>
#include <stdbool.h>
#include " em_device.h "
#include " nvm_hal.h "
#include "nvm_config.h"
#include " ecode.h "

Macros

#define ECODE_EMDRV_NVM_ADDR_INVALID ( ECODE_EMDRV_NVM_BASE | 0x00000001)
Invalid address.
#define ECODE_EMDRV_NVM_ALIGNMENT_INVALID ( ECODE_EMDRV_NVM_BASE | 0x00000002)
Invalid data alignment.
#define ECODE_EMDRV_NVM_DATA_INVALID ( ECODE_EMDRV_NVM_BASE | 0x00000003)
Invalid input data or format.
#define ECODE_EMDRV_NVM_ERROR ( ECODE_EMDRV_NVM_BASE | 0x00000007)
General error.
#define ECODE_EMDRV_NVM_NO_PAGES_AVAILABLE ( ECODE_EMDRV_NVM_BASE | 0x00000005)
Initialization didn't find any pages available to allocate.
#define ECODE_EMDRV_NVM_OK ( ECODE_OK )
Success return value.
#define ECODE_EMDRV_NVM_PAGE_INVALID ( ECODE_EMDRV_NVM_BASE | 0x00000006)
Could not find the page specified.
#define ECODE_EMDRV_NVM_WRITE_LOCK ( ECODE_EMDRV_NVM_BASE | 0x00000004)
A write is currently in progress.
#define NVM_ERASE_RETAINCOUNT 0xffffffffUL
#define NVM_PAGE_TERMINATION { NULL, 0, (NVM_Object_Ids) 0 }
#define NVM_READ_ALL_CMD 0xff
#define NVM_WRITE_ALL_CMD 0xff
#define NVM_WRITE_NONE_CMD 0xfe

Functions

Ecode_t NVM_Erase (uint32_t eraseCount)
Erase the entire allocated NVM area.
Ecode_t NVM_Init (NVM_Config_t const *nvmConfig)
Initialize the NVM manager.
Ecode_t NVM_Read (uint16_t pageId, uint8_t objectId)
Read an object or an entire page.
Ecode_t NVM_Write (uint16_t pageId, uint8_t objectId)
Write an object or a page.