请教TI工程师一个问题:
CC2640R2F,协议栈可以配置成为SNV预留最多两个4kBFlash page,为防止写SVN时异常,我们设计使用两个page存储相同的一组数据,查看bcomdef.h文件,有如下定义:
// Bonding NV Items - Range 0x20 - 0x5F - This allows for 10 bondings
#define BLE_NVID_GAP_BOND_START 0x20 //!< Start of the GAP Bond Manager's NV IDs
#define BLE_NVID_GAP_BOND_END 0x5f //!< End of the GAP Bond Manager's NV IDs Range
// GATT Configuration NV Items - Range 0x70 - 0x79 - This must match the number of Bonding entries
#define BLE_NVID_GATT_CFG_START 0x70 //!< Start of the GATT Configuration NV IDs
#define BLE_NVID_GATT_CFG_END 0x79 //!< End of the GATT Configuration NV IDs
// 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
其中0x80~0x8F提供了可写SVN编号,一共16个,每个SVN可写252有效字节,16*252才一个page大小,我们现在需要将这组参数写到第二page中,请问如何操作?
曾尝试将0x8F改为0x9F,通过osal_snv_write函数将编号为0x91的SVN区,读取flash时,发现第二个扇区全FF,证明未写进去。下面截取CC2640R2F存储架构中的,是否可理解为有效数据不足80%时,协议栈自动将有效数据压缩到一个区中?
