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
