⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
12个帖子/ 0新
最后一篇
匿名(未验证)
SUOTA不工作

嗨,对话框中,

我们跑进了一个奇怪的问题。在SDK中尝试在Prox-Repoter示例中使用Suota。Suota已启用的固件运行正常,甚至从Suota应用程序上传新图像;但是,当设备重新启动固件时未更新,即它仍然从旧版本启动。Dev-Kit Pro的相同步骤和相同的FW工作正常,FW正在更新。

这里的问题是什么?

设备:
MT_dialog
离线
最后看到:三个月三个星期前
职员
加入:2015-06-08 34
嗨瓦拉希尔,

嗨瓦拉希尔,

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

为了调试它,您可以做些什么,以#define dg_configdebug_trace才能在其执行时打印引导加载程序打印的消息。我可以假设的是,当新图像下载时,引导加载程序在相应的偏移量下没有看到有效标题(0x70 0x61),因此它不会通过图像的更新(如果图像有效)或者擦除图像(如果图像无效),并且他用当前图像靴子。所以一个开始调试的好地方是ble​​_suota_loader。如果在Suota更新后,您还可以使用Smart Spippet验证。

由于MT_dialog

穆(未验证)
谢谢你的回复,在这

感谢回复,在这种情况下,如果启动后,设备不应该卡住?但是,我们的设备重新启动后不会被卡住并继续使用以前的FW。

MT_dialog
离线
最后看到:三个月三个星期前
职员
加入:2015-06-08 34
嗨瓦拉希尔,

嗨瓦拉希尔,

不,如果新更新的图像出现问题,BLE_SUOTA_LOADER将检查当前图像,如果当前映像是确定的,那么这就是将要执行的内容。如果装载机发现当前图像的错误也是错误的,则BLE Suota Loader将仅用Suota Service释放基本BLE应用程序。在任何情况下,设备都将与其中一个图像(新或当前图像)或使用简单的Suota项目进行宣传,它不会被卡住。

由于MT_dialog

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

嗨,对话框中,

所以我们已经通过工具箱检查了nvms_fw_update_part,并且没有写入它(仅在自定义dut的情况下)
这可能是什么原因?

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

嗨,对话框中,

这仍然与在自定义DUT上使用SUOTA有关(dev-kit仍然运行良好)

我们进一步调查了这一点,当我们使用调试并遵循写入闪存的闪存部分时,它顺利地告诉我们,我们写了我们需要编写的字节数(前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

穆(未验证)
闪光灯大小为1M

闪光灯尺寸为1m与DEV-套件相同。
我们正在为DUT和开发工具包运行相同的代码。

我们所做的是在SUOTA代码中使用ad_nvms_write()之后立即使用ad_nvms_read()。并打印了几个字节。
fw正在正确写入512的第一块数据,但之后没有写入。有时它走得更远,但随后什么也没写。所以当引导加载程序启动时,它不会得到有效的新图像头,因为在0处没有写入任何东西

这里可能有什么问题?

下面给出了一些UART打印:(正如你所能看到的,它在0x824开始出错

擦除标题
擦除0 36
在24 512上写入图像数据
在24点写入图像数据:[0]0 [1]80 [2]fd [3] 7 [4] 35 [5] 1 [6] 2 [7] 8
读取图像数据updt_part在24:[0] 0 [1] 80 [2] FD [3] 7 [4] 35 [5] 1 [6] 2 [7] 8
在224 512上写图像数据
在224上写图像数据:[0] 0 [1] 0 [2] FC [3] 7 [4] C0 [5] 0 [6] FC [7] 7
读取图像数据在224:[0]0 [1]0 [2]fc [3] 7 [4] c0 [5] 0 [6] fc [7] 7
在424 512上写入图像数据
在424上写入图像数据:[0]27 [1]e0 [2] 0 [3] 2b [4] 14 [5] da [6] 3 [7] 25
在424读取图像数据:[0]27 [1]e0 [2] 0 [3] 2b [4] 14 [5] da [6] 3 [7] 25
在624 512上写入图像数据
在624写入图像数据:[0]dd [1] 43 [2] 0 [3] 9b [4] ab [5] 42 [6] c5 [7] d1
读取图像数据UPDT_PART在624:[0]dd [1] 43 [2] 0 [3] 9b [4] ab [5] 42 [6] c5 [7] d1
在824 512上写图像数据
在824上写图像数据:[0] 0 [1] 2A [2] FB [3] DA [4] 10 [5] BD [6] 0 [7] 0
读取图像数据updt_part在824:[0] FF [2] FF [3] FF [4] FF [5] FF [6] FF [7] FF
在A24 512上写图像数据
在a24上写入图像数据:[0]7 [1]39 [2]a [3] 43 [4] da [5] 86 [6] 70 [7] 47
读取图像数据在a24:[0] ff [1] ff [2] ff [3] ff [4] ff [5] ff [6] ff [7] ff
在c24 512上写入图像数据
在C24上写图像数据:[0] 30 [1] B5 [2] 40 [3] 1 [4] 0 [5] 23 [6] 8C [7] 7
在C24上读取图像数据updt_part:[0] ff [2] ff [3] ff [4] ff [5] ff [6] ff [7] ff
擦除1000 36.
正在e24 512上写入图像数据
在e24上写入镜像数据:[0]62 [1]88 [2]13 [3]40 [4]6 [5]22 [6]5b [7] 9
读取图像数据updt_part上的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/20141118163626171181636261776.pdf.
它有类似的规格在开发工具包中使用的

穆(未验证)
是否有样品MEM-TEST

是否有一个样本的MEM-TEST程序,我们可以用来检查闪存的完整性吗?我们目前的所有DUT都持久化了拟议问题

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

嗨,对话框中,

我们弄清楚了这个问题。问题是我们的Flash未正确配置,并且主应用程序中的Custom_Config_Qspi_Suota和引导加载程序中的Custom_Config_QSPI没有正确的定义,因此正在加载BSP_Defaults中的默认配置,这与我们的设备的闪存不同的闪存。包括在主应用程序中的custom_config_qspi_suota中的以下行和引导加载程序中的custom_config_qspi,解决了问题:
/ / FLAH配置
#define dg_configflash_header_file“qspi_gd25lq80b.h”
#define dg_configflash_manufacturer_id gigadevice_id.
#define dg_configflash_device_type gd25lq_series.
#define dg_configflash_denty gd25lq80b_size.

我认为对话框应该包括UM-B-056软件开发人员指南中的正确设置指南。

这些设置适用于GD25LQ80B闪存芯片;请参阅UM-B-044软件平台参考的第10.2.1.4节,了解不同的闪光灯的正确设置