NVM stands for nonvolatile memory (such as flash, floppy diskette, etc.). NVM+ is a TMS module to support a functional API to access NVM.
NVM+ is tied to IDB+. we can use IDBGEN to add a initialize function to the IDB+ module to support NVM+;
NVM+ storage media includes a NVM+ header of nvmHdr_t type that summarizes the NVM+ information, and a body contains modules(e.g., IDB+ Module) of type nvmMod_t that controls data in the NVM+ database. Each module contains one or more NVM+ objects using the nvmTbl_t structure.
there are also other two strucutres, the nvmObj_t structure is used to point to the nvmTlv_t structure. nvmData_t is the Structure passed in the nvmInit() call.
NVM+ data layout in RAM is a list of modules.
The NVM+ API has many functions designed to allow the developer to add,update, and delete objects and modules from the NVM+ database.
nvmInit( ) – initializes the NVM+ database system/starts the tNvm task
nvmModuleCreate( ) – creates a new module entry with the specified name
nvmModuleIdGet( ) – gets an existing module entry with the specified name
nvmModuleRemove( ) – removes a specified module and all of its objects
nvmModuleRetrieve( ) – asks NVM+ to do idbNvmSet( ) for each module object
nvmObjectCreate( ) – creates an object (with integer indices)
nvmObjectMaskCreate( )/helper routines – creates an object (w/integer and/orstring indices)
nvmObjectUpdate( ) – updates an object value (with integer indices)
nvmObjectMaskUpdate( ) – updates an object value (with integer and/or stringindices)
nvmModuleUpdate( ) – performs idbGet( )/nvmObjectUpdate( ) for eachmodule object
nvmObjectGet( ) – retrieves an object value (with integer and/or string indices)
nvmObjectDelete( ) – removes an object (with integer and/or string indices)
nvmModuleIterate( ) – calls user function for all objects in the module
nvmObjectIterate( ) – calls user function for all objects in a module table column
nvmSave( ) – saves all persistent and durable objects to NVM storage media
nvmSaveInProgess( ) – tests if NVM+ save operation is in progress
nvmClear( ) – clears durable/persistent NVM objects and saves to NVM storage media
there also Error Wrapper routines for a no error condition, and Show Routines primarily used for debugging and diagnosis in the WindSH environment, and Miscellaneous utility Routines .