NVM3 key space regions#
MACRO's for NVM3 Default Instance Key Space Regions.
The NVM3 default instance is used for storing dynamic tokens.
NVM3 is used for Non-Volatile storage across all our device types (zigbee, Bluetooth, MCU...). Each object in the NVM3 is addressed by a 20-bit key. These keys need to be unique within an NVM3 instance to avoid collisions. Such collisions can for instance occur if a user application writes to an object that the RF stack is using for a different purpose. For multi-protocol applications we also risk collisions when where two stacks inadvertently use the same object key in a non compatible way. By default an NVM3 default instance will be shared among all stacks and application code. To avoid collisions it is proposed to use the 4 MSBs of the default instance NVM3 key to split the NVM3 ID space into the regions in the table below. Each stack team is responsible for managing the keys within their regions. A user should be able to use the keys in the User region as they wish. If any configurator tools use any keys in the User region these keys should be made clearly visible to the user so they can avoid using the same keys for NVM3 objects created manually in the application code. Refer application note 'AN1135: Using Third Generation Non-Volatile Memory (NVM3) Data Storage' for more details.
Note
NVM3 key region 0x8E000-0x8EFFF and 0x8F000-0x8FFFF are used for static tokens, which are stored as override tokens in NVM3. The key region 0xC0000 to 0xF0000 are reserved.