⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
12个职位/ 0个新职位
最后发表
匿名(未验证)
SUOTA不工作

嗨,对话框中,

我们遇到了一个奇怪的问题。尝试使用SUOTA在代理报告程序的例子在SDK。suota启用的固件运行良好,甚至上传新的图片从suota应用程序;然而,当设备重启固件没有更新,即它仍然从旧版本启动。相同的步骤和相同的FW在Dev-kit pro上工作良好,FW正在更新。

这里的问题是什么?

设备:
MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

因为这是一个问题,我想,在自定义板上,而不是在开发套件上,我只能猜测什么可能会出错,因为图像正在更新,就像你提到的,那么问题应该是由ble_suota_loader引起的。当设备重新启动,目前有任何问题图片下载然后它会引导ble suota装载机而不是以前的形象因为这应该尽快覆盖的新设备启动引导程序(奇怪的)。

为了调试它,您可以做的是#define dg_configDEBUG_TRACE,以便打印引导加载程序一执行就打印的消息。我可以假设是,当下载新形象引导装载程序并不认为一个有效的标题(0 x70 0 x61)相应的弥补,所以不经过图像的更新(如果图像是有效的)或擦除图像(如果图像是无效的),他的靴子与当前图像。因此,开始调试的一个好地方是ble_suota_loader。您还可以使用智能片段验证NVMS_FW_UPDATE_PART在SUOTA更新后是否有数据。

由于MT_dialog

穆(未验证)
感谢您的回复,在此

感谢您的回复,在这种情况下,设备不是应该启动后卡住吗?但我们的设备在重启后没有卡住,并继续使用之前的FW。

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

不,如果新更新的图像有什么问题,ble_suota_loader将检查当前的图像,如果当前的图像ok,那么这就是将要执行的。如果加载器发现当前的映像错误,BLE suota加载器将启动一个只有suota服务的基本BLE应用程序。在任何情况下,设备将广告与一个图像(新的或当前的图像)或一个简单的SUOTA启用项目,它不会卡住。

由于MT_dialog

穆(未验证)
嗨,对话框中,

嗨,对话框中,

因此,我们已经通过工具箱检查了NVMS_FW_UPDATE_PART,并没有在其上写入任何内容(仅在自定义DUT的情况下)。
可能的原因是什么?

穆(未验证)
嗨,对话框中,

嗨,对话框中,

这仍然是关于在自定义DUT上使用SUOTA(开发工具包仍然运行良好)

我们进一步调查这个,当我们使用调试和遵循写入flash SUOTA它顺利的一部分,告诉我们,我们有写我们需要写的字节数(前512),但是当我们打开智能片段工具箱NVMS_FW_UPDATE_PART是空的。

我们已经尝试在程序中使用自定义代码写入NVMS_FW_UPDATE_PART,并可以通过智能代码工具箱验证NVMS_FW_UPDATE_PART具有我们通过自定义BLE服务编写的准确值。我们使用ad_nvms_write()函数

我们遗漏了什么?我们需要做一些初始化吗?

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

这种行为没有明显的原因,没有国旗为了SUOTA应用程序正确写入适当的NVMS_FW_UPDATE_PART,因为这是复制SUOTA只运行定制的董事会,而不是开发工具包(我假设您正在使用的代码测试?)显然,这和你使用的h/w有关,而不是s/w。

由于SUOTA应用程序更新正确,我发现在写过程中有点困难,我的意思是,如果有什么错误在写,应用程序会提到一些错误写入外部内存,为了测试这一点开始更新过程和中间的更新智能片段的连接工具(为了确保flash也有写执行验证,更新图像分区是空的),试着读回的信息从该分区,如果它们不包含检查任何东西或它们确实包含图像的一部分(不要让ble_suota_loader运行,因为这可能会擦除数据)。

如果它们不包含任何东西,那么一定是闪光出了问题。如果它们确实包含了图像的一部分,那么头文件就出了问题,当加载器运行时,它会擦除整个更新后的图像。您还可以通过定义dgconfigDEBUG_TRACE检查引导加载程序的擦除情况,并检查引导加载程序从代码的哪一部分经过。

另外也有可能是分区表ble_suota_loader知道和应用程序使用的是不同的,例如如果您使用的是不同的大小flash和你有一个自定义的分区表,自定义分区,ble_suota_loader也应该意识到,因为加载器默认使用USE_PARTITION_TABLE_1MB_WITH_SUOTA,所以它将要获得的图像和数据都基于该分区。

由于MT_dialog

穆(未验证)
flash大小为1M

闪存大小为1M,与开发工具包相同。
我们为DUT和开发工具包运行相同的代码。

我们所做的是在SUOTA代码中使用ad_nvms_write()之后使用ad_nvms_read()。打印了一些字节。
fw正在正确写512中的第一个chunk,但是之后什么都没写。有时它写得更远,但随后就什么也没写了。因此,当引导加载程序启动时,它不会获得有效的新图像头,因为在0处没有写入任何内容

这里的问题是什么呢?

下面给出了一些UART打印(正如你可以看到的那样,它在0x824开始出错

擦除头
擦除0 36
在24 512上写入图像数据
在24上写Image Data:[0] 0 [1] 80 [2] fd [3] 7 [4] 35 [5] 1 [6] 2 [7] 8
读取图像数据UPDT_PART on 24:[0] 0 [1] 80 [2] fd [3] 7 [4] 35 [5] 1 [6] 2 [7] 8
在224上写入图像数据
224上写图像数据:[0]0 [1]0 [2]fc [3] 7 [4] c0 [5] 0 [6] fc [7] 7
读取图像数据UPDT_PART on 224:[0] 0 [1] 0 [2] fc [3] 7 [4] c0 [5] 0 [6] fc[7] 7 .读取
在424 512上写入图像数据
在424上写Image Data:[0] 27 [1] e0 [2] 0 [3] 2b [4] 14 [5] da [6] 3 [7] 25
读取图像数据UPDT_PART on 424:[0] 27 [1] e0 [2] 0 [3] 2b [4] 14 [5] da [6] 3 [7] 25
在624 512上写入图像数据
在624上写Image Data:[0] dd [1] 43 [2] 0 [3] 9b [4] ab [5] 42 [6] c5 [7] d1
读取图像数据UPDT_PART on 624:[0] dd [1] 43 [2] 0 [3] 9b [4] ab [5] 42 [6] c5 [7] d1
在824 512上写入图像数据
在824上写Image Data:[0] 0 [1] 2a [2] fb [3] da [4] 10 [5] bd [6] 0 [7] 0
读取图像数据UPDT_PART on 824:[0] ff [1] ff [2] ff [3] ff [4] ff [5] ff [6] ff [7] ff
在a24上写入图像数据
在a24上写Image Data:[0] 7 [1] 39 [2] a [3] 43 [4] da [5] 86 [6] 70 [7] 47
读取图像数据UPDT_PART on a24:[0] ff [1] ff [2] ff [3] ff [4] ff [5] ff [6] ff [7] ff
在c24 512上写入图像数据
在c24上写Image Data:[0] 30 [1] b5 [2] 40 [3] 1 [4] 0 [5] 23 [6] 8c [7] 7
读取图像数据UPDT_PART在c24:[0] ff [1] ff [2] ff [3] ff [4] ff [5] ff [6] ff [7] ff
擦除1000年36
在e24 512上写图像数据
在e24上写Image Data:[0] 62 [1] 88 [2] 13 [3] 40 [4] 6 [5] 22 [6] 5b [7] 9
读取图像数据UPDT_PART on e24:[0] ff [1] ff [2] ff [3] ff [4] ff [5] ff [6] ff [7] ff

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
你好,穆

你好,穆

你在定制板上使用的闪光灯是什么?和开发套件上的一样吗?

由于MT_dialog

穆(未验证)
我们使用的是GD25LQ80。

我们使用的是GD25LQ80。http://www.xinyahong.com/upLoad/product/month_1411/201411181636261776.pdf
它有类似的规格,作为一个用于开发工具包

穆(未验证)
有mems测试样本吗

是否有一个样本mems测试程序,我们可以用来检查flash的完整性?SUOTA问题在我们当前的所有dut中都存在

穆(未验证)
嗨,对话框中,

嗨,对话框中,

我们已经解决了这个问题。问题是我们的flash不正确配置和custom_config_qspi_suota主要应用程序和custom_config_qspi引导装载程序没有正确定义的默认配置bsp_defaults被加载比我们的设备有不同的闪光的闪光。包括主应用程序中的custom_config_qspi_suota和引导加载程序中的custom_config_qspi中的以下行,解决了这个问题:
/ / FLAH配置
#定义dg_configFLASH_HEADER_FILE“qspi_gd25lq80b.h”
#定义dg_configFLASH_MANUFACTURER_ID GIGADEVICE_ID
#定义dg_configFLASH_DEVICE_TYPE GD25LQ_SERIES
#定义dg_configFLASH_DENSITY GD25LQ80B_SIZE

我认为DIalog也应该在UM-B-056软件开发人员指南中包含适当的设置指南。

这些设置是针对gd25lq80b闪存芯片的;请参阅UM-B-044软件平台参考的10.2.1.4节,了解不同flash的适当设置