TI中文支持网
TI专业的中文技术问题搜集分享网站

请问CC2541协议栈SNV供给用户使用的ID,每个ID可以存储多少byte?

看了手册,给我们使用的ID:0x80-0xFE。可是我对FLASH这块还不太明白。1 page是2048 bytes,协议栈osal_snv.c上面看到有2 pages。
那么OSAL API.pdf里面第11章节里面ID的范围是0x00-0xFF,给我们应用的是0x80-0xFE。那么算下来,每个ID可以保存16 bytes。
1.这里的ID是uint8的类型,可是第10章节讲解NV的时候对应的ID是uint16,为什么会有这个差异?
2.想确认一下关于 0x80-0xFE,每个ID到底可以存储多少数据?
3.我看到有的人使用osal_snv_write这个函数可以存储到252个uint8类型,但是存储253个uin8类型就不行了,他是使用这个函数的时候就是写的0x80这个ID。难道osal_snv_write把多的数据写到后面的ID里面了??
希望大神可以给我解惑,揭开面纱。

Barbara Wu:

ItemID 可以理解成一个是一个名字,表示你存储的数据的编号。

长度是unint16传进去的,大小限制应该是SNV可供使用的大小。

cedar_xuesong:

1.ID是18位的

2. ID仅仅表示序号,能写多少内容,SNV不做限定;但你初始化时,会设置SNV占用的总空间。

3. 参考http://blog.csdn.net/happytomyoung/article/details/48895217

Gary~~~:

回复 cedar_xuesong:

ID 仅仅表示序号,那我可以这样理解么?

我把 10个字节的数据存到 0x80 这个 ID 中,然后再次存储的时候把 3 个字节的数据存储到 0x81 这个 ID 中,然后再次把 10 个字节存储到 0x82 这个 ID 中,

我这样理解对不对?所以这个 ID 只是数据的编号对么?

Shenzhen Gao:

回复 Barbara Wu:

你好,测试时只能0x80能写入252个字节,读取正常,253字节读取有错误,其他的ID(测试0x81,0xfe)写入1个字节,都不能正常读取,请问是什么问题?

xin chen3:

回复 Shenzhen Gao:

你的SNV不能读取的问题解决了么?是什么问题呢?

赞(0)
未经允许不得转载:TI中文支持网 » 请问CC2541协议栈SNV供给用户使用的ID,每个ID可以存储多少byte?
分享到: 更多 (0)