Thread 中讨论的其他部件:CC2540、 CC2650
工具/软件:Code Composer Studio
这篇文章与保存到 SNV 闪存的字节相关。
我遵循 CC2540和 cc2640的 BLE 开发人员指南中的第3.10.3节。 本节与“将简单 NV 用于闪存存储”相关。 根据这一点,“协议栈可被配置为为为 SNV 保留最多两个4 KB 的闪存页,尽管有效数据只存储在一个活动的闪存页中”
根据我的理解、我可以通过在堆栈项目中设置 OSAL_SNV 预处理器符号来保留最多两页。 为了解释压实、它使用了"扇区"一词。 此处使用的术语"扇区"和"页面"是相同或不同的。 API 将自行处理1页和2页上的读取/写入操作。
这是两个 API 调用
OSAL_SNV_read (id、len、void * buf);
OSAL_SNV_write (id、len、void * buf);
我的另一个问题是在文档中、它显示仅可供客户使用的 ID 为0x80–0x8F。 总共16个 ID。 因此、对于 buf/数组内的 ID、我可以写入 uint8的字节数。 我的要求是存储小于4KB 的数据。 那么、我能否根据 ID 保存4KB、即4096字节。 或两个页面在16个 ID 之间进行划分。 您能帮助我理解这一点吗?
我的要求是至少在 SNV 中存储4096字节。 此外、我能否稍后根据 ID 更新数据、这意味着无需擦除。