FOTA升级¶
概述¶
FOTA (Firmware Over-Thr-Air) 移动终端的空中下载软件升级, 指通过云端升级技术,为具有联网功能的设备提供固件升级服务, 用户使用网络获取终端系统升级包,并通过FOTA进行升级, 完成系统修复和优化
基本流程¶
FOTA服务从流程上具体可分为三大步骤:
- 差分文件制作,生成包含单个或多个镜像的差分文件
 - 差分文件下载,以某种方式将差分文件下载至系统的FOTA区域
 - 差分文件还原及更新:bootloader从差分文件中还原目标镜像和更新固件
 
FOTA基本流程示意图:

差分文件制作¶
编译OLD和NEW固件¶
编译OLD版本¶
- 在demo\demo_entry.c文件中打开fota demo
 

- 编译OLD版本
 
.\build.bat YM310_X09C.S61 demo
- 编译结果
 
out目录会生成对应的固件编译结果如下:

- 给固件重命名
 

(重命名只是为了测试方便,没有实际意义)
编译NEW版本¶
- 修改demo\demo_fota.c文件,打开DEMO_FOTA_NEW_VERSION宏
 

- 编译NEW版本
 
.\build.bat YM310_X09C.S61 demo
- 编译结果如下:
 
out目录会生成对应的固件

- 重命名
 

差分文件制作¶
打开FotaToolKitGUI.exe工具¶

- step1: 选择generator界面
 - step2: 选择对应的json文件,716s.json
 - step3: 选择差分包生成路径
 - step4: 选择OLD文件
 - step5:选择NEW文件
 - step6: 开始差分
 - step7: 差分结果显示
 
差分文件下载及固件更新¶
以某种方式将差分文件下载至系统的FOTA区域,目前有2种方式:
- 通过AT指令,将差分包下载至系统的FOTA区域
 - 通过yopen_fota.h中的接口,将差分包下载至系统的FOTA区域
 
AT指令下载差分文件¶
先将OLD版本下载到开发板中¶
(注:开发板中的固件,必须和差分文件制作的OLD版本保持一致)

下载差分文件¶
- step1: 选择upgrader界面, (集成了AT下载的指令)
 - step2: 选择716s.json脚本
 - step3: 选择差分文件,选择USB AT端口
 - step4: 开始下载
 - step5: 下载结果,校验通过,并重启设备
 
固件更新¶

FOTA接口下载差分包¶
先将OLD版本下载到开发板中¶
(注:开发板中的固件,必须和差分文件制作的OLD版本保持一致)

下载差分包¶
目前fota demo是通过HTTP下载差分包, 并通过fota接口下载至系统的FOTA区域
- 将差分包放到HTTP服务器上
 
//测试时,需要将demo_fota.c中的URL改成自己的服务器
#define HTTP_URL "http://122.51.209.56:8000/default_delta.par"
- 设备开机后, 自动从HTTP上下载差分包并更新固件
 
 nw_status=1 驻网成功后,通过HTTP下载差分包

- 
HTTP下载结束后, 通过fota接口将差分文件下载至系统FOTA区域
代码:
 

- http下载结束log 信息
 

- 校验结束后, 重启设备, 自动进行固件更新
 
通过串口1, 显示固件更新进展

- 固件更新完后, 自动运行NEW版本, 打印更新结果, 并清除fota标记
 

- 重启后模块log
 
