Part Number:CC2642ROther Parts Discussed in Thread:UNIFLASH
请教一下:
1、如果在.syscfg里配置NVS成1page或2page,那么,SNV_ID最后一个ID,对应flash的绝对位置是不是不一样?
2、如果前面那些ID没有使用,只使用最后一个ID,是不是数据也被存储在NVS划分的flash最前面呢?
3、用ccs下载程序,或者用Flash Programmer 2或UniFlash 7.0.0烧录程序,那么,不管旧板还是新板,都会先全芯片擦除,对吗?这样的话,程序首次上电运行的时候去读SNV_ID,读得的值应该是0xff,对吗?为何我读出的是0x00呢?
#define OTA_SNV_ID 0x11f
Task_sleep(900000);
osal_snv_read(OTA_SNV_ID,0x02,ValidSign.bytes);
PRINTF( "ValidSign.bytes[0]=%d\n",ValidSign.bytes[0]);
PRINTF("ValidSign.bytes[1]=%d\n",ValidSign.bytes[1]);
if(ValidSign.word[0]==0xffff)
{//first power up
…
}
打印结果是ValidSign.bytes[0]=0
ValidSign.bytes[1]=0
不知道哪里搞错了
Cherry Zhou:
您好我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢!
,
Janet xu:
多谢。第3个问题我自己已经解决了,前面2个问题作为深入了解cc2642芯片snv功能,如果有你们官方权威答案更好了:)————也想知道第3个问题官方答案和我自己摸索出来的是不是一样,这样做产品保险点
,
Cherry Zhou:
好的,应该下个工作日给到您前两个问题的答复哈。
,
Janet xu:
不急,多谢
,
Cherry Zhou:
Janet xu 说:1、如果在.syscfg里配置NVS成1page或2page,那么,SNV_ID最后一个ID,对应flash的绝对位置是不是不一样?
您好,NV ID 不是严格的位置,而是严格的数据段。 换句话说,更改了分配给 NVS 的存储器区域、页数甚至位置,都不会影响 NV ID。
Janet xu 说:2、如果前面那些ID没有使用,只使用最后一个ID,是不是数据也被存储在NVS划分的flash最前面呢?
NVS 驱动程序负责将对应于每个 NVS ID 的数据存储在物理存储器位置。 存储器地址和 NV ID 之间的对应关系是根据数据注册顺序来的,而不是根据 NV ID 的值进行的。
详情请参阅以下文档:
https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_Bluetooth_flash_memory-cc13xx_cc26xx.html