对话小组你好,
我在基于DA14681单片机的定制板上工作。DA14681通过qspi接口连接到“W25Q80EW”闪存。此闪存用于保存传感器日志数据。但问题是如何使用DA14681 MCU的闪存。我的意思是配置qspi和读/写操作。你能帮我把虚拟数据读/写进闪存吗。
提前谢谢。
嗨Jitendraprasad,
您使用的闪存与SDK用作默认内存的闪存相同,因此不需要在此闪存上进行额外的实现。关于在闪存上保存数据,SDK将代码和数据保存到qspi闪存中,并在分区中分离闪存(请查看NVMS适配器第12.4段中的UM-B-044)。SDK还提供适当的API,以便与flash交互并在分区中保存数据,用户为了保存数据而使用的分区是通用分区。
谢谢你的对话
谢谢
我们可以使用完整的闪存区吗。还是有一些闪光区域被限制使用?我们是否可以直接使用“qspi_automode.c”和“qspi_automode.h”文件qspi flash API保存自定义传感器数据?
68x的flash区域被划分为多个分区,这些分区包括FW本身的设备bd地址、名称等参数,所以不能写入整个flash,而只能写入用户专用分区。您可以在UM-B-044 da1468x软件平台参考文档中找到关于分区的指南,内容是10.2非易失性内存存储。关于保存自定义传感器数据,有专门的API用于访问特定的分区,并通过适配器对该分区进行写或读,您将能够在已经提到的文档12.4 NVMS适配器中获得相关信息。
用户可以将日志数据(自定义数据)保存在“W25Q80EW”闪存中的哪个分区?我们需要多少空间来写入自定义数据?
闪存的分区取决于用户,因此可以自定义闪存的分区方式和大小,因此每个分区中可以存储多少数据取决于您。在默认配置中,通用_部分最多为0x20000字节,但这也取决于分区的类型,例如,如果要在特定分区上使用VES,可用存储量将是分区表上声明的量除以8(由于使用了虚拟寻址方案,因此实际存储空间非常小)。
谢谢两个问题,,1.闪存(W25Q80EW)接口与DA14681在与DA16481 pro板相同的引脚上。所以我需要初始化qspi上的闪存引脚?或者它已经在Dialog SDK中初始化了?2.我已经使用“ad_NVMS_open(NVMS_GENERIC_PART);”初始化了NVMS,并使用了“ad_NVMS_write”和“ad_NVMS_read”API调用,我可以正确地读写一些数据。所以问题是,数据真的是使用这个API调用写入闪存吗?还是需要其他API调用?
谢谢你的回复。
我的第二个问题是,哪些函数用于将数据读写到闪存中?你提到过,我们在SDK中有读写flash数据的功能。所以你能告诉我哪个函数调用是用来读和写我们自己的自定义数据的吗?
或者哪个qspi函数调用用于访问闪存?
在qspi分区上执行写和读的函数是ad_read_nvms()和ad_write_nvms()(您已经提到并使用过的函数)正如你所提到的,你能够成功地读写数据,这就是为什么我不明白这个问题的原因。既然你已经使用了这些函数,并且看到了它们的性能,也许你的问题是关于其他的?
嗨Jitendraprasad,
您使用的闪存与SDK用作默认内存的闪存相同,因此不需要在此闪存上进行额外的实现。关于在闪存上保存数据,SDK将代码和数据保存到qspi闪存中,并在分区中分离闪存(请查看NVMS适配器第12.4段中的UM-B-044)。SDK还提供适当的API,以便与flash交互并在分区中保存数据,用户为了保存数据而使用的分区是通用分区。
谢谢你的对话
谢谢
我们可以使用完整的闪存区吗。还是有一些闪光区域被限制使用?
我们是否可以直接使用“qspi_automode.c”和“qspi_automode.h”文件qspi flash API保存自定义传感器数据?
嗨Jitendraprasad,
68x的flash区域被划分为多个分区,这些分区包括FW本身的设备bd地址、名称等参数,所以不能写入整个flash,而只能写入用户专用分区。您可以在UM-B-044 da1468x软件平台参考文档中找到关于分区的指南,内容是10.2非易失性内存存储。关于保存自定义传感器数据,有专门的API用于访问特定的分区,并通过适配器对该分区进行写或读,您将能够在已经提到的文档12.4 NVMS适配器中获得相关信息。
谢谢你的对话
谢谢
用户可以将日志数据(自定义数据)保存在“W25Q80EW”闪存中的哪个分区?我们需要多少空间来写入自定义数据?
谢谢
嗨Jitendraprasad,
闪存的分区取决于用户,因此可以自定义闪存的分区方式和大小,因此每个分区中可以存储多少数据取决于您。在默认配置中,通用_部分最多为0x20000字节,但这也取决于分区的类型,例如,如果要在特定分区上使用VES,可用存储量将是分区表上声明的量除以8(由于使用了虚拟寻址方案,因此实际存储空间非常小)。
谢谢你的对话
谢谢
两个问题,,
1.闪存(W25Q80EW)接口与DA14681在与DA16481 pro板相同的引脚上。所以我需要初始化qspi上的闪存引脚?或者它已经在Dialog SDK中初始化了?
2.我已经使用“ad_NVMS_open(NVMS_GENERIC_PART);”初始化了NVMS,并使用了“ad_NVMS_write”和“ad_NVMS_read”API调用,我可以正确地读写一些数据。所以问题是,数据真的是使用这个API调用写入闪存吗?还是需要其他API调用?
谢谢
嗨Jitendraprasad,
谢谢你的对话
谢谢你的回复。
我的第二个问题是,哪些函数用于将数据读写到闪存中?
你提到过,我们在SDK中有读写flash数据的功能。所以你能告诉我哪个函数调用是用来读和写我们自己的自定义数据的吗?
或者哪个qspi函数调用用于访问闪存?
谢谢
嗨Jitendraprasad,
在qspi分区上执行写和读的函数是ad_read_nvms()和ad_write_nvms()(您已经提到并使用过的函数)正如你所提到的,你能够成功地读写数据,这就是为什么我不明白这个问题的原因。既然你已经使用了这些函数,并且看到了它们的性能,也许你的问题是关于其他的?
谢谢你的对话