Overview#
The third generation Non-Volatile Memory (NVM3) data storage driver is for storing persistent data in flash.
NVM3 is designed to work on all Silicon Labs wireless stacks running on EFR32, Series-3, and Si91x devices, as well as MCU applications running on EFM32.
Some of the main features of NVM3 are:
Key/value pair data storage in flash
Runtime object creation and deletion
Persistence across power loss and reset events
Wear-leveling to maximize flash lifetime
Object sizes configurable up to 4096 bytes
Configurable flash storage size (minimum 3 flash pages)
Cache with configurable size for fast object access
Data and counter object types
Compatibility layers included for several Silicon Labs persistent storage APIs
Single shared storage instance in multiprotocol applications
Repack API to allow application to run clean-up page erases during periods with low CPU load
NVM3 is described in detail in the NVM3 Documentation on https://docs.silabs.com/. The rest of this document assumes you are familiar with that content.
While the NVM3 API can be used directly, NVM3 is also used as the underlying storage mechanism for several other persistent storage APIs provided by Silicon Labs:
Token API used in Zigbee EmberZNet and Connect applications
Persistent Storage API used in Silicon Labs Bluetooth applications