你好,
在SDK 5.0.4上,我试图使用教程“Dialog SDK 5培训材料-Suota(软件更新)”来实现Suota。我在“ble_examples”文件夹中使用“ble_app_ota”(具有一些用户配置修改)。我能够成功构建“fw_multi_part_spi.bin”并将其刻录到SPI闪存。当我尝试使用Android使用Suota应用程序更新时,我得到一个“无效的产品标题”错误。
在这个帖子之后
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
这是我能够验证的以下事情:
使用十六进制查看器和SmartSnippets工具箱,我能够验证产品标题签名(70 52)确实是fw_multi_part_spi.bin的偏移0x1f000。
使用SmartSnippets Toolbox,我能够验证产品标题签名(70 52)在DA14580的SPI Flash中偏移0x1f000。
然后,我尝试调试“app_read_image_headers”,看看我收到的签名,并且lo和phoold我获得(c8 00)作为签名。我深入地深入进入App_Read_ext_mem - > SPI_FLASH_READ_DATA,并看到即使地址参数为0x1f000,RD_DATA_PTR [0]为0xC8。看来我正在处理某种数据损坏,是有没有建议我可以遵循找到解决方案吗?
设备:
嗨jesus805,
如果获得这种代码,意味着产品标题已损坏,则课题预计将从产品标题读取图像的位置,然后在执行其检查其0x70和0x52的位置0x1f000,如果产品标题与我提到的签名字节不匹配,则应用程序返回“无效的产品标题”消息。在尝试使用SDK的另一个例子时,请您判断您是否会出现同样的消息?例如,如果您将其尝试到SDK的Prox_reporter示例中,则会收到此错误?请为他的问题找到一个有用的过去的论坛主题:
https://support.dialog-semicondiondiondiondiondum/forums/post/dialog-smartbond-bluetooth-low-energy -%ee2%80%93-tools/suota-android-app.
谢谢,PM_DIALOG.
你好,谢谢你的回复,
是的,我还在SDK中使用“Prox_reporter”时获得“无效的产品标题”。
我没有用一些例外修改这个项目:
我改变了第二十六进制的da14580_sw_version(fw_2.hex)
我改变了第二个十六进制的设备通告名称(user_config.h中的user_device_name)(fw_2.hex)
我在我的前一篇文章中提到了我能够使用0x70和0x52的智能片段验证0x1f000的智能片段
附件是截图
嗨jesus805,
最可能的原因可能是从闪光灯返回的数据不正确。您可以做些什么来验证,以验证用相同图像准备多级图像并通过keil运行相同的fw,然后在app_read_image_headers()函数中的app_spotar.c文件中放置一个断点。因此,当设备运行并连接到拟议电话应用程序时,按更新按钮。然后,固件应该达到断点,如果数据不正确地返回spotar_inval_product_hdr,则固件应该检查设备在访问闪存时读取的值
谢谢,PM_DIALOG.
感谢您的答复,
我已经尝试过这个(请参阅我的原始问题)。即使SPI从0x1f000读取的地址,我也可以获得C8 00作为签名。我想知道为什么这正在发生,我能做些什么来解决这个问题
嗨jesus805,
我想这可能是硬件问题,你get invalid data from the SPI Flash. Could you please try to probe the SPI lines? Do you have any of our development boards or you have designed a custom board with DA14580 chip? Also, I would suggest you to run the spi_flash example which is under projects\target_apps\peripheral_examples\spi\spi_flash SDK path in order to make sure that the SPI Flash working correctly.
谢谢,PM_DIALOG.