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