SNV如何删除数据?
2540一般操作只有osal_snv_write()和osal_snv_read()
请问怎么删除?写入0xFF吗?
这样做的话如果满了, 系统会自动整理吗?
请问工程师是填0x00还是0xFF呢
为什么要删除呢,系统会自动调整的,而且尽量减少Erase的操作,因为Flash擦写也有寿命,通过osal_snv_compact()操作
The Protocol Stack reserves two 2 kB flash pages for SNV. By default, these are the last two pages of flash. To minimize the number of erase cycles on the flash, the SNV manager performs “compactions” on the flash sector(s) when the sector has 80% invalidated data. A compaction is the copying of valid data to a temporary area followed by an erase of the sector where the data was previously stored.
osal_snv_write( osalSnvId_t id, osalSnvLen_t len, void *pBuf)
osal_snv_read( osalSnvId_t id, osalSnvLen_t len, void *pBuf)
开放给你的ID是0x80 - 0x8F,pBuf里填你的数据
Hi Butterfly :
感谢回复, 我的数据是在使用中通过SNV_ID写入的, 如果对于我不需要的数据,不执行删除,
系统自动整理的时候, 如何整理掉我不需要的数据呢, 因为我写入的数据总体还是比较多的, 很担心写入失败
如上面红色回复,最后两页用来做NV存储,当无效数据达到80%的时候,系统会把有效数据先Cope到一个地方暂存,然后再将Sector擦除,有效数据不会擦掉的
Butterfly,
请教一个问题。
什么数据叫无效数据?
user data算是有效数据还是无效数据?