OTA远程升级

OTA添加新固件时如何区分不同产品的固件?

同一种产品的OTA升级固件是相同的,不同的产品型号需要更换产品id。

上传固件时,怎么选择固件类型?

包含MCU的硬件方案,升级MCU,升级类型选择MCU;升级模组时,升级类型选择通信模组

不包含MCU的硬件方案,使用模组做二次开发,这时模组其实也是MCU,ota功能里,我们将模组也看做MCU,升级类型选择MCU

固件版本号是什么?上传固件时,怎么填写固件版本号?

固件版本号:固件版本是设备的软件版本,格式由五个字符组成“xx.xx”,x为字符‘0’-‘9’,具体的版本号需要用户定义,唯一的要求是版本号需要递增,每次MCU版本更新,版本号一定大于上一个版本号。

上传固件时,固件版本号应大于模组运行版本和本地版本的固件版本号(模组运行版本号可在云端如图处查询,本地版本为设备下载的最高版本号),注意!MCU版本不支持降级操作。

验证固件时可能会出现的异常

1)准备下载,下载进度为0%

此状态会保持1分钟,1分钟后显示“准备下载超时”

产生此异常的原因可能是:

a)上传固件时升级范围选择的“部分版本升级”,未勾选运行版本号

b)固件类型选择错误,请参考本文档2.1节选择正确类型

请确保设备运行版本号在升级范围内,固件类型选择正确。

2)下载固件超时

产生此异常的原因是下载固件时网络异常,设备掉线,请检查网络状态。

3)下载完成,升级指令下发失败

产生此异常的原因是下发升级指令时网络异常,设备掉线,请检查网络状态。

4)设备重启超时

产生此异常的原因是固件已下载完成,且升级命令已下发,但设备未执行重启。请检查函数cloud_ota_upgrade_cb中重启设备的编码实现。

5)下载未完成,升级失败

固件下载过程中本地操作出错,可能是cloud_ota_chunk_cb函数返回了ACK_ERR,请检查cloud_ota_chunk_cb中的编码实现。

6)下载完成,升级失败

固件下载完成,设备执行重启后,未运行新版本固件上线,而是运行的老版本,请检查重启程序的引导逻辑

上线设备为01.02,发布了一个01.03的版本 ,为什么app检测不到新版本?

ota升级分两步,先下载后升级,设备检测到新版本会直接下载,app触发只是触发升级操作。(可参考文档《青莲云OTA升级操作流程》中固件下载的章节)

ota升级步骤:

iot_start后调用iot_ota_option_set(120.2048),设备连云成功两分钟内会进行一次新版本检测,,有新版本且版本号高于设备当前版本时就会下载。下一次再检测就是第二天了。

设备每天会随机一个时间点去云端检测是否有新版本固件,有新版本且版本号高于设备当前版本时才会下载。

确定固件下载是否完成,下载完成后app才会检测到新版本更新。

因此如果发布了更高版本的固件,请先确定固件是否下载完成。测试阶段可重启验证,两分钟内即可检测下载。

为什么ota固件在验证的时候能收到iot_ota_chunk_cb,正式发布后却收不到?

因为验证固件的时候本地版本已更新为最新的固件版本,需要进行本地降级的工作。如linux平台需要删除运行目录下的config文件即可。

Copyright & copy qinglianyun all right reserved,powered by Gitbook该文件修订时间: 2021-04-22 18:53:48

results matching ""

    No results matching ""