出厂重置所有NVM数据

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
Uniben.
离线
最后一次露面:2年1个月前
加入:2016-08-23 09:46
出厂重置所有NVM数据

SDK:1.0.10-1072

你好,

我需要一个函数来将所有NVM数据重置为出厂交付状态。

如何重置(删除)来自通用分区的所有绑定设备数据而不使用每个设备的BLE_GAP_UNPAIR()?

我已经尝试过:
part = ad_nvms_open(nvms_generic_part);
size = ad_nvms_get_size(part);
ad_nvms_erase_region(部分,0,大小);

,但没有成功。

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

设备:
mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨Uniben,

嗨Uniben,

嗯,它并不那么简单,你不会能够实际擦除设备的通用分区(闪存上读取0xFF),因为您正在使用CONFIG_BLE_STORAGE(其实际上是启用设备存储模块的标志能够将数据存储在闪存中)。原因是,因为存储是使用VES方案的,以便存储数据,这意味着它实际上并不从闪存中擦除数据,而是将它们标记为无效。如果调试上面已连接的代码,则会看到ad_nvms_erase_region()对应于VES模块的擦除功能,返回FALSE(而这是您应该在使用时实际擦除的原因)。如果您想要这种功能,您应该使用自定义方式使用直接访问NVMS部分来存储绑定数据,并以这种方式正确地擦除绑定数据的扇区。

谢谢mt_dialog.

Uniben.
离线
最后一次露面:2年1个月前
加入:2016-08-23 09:46
嗨mt_dialog,

嗨mt_dialog,

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

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

谢谢Uneben.

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨Uniben,

嗨Uniben,

是的,您可以直接调用AD_FLASH_ERASE_REGION()函数,以便直接擦除闪存的特定扇区(即使它被称为VES并绕过NVMS适配器),虽然我无法推荐这种实践违反结构和使用SDK的正确方式。无论如何,如果这适用于您的应用程序,并且在设备重新启动之后(因此ves重新运行的初始化),我就不会看到任何问题。

谢谢mt_dialog.