NVMS库写/读/验证不匹配

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
13个帖子/ 0新
最后一篇
daisuke_suzuki.
离线
最后一次露面:2年12个月前
加入:2015-09-16 08:36.
NVMS库写/读/验证不匹配

嗨对话框。

我有个问题。
我使用NVMS库。
我重复猛烈地写入,读取和验证数据。
有时数据不匹配。

使用NVMS库有什么限制吗?

硬件是DA14681-01A9DEVKT-P开发套件 - 专业版。
SDK版本是SDK_1.0.10.1072。
我尝试了Ves分区和直接访问分区。
两者都失败了。

关键词:
设备:
mt_dialog.
离线
最后一次露面:6个月1周前
职员
加入:2015-06-08 11:34
嗨daisuke_suzuki,

嗨daisuke_suzuki,

我不认为他们是任何限制,我不知道在网络视频管理系统库中的任何错误的,究竟是什么,当你提到你使用该库猛烈你在干什么?你在对话框促开发工具包或定制电路板的测试呢?如果你在一个定制电路板使用此您使用的闪光,你有你的定制电路板适当的闪光灯驱动器?这将有助于提究竟你是为了做给我检查,如果我可以复制。

谢谢mt_dialog.

daisuke_suzuki.
离线
最后一次露面:2年12个月前
加入:2015-09-16 08:36.
嗨对话框。

嗨对话框。

>
>我不认为他们是任何限制,我不知道NVMS库中的任何错误,
>当你提到猛烈地使用图书馆时,你究竟在做了什么?
>

我已将测试项目附加到此回复。

>
>您是否在对话框Pro Dev套件上或在定制板上进行测试?
>如果您在自定义板上使用了您使用的闪存驱动程序,您可以在您的自定义板上使用闪光灯吗?
>

我使用Dialog Pro Dev套件板。

>
>有助于提及您在做什么,以便我检查我是否可以复制。
>

请按照以下步骤操作。

0下载archive.zip。
1. unzip archive.zip。
2.导入项目。
3.构建BootLoader_Release。
4.构建devkit_release。
5.通过USB电缆连接电路板和PC。
6.写计划。
7.打开COM端口连接板。请使用teraterm。
8.按住载板的重置开关。
9.输入“测试10”。
10.检查输出。

如果您重复测试几次,则会失败。

(好的)
/************************************************/
/ *的devkit:释放(NVMS试验)* /
/************************************************/

NVMS>测试10
count = 10。
测试[01] ......好的
测试[02] ...好的
测试[03] ......好的
测试[04] ......好的
测试[05] ... OK
测试[06] ...好吧
测试[07]…好吧
测试[08] ... OK
测试[09] ......好的
测试[10] ...好吧
NVMS >

[ng]
/************************************************/
/ *的devkit:释放(NVMS试验)* /
/************************************************/

NVMS>测试10
count = 10。
测试[01] ......好的
测试[02] ...好的
测试[03] ......好的
测试[04] ......好的
测试[05] ... OK
测试[06] ...错误
索引不匹配[line = 138]
NVMS >

此测试程序是test_cmd函数。
请检查\存档\主的\ src \框架\ COMMON \壳\ COMMAND \测试\ test_cmd.c。

依恋:
mt_dialog.
离线
最后一次露面:6个月1周前
职员
加入:2015-06-08 11:34
嗨daisuke_suzuki,

嗨daisuke_suzuki,

从代码,我看到你中省略从SDK相当多的文件,并定制了enitre SDK,以满足您的需求,同时也试着调试FW为了检查你所做的一切和它完全不可能。也许是与你正在经历的一些评论,是有在设备没有分区表,我的意思是,你正在运行和访问NVMS_GENERIC_PART但应该在启动时创建的实际分区表,它根本就没有在那里,还我不能够看到,如果您正在使用闪光灯或VES的直接访问,(虽然在分区表中的GENERIC_PART被声明为PARTITION_FLAG_VES,没有配置文件,检查项目,NVM的配置).闪光灯的API是相当测试,他们的工作,他们应该。

谢谢mt_dialog.

daisuke_suzuki.
离线
最后一次露面:2年12个月前
加入:2015-09-16 08:36.
嗨对话框。

嗨对话框。

>
>从代码中,我看到您已经从SDK和SDK中获取了很多文件
>您已定制Enitre SDK以满足您的需求,
>也试着调试FW为了检查你所做的一切和它完全不可能。
>

毕竟,你确认了吗或好吗?

>
>一些评论可能与您所在的内容有关,
>设备中没有分区表,
>我的意思是您正在运行和访问NVMS_GENERIC_PART,但实际的分区表
>应该在启动时创建,它根本不在那里,我也无法看看你是否正在使用直接
>访问Flash或Ves,(虽然在分区表中,Generic_part被声明为partition_flag_ves,
>没有配置文件来检查项目的NVMS的配置)。
>

我认为分区表的设置是以下文件。

\ archive \ main \ src \ framework \ common \ sdk \ bsp \ config \ 1m \ suota \ partition_table.h

正确吗?

什么是不存在的配置文件?

告诉我来自da1468x_da15xxx_sdk_1.0.10.1072的相对路径。

>
>闪光灯的API是相当测试,他们的工作,他们应该。
>

告诉我你正在做什么样的测试。
请告诉我测试代码。

mt_dialog.
离线
最后一次露面:6个月1周前
职员
加入:2015-06-08 11:34
嗨daisuke_suzuki,

嗨daisuke_suzuki,

对不起,我不会通过提到你的意思“毕竟你确认了NG或OK?”

是的的设置分区表位于该文件,在启动期间设备应该创建分区表初始化组件,但在你的弗兰克-威廉姆斯当我试图从智能片段读取分区表工具,为了检查读和写,也没有创建分区表。

关于它不存在的配置文件,主要项目中的自定义_config_qspi.h文件在哪里?

关于测试,SDK在发布之前进行了主要的测试,您可以简单地取任何参考示例,使用ad_nvms_write()和ad_nvms_read()函数对flash进行读写。我也运行你的test_wrv()函数在一个SDK示例(调用test_wrv(计数)硬编码计数值在10和20)和设备每次都成功完成,我也可以看到写入分区在闪存中。

谢谢mt_dialog.

daisuke_suzuki.
离线
最后一次露面:2年12个月前
加入:2015-09-16 08:36.
>

>
>对不起,我不承认你的意思是提到“毕竟你确认了NG或OK?”
>

我想知道你是否跑了我的测试。

你做过我的测试了吗?

测试是如何造成?NG?好?

我想知道这个问题是否只发生了我的硬件。

如果您还没有这样做,请在使用附带的项目上运行我的测试。

>
>是的
>分区表的设置位于该文件中,在启动时,设备应创建分区表
>初始化组件,但在你的防火墙,当我试图从智能片段阅读工具分区表中,
>为了检查读写,没有创建分区表。
>

我检查了智能片段工具。

在该工具中,分区表的地址设置为0x7F000。(我不知道为什么这个地址是不变的。)

所以我分区表的地址从0x89000变为0x7F000。

此工具能够读取分区表。

但是,我的测试在改变后的项目上失败了。

附加变更项目。

在附加项目中,我提出了以下修改。

·在程序中添加Get_pt命令读取分区表。
·更改Test_Wrv()以在发生错误时增加信息输出。
·更改分区表
·删除不必要的SDK更改

>
>关于它不存在的配置文件,主要项目中的custom_config_qspi.h文件在哪里?
>

当然,我的项目中没有custom_config_qspi.h。

在此文件中确定的代码已被移动到devkit_config.h。

所以我删除了custom_config_qspi.h。

>
>我还运行(硬编码在10和20的计数值被调用test_wrv(计数))在一个SDK示例您test_wrv()函数和
>设备每次都成功完成,我还可以看到写入闪存分区的数据。
>

好的!!伟大的!!

该test_wrv()函数成功在您的项目每次完成。

对?

我想将您的项目与我的项目进行比较。

请给我你的项目。

mt_dialog.
离线
最后一次露面:6个月1周前
职员
加入:2015-06-08 11:34
嗨daisuke_suzuki,

嗨daisuke_suzuki,

我跑前面的项目,在连接了,正如你所提到的测试失败,但这是由于该项目没有为了读取和写入flash创建一个分区表,最有可能的分区。

我所做的就是采取SDK 1.0.12(SDK确实在写作过程中有一个错误,这是用新的SDK 1.0.12)和BLE_APP项目纠正,在该项目中,我颁发了以下更改:

  1. 将下面的代码放在下面的代码,用于在BLE_ADV_DEMO_TASK中BLE_GAP_ADV_START()之前测试您的测试:
    1. for(i = 0; i <20; i ++){
      test_setup ();
      test_wrv(i + 1);
      test_tear_down();
      }
  2. 有上述功能从您所附的项目中复制,并且在错误的情况下,我还附上了一些断言。
  3. 通过config_retarget和config_retarget_uart hw_uart2启用了打印
  4. 禁用看门狗。

FW为指定的测试成功运行。

如果你想测试应用修补程序的SDK 1.0.10上,你可以简单地从SDK 1.0.12采取下列功能,并将其应用到旧的SDK。

  1. 将* qspi_pending_ops初始化为null:privileged_data static qspi_ops * qspi_pending_ops = null;
  2. 从SDK 1.0.12更换功能pm_execute_active_wfi(),pm_process_completed_qspi_operations()和pm_register_qspi_operations()与相应的功能。

谢谢mt_dialog.

daisuke_suzuki.
离线
最后一次露面:2年12个月前
加入:2015-09-16 08:36.
嗨MT_dialog

嗨MT_dialog

>
>我运行了上一个项目,您已附加,测试失败,如上所述,
但这是由于项目没有创建分区表和
>大多数可能是分区,以便读取和写入闪光灯。
>

等一下。

你在思考如下,不是吗?

“分区表未在此项目中进行。”

你认为这不是以下原因的原因是以下的原因?

“我无法使用Smart Snippets工具读取分区表。”

在最后的回复中,我告诉过以下了。

为什么你不能读取分区表,智能摘录工具是什么原因
因为该工具读取分区表的一个固定值(0x07F000)中的地址。

这不是项目中未在项目中进行分区表的原因。

你明白吗?
是错的吗?

测试还无法在您的环境,所以我认为硬件是不是这个问题的原因。

我相信这个问题是由NVMS库中的错误引起的。
(也许我认为闪存驱动程序的实现存在问题。)

你怎么看待这件事?

>
>我所做的就是采取SDK 1.0.12
>(SDK确实在写入过程中有一个错误,并通过新的SDK 1.0.12纠正了这一点)
> BLE_APP项目,在该项目中,我发出以下更改:
>
> 1。将下面的代码放在下面的代码,用于在BLE_ADV_DEMO_TASK中BLE_GAP_ADV_START()之前测试您的测试:
> for(i = 0; i <20; i ++){
> test_setup();
> test_wrv (i + 1);
> test_tear_down();
>}
>
> 2。有上述功能从您所附的项目中复制,并且在错误的情况下,我还附上了一些断言。
> 3。通过config_retarget和config_retarget_uart hw_uart2启用了打印
> 4。禁用看门狗。
>
> FW为指定的测试成功运行。
>

你明白我的意思吗?

我告诉你,“请给我你的项目。”
我不询问如何制作项目。
你为什么不附上这个项目?

如果我做的工作,我可能会犯错误。
如果附上一个项目,则没有错误。

>
>如果您想在SDK 1.0.10上测试应用补丁
>您可以简单地从SDK 1.0.12获取以下功能,并将其应用于旧的SDK。
>
> 1。将* qspi_pending_ops初始化为null:privileged_data static qspi_ops * qspi_pending_ops = null;
> 2。从SDK 1.0.12更换功能pm_execute_active_wfi(),pm_process_completed_qspi_operations()和pm_register_qspi_operations()与相应的功能。
>

你是说“因为SDK 1.0.10中有一个错误,适用补丁。”?

daisuke_suzuki.
离线
最后一次露面:2年12个月前
加入:2015-09-16 08:36.
嗨MT_Dialog

嗨MT_Dialog

我读发行说明(DA1468x_DA15xxx_SDK_Release_Notes_v_1_0_12_1078.pdf),有一个在闪存驱动程序的bug。

1072.01
将DG_CONFIGDISABLE_BACKGROUND_FLASH_OPS更改为1可能导致故障
在96MHz的编程Winbond闪存设备

>
>闪光灯的API是相当测试,他们的工作,他们应该。
>

???

你不知道这个错误吗?

我的测试设置dg_configDISABLE_BACKGROUND_FLASH_OPS为0,但系统时钟设置为96MHz的。

我的测试失败了我的环境和环境。

如果dg_configdisable_background_flash_ops为零,它是否正常工作?

如果没有任何调查,请不要回答。

mt_dialog.
离线
最后一次露面:6个月1周前
职员
加入:2015-06-08 11:34
嗨daisuke_suzuki,

嗨daisuke_suzuki,

我运行和测试的第一个项目连接和项目失败,我已经提到过,我找不到一个分区表,项目,这一事实可能是最可能的原因你正在经历的问题(这是来到我的注意的第一件事这就是我推荐的),还为了测试,测试代码中我申请以下插件(我)在一个SDK的例子为了验证测试和我能够运行的测试中实现你的项目(这是一个SDK 1.0.12因为你没有一个分区表看一个合理的解释)。

我还测试了您上传的附加项目,您已经应用于您所应用的更正,以便具有正确的分区表,所需的项目也失败。因此,为了找到您使用SDK 1.0.10的情况下可能出错的事实。引起我的注意,记住SDK 1.0.10上有一个错误,有时由于中断写入可能会失败。所以我所做的是从SDK 1.0.12应用SDK 1.0.10上的修复程序(正如我所建议的那样,你试一试,所以是的,我知道自从我提出如何在SDK 1.0.10上修复它以来的错误).所以在我的一边,我应用了之前提到的修复SDK 1.0.10和运行相同的事情,因为我做了SDK 1.0.12,以验证你的测试运行成功,至少在一个SDK演示。演示确实成功运行了,测试是在重置设备时执行的,到目前为止,SDK上的测试没有失败。

我完全明白你对提供项目的说法,但mods是相当简单的,我假设你可以尝试他们,无论如何,在附件文件中,你会找到你的项目与补丁,应用于SDK 1.0.12,构建项目,并下载到工具包。我还使用修复程序对其进行了测试,并运行了一些测试,您的项目按照它应该的方式运行,多次运行计数为10和100的测试,没有出现错误。

再次有关DG_CONFIGDISABLE_BACKGRING_BORASH_OPS,SDK应该始终在运行闪存擦除时设置为0的DG_CONFIGDISABLE_BACKGRIND_FLASH_OPS,因为运行闪存擦除时,将被遗漏(设备将在指示时执行擦除),因此建议使用它来运行
dg_configdisable_background_flash_ops设置为0,这不是一个错误,但系统的限制。和我跑的测试有了
dg_configdisable_background_flash_ops设置为0,如SDK演示。

我还提到你已经非常讨厌并替换了一些SDK文件并通过这样做,通过执行此操作来定制项目,我无法遵循设置
你对你的项目有了,需要花费大部分时间来调试和检查可能出错的时间,所以我只能对你的项目提出建议
附上并没有对它进行调试
,或者遵循什么测试是干什么的,我希望这是明确的,你明白这一点。我们的SDK这么重的修改上不建议的原因是因为其难以调试,你也将有问题,当您想更新的固件到最新的SDK,你也有SDK的副本的项目,所以当修改SDK的一个文件,它不会影响其他的SDK文件,你有你的项目。因此,基于上述我想已经运行相当多的测试和比较研究的问题,您还需要测试它,而不是附加自定义代码并等待解决方案。所以请检查上传的项目,并告诉我它是否在您身边运行。

谢谢mt_dialog.

daisuke_suzuki.
离线
最后一次露面:2年12个月前
加入:2015-09-16 08:36.
谢谢你附上

感谢您安装项目。

我在附加的项目中运行了“测试10”10次。

没有错误发生。

到目前为止,我还从来没有连续成功过10次。

通过此代码修复,我认为问题未解决问题。

但我认为说“我看不到问题发生了这个问题并不是一个错误。

我很感激你的回应。

谢谢你MT_Dialog。

mt_dialog.
离线
最后一次露面:6个月1周前
职员
加入:2015-06-08 11:34
我修补了你的补丁

什么我已经修补您的代码(也演示了如何适用于以前的帖子补丁)是也适用于SDK 1.0.12(这是最新的SDK)的识别和验证补丁,所以我相当有信心这是导致在你的代码问题的问题。

如果上面的帖子有帮助,请标记你的答案为验证。

谢谢mt_dialog.