嗨,对话框中,
我在一个自定义的板上工作了一段时间,现在,我使用的是macronix flash。
我确实设法让suota使用SDK 1.0.8工作。在我的定制板上。
我确实检查了论坛,我的问题真的类似于下面的一个:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。.
我使用一个自定义的分区表,我更新到ble_suota_loader项目以及宏ronix flash文件如下:
#定义dg_configFLASH_HEADER_FILE“qspi_mx25r3235.h”
#定义dg_configFLASH_MANUFACTURER_ID MACRONIX_ID
#定义dg_configFLASH_DEVICE_TYPE MX25R_SERIES
#定义dg_configFLASH_DENSITY MX25R3235_SIZE
我还检查dg_configIMAGE_FLASH_OFFSET参数是否与我的分区表匹配。
当更新图像通过智能应用程序,一切似乎很好,但然后加载程序重启,永远不会跳转到我的代码。
我用自己的代码和pxp_reporter项目进行了尝试,得到了相同的结果。
我用pro dk试过,结果也是一样。
它似乎图像头损坏或没有复制。
我应该去哪里看?
谢谢你的帮助。
马修
设备:
嗨MatthieuW,
在论坛帖子的意思指的是用户没有定义自定义flash使用,因为您正在使用一个flash它不支持从SDK在默认情况下,你将创建适当的司机的flash使用从您的自定义,我想你已经这样做了(请看看自述文件。md文件,以便重复检查程序,以便在SDK上添加自定义flash)。关于你使用开发套件的事实,你的意思是你使用了它,但没有使用SDK和开发套件已经支持的flash更新设备的fw,还是你在开发套件上附加了自定义flash ?因为我已经检查使用接近SUOTA启用sw,我可以执行正确的更新。
如果你认为这是一个图像头的问题,那么你可以检查(通过SUOTA上传新fw之后),从Smart Snippets QSPI分区表工具的fw和图像头,并在更新发生后从flash中读取数据。
由于MT_dialog
你好,
我做了很多测试
我可以使用pro devkit上的OTA功能与一个da14681与pxp记者项目和我自己的项目。
在我自己的板子上实现了da14680内部flash,我只能使用ota与pxpreporter项目。
当发送我自己的项目(与我发送给pro DK的img相同)时,对话框会不断重启,就像内存中没有更新重置向量一样。
然而奇怪的是,
我在项目中使用附加的分区表(ble_suota_loader、pxp_reporter和mine)。
由于我的应用程序需要更多的空间,我将NVMS_PRODUCT_HEADER_PART移到了0x22000。
如果我的理解是正确的,我必须在应用程序中定义dg_configIMAGE_FLASH_OFFSET相应的nvms_exec_part地址(在我想要更新的项目中),并且ble_suota_project必须有相同的分区表有我想要更新的项目。
问题是,pxp_reporter ota只在我定义了不匹配我的分区表0x20000的image_offset时工作。
我擦除flash之前收费任何项目,以更新分区表。
我是否遗漏了什么或者误解了什么?
谢谢你的帮助。
马修
嗨matthiew,
我从你附加的分区表中很困惑,你放置NVMS_FW_EXEC_PART的偏移量(这是设备在运行引导加载程序后将运行的实际fw)是0x25000而不是0x22000。从分区表中,您增加了引导加载程序将要存储的空间。请查看UM-B-056-DA1468x Software Developer Guide.pdf在9.1.4 SUOTA闪存布局,以检查什么去哪里,并修改分区表,因为你认为合适。如果你需要为你的NVMS_FW_EXEC_PART(即fw运行的位置)提供更多的空间,你只需要修改特定分区下的分区,这样你就不必为一个不同的地址构建。给你信息你也建造申请其他不同地址0 x20000并不意味着该工具会自动燃烧它在这个位置,你将不得不改变脚本为了形象被initial_flash.bat在适当的补偿。
由于MT_dialog
你好,
抱歉给你们造成了误会,
现在我对分区有了更好的理解,
因此,我现在使用附加的分区,并将flash_offset设置为0x20000。
我不明白的是为什么我能表演
- suota与我的ble_suota_loader和pxp_reporter和我自己的项目上的pro dk。
-和完全相同的项目suota只与PXP记者在我自己的董事会。
我检查了调试器,重置向量没有很好地复制在引导加载程序boot_application的末尾。
肯定是缺少了某种结构。
你有什么提示吗?
提前谢谢。
马修
嗨matthieW,
您所附加的分区表与SDK示例中使用的分区表相同,关于你能够运行的自定义应用程序和pxp_reporter定制董事会专业委员会,只有pxp_reporter没有太大的帮助,我不知道任何SDK配置,这将使项目董事会依赖,你能分享一些更多的细节吗?你执行SUOTA过程,接下来会发生什么与你的董事会,我的意思是更新后,你看到ble_suota_loader应用程序被启动,而不是自定义应用程序?您可以在SUOTA过程之后调试ble_suota_loader,并检查加载器在哪里无法从更新后的映像启动(检查ble_suota_loader()项目的boot_application()函数)。
由于MT_dialog
你好,
我知道这很让人困惑。
我的电路板用集成闪光灯实现了DA14680,而Pro DK使用外部闪光灯实现DA14681,但闪光灯与Winbond相同的参考。
我也使用内部rc时钟低功耗,因此没有32k石英目前。
除此之外,外部外设是不同的(在i2c和spi总线上),但这应该无关紧要。
我更新了我的原理图。
当你想要表演索塔舞的时候
-首先我擦除flash内容与qspi擦除脚本。
-然后我的程序ble_suota_loader
-然后我更新应用程序使用对话suota smartapp。
-然后我重启板和suota加载程序更新新的程序到固件执行板,更新重置向量到ram和重置
-但这里不是启动我的应用程序的suota加载器启动,作为更新头被加载器擦除引导应用程序直接跳转到更新的重置向量和重新引导,一次又一次。
似乎复位向量没有被启动应用程序更新,或者我的应用程序的起始地址不是很好。
我不知道这是从哪里来的,也不知道从哪里去找。
马修
嗨matthieuW,
这确实是非常奇怪,你试图运行自定义应用程序自定义董事会没有SUOTA配置(只是作为常规项目,检查如果重置的弗兰克-威廉姆斯导致anykind迫使ble_suota_loader执行一遍又一遍),你能看到设备操作正确吗?另外,ble_suota_loader有一个调试特性(dg_configDEBUG_TRACE),也许你可以设置它,这将提供一些关于正在发生什么的额外信息。
我也不明白你描述关于复位向量和标题,在完成更新设备将重启,引导装载程序将再次运行为了复制的图像更新和复制图像的头一部分NVMS_EXEC_PART NVMS_IMAGE_HEADER_PART和形象。这只会发生一次,这取决于更新分区中的fw是否是新的。复制后更新的图像在NVMS_EXEC_PART设备将中断矢量表验证他并复制表在内存地址0后重置设备将启动应用程序有一个矢量表包括复位处理程序对应于您的应用程序。应用程序将从何处启动的中断向量表取决于映像上的IVT是什么,这是复制到RAM中的内容。检查dg_configDEBUG_TRACE,这将打印出您的图像位置和当前IVT的重置向量。
由于MT_dialog