nvm.h File Reference

Non-Volatile Memory Manager. More...

#include <stdint.h>
#include <stdbool.h>
#include "em_device.h"
Include dependency graph for nvm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  NVM_Object_Descriptor_t
 Describes the properties of an object in a page. More...
struct  NVM_Page_Descriptor_t
 Describes the properties of a page. More...
struct  NVM_Config_t
 Configuration structure. More...

Typedefs

typedef NVM_Object_Descriptor_t NVM_Page_t []
 A collection of object descriptors that make up a page.
typedef NVM_Page_Descriptor_t NVM_Page_Table_t []
 The list of pages registered for use.

Enumerations

enum  NVM_Page_Type_t {
  nvmPageTypeNormal = 0,
  nvmPageTypeWear = 1
}
 

Enum describing the type of logical page we have; normal or wear.

More...
enum  NVM_Result_t {
  nvmResultOk = 0,
  nvmResultAddrInvalid = 1,
  nvmResultInputInvalid = 2,
  nvmResultDataInvalid = 3,
  nvmResultWriteLock = 4,
  nvmResultNoPages = 5,
  nvmResultNoPage = 6,
  nvmResultErrorInitial = 7,
  nvmResultError = 8
}
 

Result type for all the API functions.

More...

Functions

NVM_Result_t NVM_Init (NVM_Config_t const *config)
 Initialize the NVM manager.
NVM_Result_t NVM_Erase (uint32_t erasureCount)
 Erase the entire NVM.
NVM_Result_t NVM_Write (uint16_t pageId, uint8_t objectId)
 Write an object or a page.
NVM_Result_t NVM_Read (uint16_t pageId, uint8_t objectId)
 Read an object or an entire page.
uint32_t NVM_WearLevelGet (void)
 Get maximum wear level.

Detailed Description

Non-Volatile Memory Manager.

Author:
Energy Micro AS
Version:
3.20.2

This is a software manager module for non-volatile memory. It consists of nvm.c, nvm.h and nvm_hal.h. In addition to this it requires a valid nvm_hal.c. This lets the manager work with different types of memory. Files nvm_config_template.* shows possible configuration of objects and could be used as template for customer application.

The module has the following public interfaces:

NVM_Init() NVM_Erase() NVM_Write() NVM_Read() NVM_WearLevel()

Users have to be aware of the following limitations of the module:

License

(C) Copyright 2013 Energy Micro AS, http://www.energymicro.com

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. 4. The source and compiled code may only be used on Energy Micro "EFM32" microcontrollers and "EFR4" radios.

DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Energy Micro AS has no obligation to support this Software. Energy Micro AS is providing the Software "AS IS", with no express or implied warranties of any kind, including, but not limited to, any implied warranties of merchantability or fitness for any particular purpose or warranties against infringement of any proprietary rights of a third party.

Energy Micro AS will not be liable for any consequential, incidental, or special damages, or any other relief, or for any claim by any third party, arising from your use of this Software.

Definition in file nvm.h.