Skip to content

FOTA升级

概述

FOTA (Firmware Over-Thr-Air) 移动终端的空中下载软件升级, 指通过云端升级技术,为具有联网功能的设备提供固件升级服务, 用户使用网络获取终端系统升级包,并通过FOTA进行升级, 完成系统修复和优化

基本流程

FOTA服务从流程上具体可分为三大步骤:

  1. 差分文件制作,生成包含单个或多个镜像的差分文件
  2. 差分文件下载,以某种方式将差分文件下载至系统的FOTA区域
  3. 差分文件还原及更新:bootloader从差分文件中还原目标镜像和更新固件

FOTA基本流程示意图:

USB描述符

差分文件制作

编译OLD和NEW固件

编译OLD版本

  1. 在demo\demo_entry.c文件中打开fota demo

USB描述符

  1. 编译OLD版本

.\build.bat YM310_X09C.S61 demo

  1. 编译结果

out目录会生成对应的固件编译结果如下:

USB描述符

  1. 给固件重命名

USB描述符

(重命名只是为了测试方便,没有实际意义)

编译NEW版本

  1. 修改demo\demo_fota.c文件,打开DEMO_FOTA_NEW_VERSION宏

USB描述符

  1. 编译NEW版本

.\build.bat YM310_X09C.S61 demo

  1. 编译结果如下:

out目录会生成对应的固件

USB描述符

  1. 重命名

USB描述符

差分文件制作

打开FotaToolKitGUI.exe工具

USB描述符

  1. step1: 选择generator界面
  2. step2: 选择对应的json文件,716s.json
  3. step3: 选择差分包生成路径
  4. step4: 选择OLD文件
  5. step5:选择NEW文件
  6. step6: 开始差分
  7. step7: 差分结果显示

差分文件下载及固件更新

以某种方式将差分文件下载至系统的FOTA区域,目前有2种方式:

  1. 通过AT指令,将差分包下载至系统的FOTA区域
  2. 通过yopen_fota.h中的接口,将差分包下载至系统的FOTA区域

AT指令下载差分文件

先将OLD版本下载到开发板中

(注:开发板中的固件,必须和差分文件制作的OLD版本保持一致)

USB描述符

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

USB描述符

FOTA接口下载差分包

先将OLD版本下载到开发板中

(注:开发板中的固件,必须和差分文件制作的OLD版本保持一致)

USB描述符

下载差分包

目前fota demo是通过HTTP下载差分包, 并通过fota接口下载至系统的FOTA区域

  1. 将差分包放到HTTP服务器上

//测试时,需要将demo_fota.c中的URL改成自己的服务器

#define HTTP_URL "http://122.51.209.56:8000/default_delta.par"

  1. 设备开机后, 自动从HTTP上下载差分包并更新固件

​ nw_status=1 驻网成功后,通过HTTP下载差分包

USB描述符

  1. HTTP下载结束后, 通过fota接口将差分文件下载至系统FOTA区域

    代码:

USB描述符

  1. http下载结束log 信息

USB描述符

  1. 校验结束后, 重启设备, 自动进行固件更新

通过串口1, 显示固件更新进展

USB描述符

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

USB描述符

  1. 重启后模块log

USB描述符