你好!
我需要在分区中存储一些自定义数据(大约1500字节)NVMS_GENERIC_PART。我的自定义配置是
#定义SUOTA_VERSION SUOTA_VERSION_1_3 # define SUOTA_PSM 0 x81 # define 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存储自定义数据的正确偏移量,以避免与绑定设备的BLE生成的数据发生冲突。
在这个例子中,wsp_weightscale BLE使用了#define CONFIG_WSP_STORAGE_OFFSET (0x00001000)的偏移量。但是我现在知道了这个值是如何计算的或者它只是一个好的猜测。
那么我的第一个问题是:如何计算偏移量来存储自定义数据?
PS:我已经阅读与cli_programmer内存直接,不明白偏移如何与写入的数据的真实地址相关。这可能是因为dg_configNVMS_VES 1。但我想知道原因,但在文件里找不到。即使是新的写入数据也会被放在与前一个数据不同的位置。它似乎有一种管理方式可以启用/禁用64字节块。
那么我的第二个问题是:在vs模式中数据是如何组织和管理的?
谢谢你!
托马斯。
设备:

你好托马斯Donhauser。
该机制由NVMS虚拟机自动处理。用户不知道SDK是如何传递这种机制的。
一般来说,Generic分区(NVMS_GENERIC_PART)用于:
在NVMS_GENERIC_PART分区中搜索并找到存储的内容/位置是极其困难的,因此您不能使用它来存储自定义数据。我不建议采用这种方法。
根据您的描述,我建议将自定义数据存储到另一个分区中。例如,日志分区(NVMS_LOG_PART)可以用于此范围。
后DA1469x教程Flash适配器(非易失性存储器)教程直接使用NVMS_LOG_PART并存储自定义数据。
谢谢,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中,那么我需要确保没有其他机制将数据存储在那里。如果用SUOTA更新应用会发生什么?我必须考虑什么以保护我的客户资料?
如果你能以我问你的方式回答我的问题,我将非常感激!
谢谢你!
附注:您提到的链接是für The da1469x。如你所见,我正在研究da1468x。
你好托马斯•Donhauser
抱歉链接错误,我再次附上DA1468x产品系列的教程。
http://lpccs-docs.dialog-semiconductor.com/da1468x_adapters_concept/index.html
如前所述,通用分区(NVMS_GENERIC_PART)用于:
此外,Generic分区被标记为VES。请参阅第2.4.2节。关于VES的更多信息,请参阅上述文件中的VES。VES将数据写入flash内的随机位置。
我将在内部询问CONFIG_WSP_STORAGE_OFFSET是如何计算的。
但是,由于您的客户希望存储自定义数据,我们建议使用前面建议的另一个分区(例如Log或自定义分区)。
如果您对SUOTA机制感兴趣,请查看以下文档中的图44:
//www.wsdof.com/sites/default/files/um-b-056-da1468x_software_developers_guide_6v0.pdf
根据这份文件,
LOG分区与SUOTA无关,因此可以存储自定义数据。SUOTA机制只会修改FW相关的分区。
关于绑定设备的持久化存储,请阅读sdk interfaces ble readme。md文档。
谢谢,PM_Dialog