SUOTA教程错误

了解更多常见问题教程

20个帖子/ 0个新帖子
最后发表
TMiranda
离线
最后看到:2年2个月前
加入:2017-11-16 18:00
SUOTA教程错误

嗨,家伙。

我使用DA14585基本开发工具包与6.0.6 SDK,试图运行SUOTA教程(第6号)。我遇到了一些问题,我想问。

1.DA14585 Software & Tools页面上没有DA1458x_SUOTA_Multipart_Binary_Generator_0.rar。我从DA14583下载的。这有什么原因吗?

2.SUOTA教程要求您使用ble_585_sw_version.h文件来生成。img文件。这个文件在SDK 6.0.6中不存在(或者我无法找到它)。

3.在燃烧SmartSnippets工具上的multi_part.bin后,使用JTAG,并重置我的板,没有发生在SmartSnippets工具(没有重置确认)。除此之外,我在iPhone的SUOTA App中找不到这款设备。(如果我再次调试代码,我可以找到它,但我认为这样做有问题)。

4.当我尝试上传fw_image_2。img到我的设备,使用SUOTA应用程序,我得到一个“错误:无效的产品头”。所以,我无法完成教程。

任何建议吗?
提前谢谢。

关键词:
设备:
MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
嗨TMiranda,

嗨TMiranda,

  1. 这样做的原因是581/583和585/586的版本对于SUOTA过程几乎是相同的,这意味着您可以使用相同的文件来生成多部分。
  2. 在教程中作为ble_585_sw_version.h文件引用的文件是SDK6.0.6中的sdk_version.h文件,应该被更正,谢谢提示。
  3. 在flash中刻录文件后,没有从Smart Snippets工具的重置确认,您只能通过Power Profiler(这是仅为使用UART接口的专业工具包可用)看到设备广告。如果您不能看到这一点,那么在多部分二进制文件的生成过程中出现了问题。
  4. 由于从上一个问题,你不能看到设备广告后,你烧伤的多部分在你的闪光灯,你如何可以更新图像?如果你试着只从uart的JTAG下载,没有二级引导加载器,这是不工作的,因为SUOTA期望在flash中找到一些额外的信息,以执行SUOTA。

你所经历的原因可能是图像中存在的偏移量,因为585支持更大的图像,这意味着你必须在flash中增加偏移量的大小。因此,打开project_multipart_binary_v2.py,并像下面这样修改以下变量的值:

MEM_LOC_FOR_FW_1_IMG= " 0 x8000 "
MEM_LOC_FOR_FW_2_IMG= " 0 x1f000”
MEM_LOC_FOR_PRODUCT_HEADER= " 0 x38000”
这样可以让你的图片之间有更多的空间。
由于MT_dialog
TMiranda
离线
最后看到:2年2个月前
加入:2017-11-16 18:00
谢谢你这么快的答复。

谢谢你这么快的答复。

1 -作为一种意见,我建议您将该文件添加到14585可下载内容。这不会伤害任何人,而且可能会避免一些问题。
3 -正如我所说,我只有DA14585基础开发工具包,所以我怎么能确定它的工作,因为没有办法看到设备广告?
4 -我想这就是问题所在。烧SPI flash后,我无法看到SUOTA应用程序上的设备广告。我已经尝试了您所显示的新变量,但没有改变。我还在SPI Flash内存可引导部分上尝试了这两个选项。

提前谢谢。

MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
嗨TMiranda,

嗨TMiranda,

  1. 感谢您的提示,稍后教程将被适当更新。
  2. 如果你不有一个职业装备,因此你不能使用分析器,那么你唯一的选择是使用SUOTA应用程序或一个通用BLE应用程序,请注意,为了使SUOTA android / ios应用程序显示设备作为可用SUOTA设备你需要把SUOTA UUID的广告字符串。这就产生了另一个问题,你使用哪个fw来构建multipart.bin文件?你是否使用了SUOTA功能,比如ble_app_ota ?
  3. 请使用ble_app_ota演示来执行SUOTA过程,如果这不能与python脚本为您工作,尝试遵循AN-B-010 DA14580使用SUOTA.pdf的说明,它是580文档,但正如我提到的过程是相同的。还要记住,必须为图像和标头使用不同的偏移量:图像1的偏移量为0x8000,图像2的偏移量为0x1f000,标头的偏移量为0x38000。

由于MT_dialog

TMiranda
离线
最后看到:2年2个月前
加入:2017-11-16 18:00
2.事实上,我可以找到

2.事实上,我可以使用LightBlue和iOS的SUOTA找到SUOTA设备,但只有当我在Keil的调试模式下运行时。没有发生什么,当我烧它在SPI内存和重启板。为了构建multipart.bin文件,我只使用了教程中显示的输入文件,即fw_1。十六进制,fw_2。运行ble_examples/prox_reporter.uvprojx命令生成Hex、fw_1_version和fw_2_version。secondary_bootloader。我使用的十六进制文件已经出现在SUOTA_Multipart_Binary_Generator/input文件。

3.我将在这里运行并发布。

事实上,我刚刚用了一个专业工具包,我遇到了和以前一样的问题。我将尝试使用ble_app_ota运行它并在这里更新。

编辑:
我也有同样的问题。使用ble_app_ota生成fw_multi_part_spi.bin文件不会改变任何东西。我找不到我的设备后烧进SPI flash和复位板。我正在使用功率配置文件,我可以看到板应该是启动和运行(我已经重置了它几次)。

TMiranda
离线
最后看到:2年2个月前
加入:2017-11-16 18:00
现在我运行

所以,现在我用DA14580DEVKIT中的DA14585 Pro-Kit运行示例。通过使用SUOTA跟踪DA1458x,我找到了上一个错误的来源
AN-B-10。问题是,在文件bootloader.h和app_spotar.h的PRODUCT_HEADER_POSITION中使用的值是错误的。我已经将它更改为0x1f000,错误消失了。

现在,我可以烧Spi Flash内存,重置我的设备,我可以看到它在SUOTA应用程序上的广告,并连接到它。每当我尝试更新我的新固件版本,使用应用程序,一个新的错误出现,“相同的图像错误”。我已经读了DA1458x使用SUOTA AN-B-10时有关这个错误的说明,但我仍然很困惑。我尝试过不止一次通过应用程序上传图片,并到不同的图像银行,但迄今为止没有任何工作。再问几个问题。

1 -银行不应该有不同的形象吗?(我修改了固件版本和时间戳)
2 -我可以在哪里找到关于两个内存银行实现的更多信息?
3 -我如何通过软件做一个SUOTA ?我不想在我的未来应用程序中使用该应用程序,也不像在教程中显示的USB加密狗。雷竞技安卓下载

MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
嗨TMIranda,

嗨TMIranda,

  1. 我不明白这个问题,fw会检查图像,当第一次烧多部分在flash中,你可以使用相同的图像,以避免相同的图像错误。
  2. 这两个内存银行是您声明的不同地址,没有解释SUOTA内部工作的文档,您可以查看SUOTA实现和在secondary_bootloader项目中。
  3. 你是说编写自己的主机连接到外设并更新映像?android和iOS的源代码可以在支持网站上找到,在eclipse中还有一个windows应用程序的例子,它执行SUOTA更新,通过UART与585 BLE模块通信。您将能够在SDK 6.0.6中的DA14585_SDK\6.0.6.427\projects\host_apps\windows\suota中找到源代码。

由于MT_dialog

TMiranda
离线
最后看到:2年2个月前
加入:2017-11-16 18:00
1 -就像AN-B里说的

1 -正如在AN-B-010 DA14580使用SUOTA_0文件在18-19页所说,fw_multi_part_spi.bin文件是通过两个fw_1创建的。img和fw_2.img。这将被编程在SPI内存中,其中将包含次要引导加载程序(0x00000), fw_1.img(0x80000), fw_2.img(0x13000)和产品头(0x1F000)。我的fw_1。img和fw_2。img应该是不同的,因为我已经改变了代码(我已经改变了设备的名称在user_config.h),固件版本(sdk_version.h)和时间戳(sdk_version.h)。正如你所说,我现在使用相同的图像(fw_1。Img和一个fw_1_copy。创建multi_part_spi.bin。我仍然有一个相同的图像错误时,我试图上传一个不同的图像。

2/3 -谢谢,我稍后会检查的。

MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
嗨TMiranda,

嗨TMiranda,

测试这与ble_app_ota相同的版本在SPI的multilipart .bin银行,我不能复制你的报告,您确定您没有混淆头文件和您下载的图像有一个不同的图像头版本与位于特定银行或它与至少两个银行之一不同吗?

由于MT_dialog

TMiranda
离线
最后看到:2年2个月前
加入:2017-11-16 18:00
我在尝试代理

我在找代理记者。现在我已经更改为ble_app_ota。

下面是我在SPI内存中烧录的前两个图像(相同的图像)和fw_multi_part_spi.bin生成的输出。

############# 免费的脚本创建DA1458x多声部的形象 ###################
################### 版本:sw_v_0000.00003 ##################################
##################### 2017年开发Janua #######################################
hex2bin v1.0.10,版权所有(C) 2012
最低地址= 003C0000
最高地址= 003C6927
Pad Byte = FF
8位校验和= A8
hex2bin v1.0.10,版权所有(C) 2012

最低地址= 003C0000
最高地址= 003C6927
Pad Byte = FF
8位校验和= A8
hex2bin v1.0.10,版权所有(C) 2012

最低地址= 003C0000
最高地址= 003C18A7
Pad Byte = FF
8位校验和= 98

信息::fw_image_1。Img成功创建,没有数据加密。
信息::fw_image_2。Img成功创建,没有数据加密。创建图像的输出\ fw_multi_part_spi.bin……
[00000000] AN-B-001 SPI头部
[00000008]引导装载程序
(000018 b0)填充(FF)
(00008000)“输出\ fw_image_1.img”
(0000 e968)填充(FF)
(00013000)“输出\ fw_image_2.img”
(00019968)填充(FF)
[0001 f000]产品标题

Fw_multi_part_spi.bin创建成功。#####################################################################################

正如你所看到的,两个图像(fw_1和fw_2,我想)的校验和是相同的,所以它应该是相同的图像。

为了创建第二个图像,我更改了设备的名称和sdk_version信息,并按照教程中所述的方式生成。我已经用iTunes向我的手机发送了第二张图片的两份副本。下面是第二个图像的python脚本的输出。

############# 免费的脚本创建DA1458x多声部的形象 ###################
################### 版本:sw_v_0000.00003 ##################################
##################### 2017年开发Janua #######################################
hex2bin v1.0.10,版权所有(C) 2012

最低地址= 003C0000
最高地址= 003C692F
Pad Byte = FF
8位校验和= 8F
hex2bin v1.0.10,版权所有(C) 2012

最低地址= 003C0000
最高地址= 003C692F
Pad Byte = FF
8位校验和= 8F
hex2bin v1.0.10,版权所有(C) 2012

最低地址= 003C0000
最高地址= 003C18A7
Pad Byte = FF
8位校验和= 98

信息::fw_image_1。Img成功创建,没有数据加密。
信息::fw_image_2。Img成功创建,没有数据加密。

创建图像的输出\ fw_multi_part_spi.bin……
[00000000] AN-B-001 SPI头部
[00000008]引导装载程序
(000018 b0)填充(FF)
(00008000)“输出\ fw_image_1.img”
(0000 e970)填充(FF)
(00013000)“输出\ fw_image_2.img”
(00019970)填充(FF)
[0001 f000]产品标题
Fw_multi_part_spi.bin创建成功。
#####################################################################################

同样,相同的校验和,因为我用相同的。hex文件创建两个图像,这与存储在内存中的不同。当我试图使用SUOTA应用程序上传他们在我的手机上,我仍然得到相同的错误信息。我不知道我做错了什么。

MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
嗨TMiranda,

嗨TMiranda,

我觉得你已经误解了SUOTA是如何工作的,你应该上传的图片手机为了执行SUOTA,使用相同的图像,以创建multipart.bin文件(重命名fw_1.bin fw_2.bin并执行python脚本)。在创建第二个映像之后(不要再运行python脚本),只需使用更新后的二进制文件和更新的头,并通过mkimage.exe通过下面的命令mkimage.exe single your_binary.bin your_fw_version.h new_image。Img,将创建的图像,你应该上传到你的手机,并使用该fw进行更改。如果你仍然得到错误调试代码,以便可以看到实际的设备读取和promts你信息,确保您使用O0优化为了能够读取变量,燃烧的spi multipart.bin从凯尔和运行相同的项目,您应该检查功能是app_read_image_header (),这样您就可以检查代码读取的内容,并使用该消息提示您。

由于MT_dialog

TMiranda
离线
最后看到:2年2个月前
加入:2017-11-16 18:00
你好,

你好,

我已经完成了上面提到的步骤,做了一点修改——我需要运行hex2bin.exe程序来创建一个二进制文件,因为构建过程只返回一个十六进制文件,然后运行mkimage.exe文件。我仍然会得到相同的错误。你能告诉我在哪里可以找到更多关于调试的信息吗?我只看过教程的例子,我不知道如何执行它。我做了一个视频,展示了我正在一步步地做什么。链接如下。

https://www.youtube.com/watch?v=xkdkw0cdwKo
https://www.youtube.com/watch?v=22lIO55nfvU

提前谢谢。

MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
嗨TMiranda,

嗨TMiranda,

没有文档,描述一步一步一步调试方法,你可以做的是有多部分图像的flash和运行图像应该从凯尔为了调试启动它,就像我在以前的文章描述它,我也表示您应该检查的功能。另外,你所附的视频似乎是不可用的。

由于MT_dialog

TMiranda
离线
最后看到:2年2个月前
加入:2017-11-16 18:00
在视频中

特定模式下的视频,我改变了,你们现在可以看到。

MT_dialog
离线
最后看到:1个月前3个星期前
工作人员
加入:2015-06-08 34
我看不出有什么问题

我没有看到任何错误的视频,你已经上传,我已经附加了一个。zip文件与OTA项目包括两个不同的OTA支持项目的二进制文件fw_1.bin和fw_2.bin连同他们的头文件和相应的图像fw_1。img和fw_2。以及multi_part.bin文件(包含fw_1.img的两个映像)。现在,如果你刻录了flash中的multi_part.bin文件,然后只复制fw_2。Img在你的手机上,你就可以上传fw_2。Img到设备。所以请尝试这样做,然后如果这是成功的,你可以尝试通过提供的二进制文件生成图像,也许这将帮助你跟踪问题。

由于MT_dialog

附件:
离线
最后看到:4个月2周之前
加入:2018-04-19 13:53
你好,Dialog,你确定

嗨,Dialog,你确定这个suota没问题吗?我已经改变了img和sw版本很多次,结果总是“相同的图像错误”,我想可能引导加载程序总是检查相同的图像,但不是我上传的?
这个问题不仅仅发生在米兰达先生身上,我不知道他或她是否解决了这个问题。

离线
最后看到:4个月2周之前
加入:2018-04-19 13:53
我使用下面的命令

我使用以下命令'mkimage.exe single ncl_1.bin ncl_1_version.h ncl_1。Img '创建Img文件,然后使用下一个命令'mkimage.exe multi spi secondary_bootloader_585.bin ncl_1。img 0 x4000 ncl_1。img 0x1B000 0x38000 ncl_1_osta .bin'创建bin文件与引导加载程序,然后将其刻录到flash,然后我可以找到现在的设备。
接下来,我将sdk_version更改为一个新版本(更改sdk_version,SDK_VERSION_DATE,SDK_VERSION_STATUS)并重新命名为ncl_2_version.h,重建一个新的bin文件,exec命令'mkimage.exe single ncl_2.bin ncl_2_version.h ncl_2。创建第二个Img文件。
现在我需要img文件ncl_1。img和ncl_2。Img,我复制文件信息我的iPad通过itunes,当我上传ncl_2。我总是得到msg '相同的图像错误'。

PM_Dialog
离线
最后看到:37分24秒前
工作人员
加入:2018-02-08 11:03
你好,嗯,

你好,嗯,

我们正在尝试复制你的问题,以便给你解决你的问题的指示。我们会尽快让您知道。

谢谢,PM_Dialog

mrlambchop
离线
最后看到:1年4个月前
加入:2017-02-01 07:35
我遇到了同样的问题

我在rcu_585应用程序中也遇到了“相同的图像”错误。

我可以使用软件指南附录C中的说明运行mk_suota_img.bat,生成rcu_585_suota.bin。我可以flash bin与SmartSnippets,并看到它在SUOTA应用程序与我的软件版本。

然后我清理我的项目,用新版本和构建日期修改“user_config_sw_ver.h”,重新构建,然后再次使用“mk_suota_img.bat”生成一个新的.img文件。我加载新版本的。img文件到我的android手机,但得到“相同的图像”错误时使用SUOTA应用程序。

IM_Dialog
离线
最后看到:3天12小时前
加入:2016-12-06 22:25
你好,

你好,

我自己尝试了一下,并让它工作了(使用SUOTA App在Voice RCU开发套件中升级固件)。有几件事需要检查:

-您需要在user_config_sw_ver.h文件中更新版本号和构建日期。
-如果您注释掉原始版本和日期,当您更新这些值时,请确保最新的信息出现在文件的顶部。以下工作:

#定义SW_VERSION“v_v_7.141.3.18”
#define SW_VERSION_DATE "2018-11-08 17:04"

/ / # define SW_VERSION“v_v_6.140.2.17”
//#define SW_VERSION_DATE "2017-10-07 16:03"

但这并不像生成图像的脚本忽略注释,只使用它找到的第一个版本和日期,留给你一个包含旧信息的图像(和相同的图像错误的可能性):

/ / # define SW_VERSION“v_v_6.140.2.17”
//#define SW_VERSION_DATE "2017-10-07 16:03"

#定义SW_VERSION“v_v_7.141.3.18”
#define SW_VERSION_DATE "2018-11-08 17:04"

希望这有助于

IM_Dialog