RDA8910CSDK二次开发:远程升级

1 名词解释

APP版本:应用固件
CORE版本:底层固件
新老版本的dfota.bin文件:新老版本用于升级包的生成
升级包:新老版本通过服务器或者网页差分工具生成的数据包,用于模块升级

2 升级原理

2.1 合宙服务器升级原理

客户将新版本上传到合宙的服务器上
升级时模块会发送携带当前APP和CORE版本信息的http请求
服务器会查找老版本,然后与新版本通过差分工具生成升级包
模块下载升级包后,使用升级接口进行升级

2.2 自定义服务器升级原理

客户通过网页差分工具,上传新老版本,将生成的升级包放到自定义服务器
升级时模块下载升级包,使用升级接口进行升级

3 升级流程

3.1 新老版本的生成

3.1.1 新版本的生成

 运行./demo_fotaNew.bat fota=app hex目录下会生成只升级APP的新版本
 运行./demo_fotaNew.bat fota=core hex目录下会生成只升级CORE的新版本
 运行./demo_fotaNew.bat fota=all hex目录下会生成APP+CORE的新版本

3.1.2 老版本的生成

运行./demo_fotaNew.bat fota=core hex目录下会生成老版本(只有自定义服务器才需要老版本(因为网页差分工具需要),使用合宙服务器不需要)

3.2 上传升级包

3.2.1 合宙服务器上传升级包

[合宙服务器上传升级包参考文档][http://doc.openluat.com/wiki/6?wiki_page_id=92]

3.2.2 自定义服务器上传升级包

打开http://test.community.openluat.com/chafen?tdsourcetag=s_pctim_aiomsg网页差分工具
上传新老版本,生成升级包
将升级包放入自定义服务器上

如图所示:
网页差分工具

4 下载升级包进行升级

升级包是由多个文件通过打包协议生成的(例如APP版本bin文件,CORE版本差分文件)
升级包打包协议

升级接口,根据应用层是否解析协议,将升级接口分成2套。

4.1 升级时,应用层解析打包协议

使用iot_ota_newapp和iot_ota_newcore接口,参考demo/fotaNew项目

4.2 升级时,应用层不解析打包协议

使用iot_fota_init,iot_fota_download,iot_fota_done接口,参考demo/fota项目

上次更新 2021-01-28