所有nvm数据的出厂重置

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
uniben
离线
最后看到:1个月前
加入:2016-08-23 09:46
所有nvm数据的出厂重置

SDK: 1.0.10-1072

你好,

我需要一个功能重置所有nvm数据到工厂交付状态。

我如何重置(删除)所有绑定设备数据从通用分区不使用ble_gap_unpair()为每个单一设备?

我已经试过了:
部分= ad_nvms_open (NVMS_GENERIC_PART);
大小= ad_nvms_get_size(部分);
ad_nvms_erase_region(部分,0,大小);

,但没有成功。

提前非常感谢你的帮助。
罗尔夫

设备:
MT_dialog
离线
最后看到:2个月3个星期前
工作人员
加入:2015-06-08 34
嗨uniben,

嗨uniben,

也不是那么简单,你不能够消除设备的通用分区(0 xff的flash)因为你是使用CONFIG_BLE_STORAGE(实际上是国旗,使设备的存储模块为了能够存储flash中的数据)。这样做的原因是,因为存储使用VES方案来存储数据,这意味着它实际上并没有擦除闪存中的数据而是将它们标记为无效。如果您调试上面附加的代码,您将看到ad_nvms_erase_region()对应于VES模块的erase函数,并返回false(这就是它应该做的,因为在使用VES时实际上不需要擦除)。如果您想要这种功能,您应该使用一种自定义的方式来存储绑定数据,直接访问NVMS部分,这样您就可以正确地擦除存储绑定数据的扇区。

由于MT_dialog

uniben
离线
最后看到:1个月前
加入:2016-08-23 09:46
嗨MT_dialog,

嗨MT_dialog,

我可以使用ad_flash_erase_region()来擦除NVMS_GENERIC_PART。

这没有问题。然后我重新启动系统。

由于uniben

MT_dialog
离线
最后看到:2个月3个星期前
工作人员
加入:2015-06-08 34
嗨uniben,

嗨uniben,

是的你可以直接调用函数ad_flash_erase_region()为了消除直接的特定部门flash(尽管其声明为类型和绕过nvms适配器),虽然我不能推荐这种做法,因为它违反了使用SDK的结构和适当的方式。无论如何,如果这对你的应用程序和之后的设备重新启动(所以VES的初始化重新运行),我不认为这样做有任何问题。

由于MT_dialog