ad_nvms_write /读取自定义数据的适当偏移是什么?

了解更多常见问题解答教程

4个帖子/ 0新
最后一篇
托马斯唐豪瑟
离线
最后一次露面:1个月2天前
加入:2019-10-20 10:45
ad_nvms_write /读取自定义数据的适当偏移是什么?

你好!

我需要在分区中存储一些自定义数据(大约1500字节)nvms_generic_part。我的自定义配置是

的#define SUOTA_VERSION SUOTA_VERSION_1_3的#define SUOTA_PSM 0×81#定义USE_PARTITION_TABLE_1MB_WITH_SUOTA的#define dg_configSUOTA_SUPPORT(1)的#define dg_configFLASH_ADAPTER 1的#define dg_configNVMS_ADAPTER 1的#define dg_configNVMS_VES 1的#define CONFIG_BLE_STORAGE的#define defaultBLE_MAX_BONDED(8)的#define defaultBLE_MAX_CONNECTIONS(1)

据我所知,BLE还存储NVMS_GENERIC_PART中最多8个设备的自定义键。所以我需要知道ad_nvms_write和ad_nvms_read的正确偏移,以存储我的自定义数据,以避免与绑定设备产生的数据生成的数据。

在示例中,WSP_WEIGHTSCale BLE使用#define config_wsp_storage_offset(0x00001000)的偏移量。但我现在已经Clue如何计算这个值,或者它是什么,但没有什么是好的猜测。

所以我的第一个问题:如何计算偏移来存储我的自定义数据?

PS:我已经用CLI_Programmer直接读取了内存,并不缺货如何与所写的数据的真实地址相关联。这可能是因为dg_confignvms_ves 1.但是我想知道为什么并且找不到文档中的任何东西。即使是新的书面数据也被放置在前一个位置上的不同位置。它接缝有某种管理,即Enabale /禁用64字节块。

所以我的第二个问题:如何在VES模式下组织和管理数据?

谢谢!
托马斯

设备:
PM_DIALOG.
离线
最后一次露面:21分钟22秒前
职员
加入:2018-02-08 11:03
托马斯唐豪瑟。

托马斯唐豪瑟。

该机制由NVMS VES自动处理。用户不知道该机制如何由SDK交换。

通常,通用分区(NVMS_GENERIC_PART)用于:

  • 存储键合数据。例如,8设备的键合信息
  • 通过BLE存储机制保存信息。

在NVMS_GENERIC_PART分区内搜索并查找存储的/在哪里,因此您无法使用它来存储自定义数据。我不会建议这种方法。

根据您的描述,我建议将自定义数据存储到另一个分区中。例如,日志分区(NVMS_LOG_PART)可用于此范围。

下列的DA1469X教程闪存适配器(非易失性存储器存储)教程直截了当地使用NVMS_LOG_PART并存储自定义数据。

谢谢,PM_DIALOG.

托马斯唐豪瑟
离线
最后一次露面:1个月2天前
加入:2019-10-20 10:45
你好pm_dialog,

你好pm_dialog,

谢谢你的答案,但它没有帮助!由于我必须存储数据,我必须了解这个机械的工作原理。因此,我需要一种可靠的方法来做,这是完全不可接受的,告诉我“用户不知道”!你有没有得到我不是用户,因为我是开发人员?

您正在提供具有SDK的开发人员。这就是为什么你必须能够解释每个细节。所以请不要充实你是微软的。谢谢!

所以首先:我需要解释这有效的文档,

第二:正如我所提到的那样,WSP_WeightScale正在使用#define config_wsp_storage_offset(0x00001000)的偏移量存储此分区中的数据。所以请解释我如何计算这个偏移量。

我有一个1MB的闪存,NVMS_GENERIC_PART的大小是126.976字节,您将告诉我所有这些都用于8个配对设备?

我有一个为我所开发的东西支付的客户,我无法解释所有内存对的东西,或者在那里发生了什么。如果这是真的,那么da1468x的整个sdk是废话!所以请不要告诉我我不知道的东西!因为这是我问你的原因!

如果它达到了结论,最好将其存储在NVMS_LOG_PART中,因此我需要确保没有其他机制在那里存储数据。在用uota更新应用程序的情况下发生了什么?我要考虑什么来保护我的客户数据?

我非常感谢我,你可以在我问你的方式回答我的问题!

谢谢!

ps.:你提到的链接是ub the1469x。正如您所看到的,我正在研究DA1468x。

PM_DIALOG.
离线
最后一次露面:21分钟22秒前
职员
加入:2018-02-08 11:03
嗨托马斯唐豪斯,

嗨托马斯唐豪斯,

抱歉错误的链接,我再次在DA1468x产品系列中重新安装。

http://lpccs-docs.dialog-semicondiond.com/da1468x_adapters_concept/index.html.

如前所述,通用分区(NVMS_GENERIC_PART)用于:

  • 存储键合数据。
  • 通过BLE存储机制保存信息。

此外,通用分区标记为VES。请参阅第2.4.2节。来自上述文件的ves,了解有关VES的更多信息。VES将数据写入闪存中的随机位置。

我会在内部询问CONFIG_WSP_STORAGE_OFFSET如何计算。

但是,由于客户想要存储自定义数据,我们建议使用以前所建议的另一个分区(例如日志或自定义分区)。

如果您对Suota机制感兴趣,请从以下文档中查看图44:

https://www.dialog-seminile.com/sites/default/files/um-b-056-da1468x_software_developers_guide_6v0.pdf.

根据该文件,

  • fw_update,fw_exec,image_header在套筒期间修改
  • 通用,param,platform_params,日志在Suota期间访问
  • Partition_Table,Product_Header,FIMRWARE在Suota期间保持完整

日志分区与Suota无关,因此您可以存储自定义数据。Suota机制将仅修改FW相关分区。

关于绑定设备的持久存储,请读取SDK \ Interfaces \ BLE \ README.MD文档。

谢谢,PM_DIALOG.