跳到主要内容

具有闪光灯的DA14681的NVRAM VES代码的示例代码

1年前

具有闪光灯的DA14681的NVRAM VES代码的示例代码

张贴了Mahmed106.10分 1回复
0旋转

嗨对话框

我在基于DA14681的自定义板上工作,并使用固件PXP记者。一切正常工作正常工作,但现在我想将数据保存到闪存中。

在Flash适配器文档中,提到了
“一个部门可以删除仅限有限的次数(由制造商保证)。之后
擦除周期数,数据存储不可靠。“

“多次在同一位置编写少量数据,将佩戴闪光灯
(写/擦除周期的数量是特定于设备的,请参阅相应的闪存数据表)。“

“ves.
VES驱动程序提供使用电源故障和佩戴保护的分区条目。实现
此,VES驱动程序将数据写入闪光灯中的随机位置,而无需擦除整体
扇区在同一位置进行修改。这是通过写入不同的闪存位置来实现的
对于同一用户提供的地址。VES驱动程序提供虚拟寻址,即用户
指定地址在读取或写入操作之前将指定的地址转换为真实的闪存位置。为此
工作,闪光灯大小必须大于用户可见的寻址空间。一个共同的规则
拇指是8x所需的虚拟EEPROM大小。“
所以我的Scnerio是我想在闪存中非常频繁地写一点,但我无法找到ad_nvms_ves_write,ad_nvms_ves_read的任何示例代码。

因此,是否有任何示例代码,其中ves模式是可以在我的项目中添加此功能。谢谢

接受答案!

1年前

PM_DIALOG.

嗨mahmed106,

非常感谢您在线的问题。没有任何描述VES功能的文档。但是,它可以使用它来读取或写入数据。对于使用ves的应用程序有三个先决条件:

  1. 分区ID仅应该是NVMS_GENERIC_PART,并标记为partition_flag_ves。
  2. DG_CONFIGNVMS_VES宏应在CONFIG / CUSID_CONFIG_QSPI.H中定义

我建议你看看SPI适配器概念来自我们支持网站的教程,它演示了如何读/写日志分区(NVMS_LOG_PART)。您需要在访问分区条目之前修改AD_NVMS_Open(),如下所示:

nvms_var = ad_nvms_open(nvms_generic_part);

请注意,VES驱动程序带有带电故障保护的分区的访问。它使用虚拟寻址。可用于用户应用程序的地址空间小于分区占用的物理闪存空间,但用户可以在不必担心数据将丢失的情况下读取和写入此地址空间。如果在写入期间电源失败,则编写的特定数据可能会丢失,但其他数据不会受到影响。为了获取更多信息,VES功能如何工作,请阅读教程的2.4.2节。

#define dg_configflash_adapter(1)#define dg_confignvms_adapter(1)#define dg_confignvparam_adapter(1)

谢谢,PM_DIALOG.