你好,对话框的团队,
我正在研究基于定制板的DA14681单片机。DA14681通过qspi接口连接到“W25Q80EW”闪存。该闪存用于保存传感器的日志数据。但是问题是我如何使用DA14681单片机的闪存。我指的是配置qspi和读/写操作。你能帮我把假数据读/写到闪存里吗?
提前谢谢。
嗨Jitendraprasad,
您正在使用的flash与SDK用作默认内存的flash相同,因此不需要对它进行额外的实现。关于在flash上保存数据,SDK将代码和数据保存到qspi flash中,并将flash进行分区(请检查12.4段NVMS适配器中的UM-B-044)。SDK还提供了适当的api来与flash交互并将数据保存在分区中,从用户为了保存数据而使用的分区就是GENERIC partition。
由于MT_dialog
谢谢。
我们可以使用全闪存区域。还是有一些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”闪存?我们需要多少空间来写自定义数据?
谢谢
闪存的分区是由用户决定的,所以它是可定制的,你将如何精确地分区你的闪存和大小是可定制的,所以多少数据可以存储在每个分区取决于你。在默认配置中,GENERIC_PART最多为0x20000字节,但这也取决于分区的类型,例如,如果您打算在一个特定的分区上使用VES,那么可用存储的数量将是分区表上声明的数量除以8(由于使用了虚拟寻址方案,实际的存储空间相当小)。
谢谢。两个问题,1.flash内存(W25Q80EW)接口与DA14681在相同的引脚DA16481 pro板。所以我需要在qspi上初始化flash引脚?或者它已经在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,
您正在使用的flash与SDK用作默认内存的flash相同,因此不需要对它进行额外的实现。关于在flash上保存数据,SDK将代码和数据保存到qspi flash中,并将flash进行分区(请检查12.4段NVMS适配器中的UM-B-044)。SDK还提供了适当的api来与flash交互并将数据保存在分区中,从用户为了保存数据而使用的分区就是GENERIC partition。
由于MT_dialog
谢谢。
我们可以使用全闪存区域。还是有一些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适配器中获得相关信息。
由于MT_dialog
谢谢。
在哪个分区用户可以保存日志数据(自定义数据)在“W25Q80EW”闪存?我们需要多少空间来写自定义数据?
谢谢
嗨Jitendraprasad,
闪存的分区是由用户决定的,所以它是可定制的,你将如何精确地分区你的闪存和大小是可定制的,所以多少数据可以存储在每个分区取决于你。在默认配置中,GENERIC_PART最多为0x20000字节,但这也取决于分区的类型,例如,如果您打算在一个特定的分区上使用VES,那么可用存储的数量将是分区表上声明的数量除以8(由于使用了虚拟寻址方案,实际的存储空间相当小)。
由于MT_dialog
谢谢。
两个问题,
1.flash内存(W25Q80EW)接口与DA14681在相同的引脚DA16481 pro板。所以我需要在qspi上初始化flash引脚?或者它已经在Dialog SDK中初始化了?
2.我已经使用"ad_nvms_open(NVMS_GENERIC_PART);"初始化NVMS,并使用"ad_nvms_write"和"ad_nvms_read" API调用,我可以正确读写一些数据。问题是,数据真的用这个API调用写入闪存吗?还是需要其他API调用?
谢谢
嗨Jitendraprasad,
由于MT_dialog
谢谢您的回复。
我的第二个问题是,用哪些函数来读写数据到闪存中?
你提到过,我们在SDK中有读写flash数据的功能。所以你能告诉我哪个函数调用是用来读和写我们自己的自定义数据的吗?
或者使用哪个qspi函数调用来访问闪存?
谢谢
嗨Jitendraprasad,
函数执行写作和阅读的分区qspi是ad_read_nvms()和ad_write_nvms()(那些你已经提到过和使用)至于你提到过能够读取和写入数据成功,这就是为什么我不把问题。既然您已经使用过这些函数,并且看到了它们的执行情况,那么您的问题可能是关于其他事情的吧?
由于MT_dialog