TI cc2541 cc2640 从flash里面画出来2个page 4k的空间snv区域,其中部分用于协议栈绑定管理功能,给用户留出来部分可用空间,一下以cc2640为例简单说明一下:
1、在bcomdef.h中有如下定义:
// Customer NV Items - Range 0x80 - 0x8F - This must match the number of Bonding entries
#define BLE_NVID_CUST_START 0x80 //!< Start of the Customer's NV IDs
#define BLE_NVID_CUST_END 0x8F //!< End of the Customer's NV IDs
默认分配给用户使用的NV_ID范围为0x80 - 0x8F,注意此处是NV_ID的范围,并不是只能保存16byte数据,每个NV_ID可以保存多个字节数据,只需要总数据不超过nv范围即可。
2、在ICallBleAPI.c中有读写api的定义:
/*********************************************************************
* Read data from NV.
*
* Public function defined in osal_snv.h.
*/
uint8 osal_snv_read(osalSnvId_t id, osalSnvLen_t len, void *pBuf)
/*********************************************************************
* Write a data item to NV.
*
* Public function defined in osal_snv.h.
*/
uint8 osal_snv_write(osalSnvId_t id, osalSnvLen_t len, void *pBuf)
此api为写nv数据接口