Air780E|FOTA|IOT|FotaToolkit|空中下载软件升级|云平台|CSDK|差分包升级|编译|官方demo|学习(1):example_fota_iot差分包升级示例

目录

基础资料

探讨重点

硬件准备

​内容参考

2.1 编译底包

2.2 编译升级包

2.3 Fota CSDK样例使用说明

2.4 差分包生成

三、差分包升级测试流程

基础资料

基于Air780E开发板:Air780E文档中心

简介:CSDK开发

探讨重点

本系列主要探讨利用合宙平台进行fota_iot差分包升级的基本操作、编译及上传,升级等操作。

硬件准备

Air780E开发板1块,SIM卡1张。

​内容参考

官方wiki:https://doc.openluat.com/wiki/40?wiki_page_id=4615

一、安装xmake

1、下载xmake

xmake下载地址Releases · xmake-io/xmake · GitHub

最新版本:v2.7.6

2、安装xmake

(1)、建议安装到C:\Program Files下,其他目录可能会出问题;
(2)、勾选加入到系统环境变量选项

如果下载的是解压缩版本,需要手动加入系统环境变量:

windows10为例,打开系统-高级系统设置-环境变量

 编辑系统变量,将xmake的根目录加入path

打开cmd窗口,测试(非常重要!!!)

执行:xmake –version,出现如下界面,安装成功。

后续编译过程中,需要保持联网状态,以便根据编译需要自动下载工具链等相关软件。 

如不具备联网条件,请参考手动安装示例。

二、编译项目

Air780E模组基于移芯EC618平台设计研发的新款4G Cat.1模组。

CSDK软件仓库地址为:

https://gitee.com/openLuat/luatos-soc-2022

本文主要介绍Air780E模组基于官方iot平台进行FOTA模式升级的相关内容,采用官方CSDK代码。

升级采用csdkproject目录下的example_fota_iot,其默认目录结构为:

为了正常升级,源代码中example_main.c相关参数需要调整。

本例使用合宙云平台,需要调整的参数为PROJECT_KEY,可在平台注册后自动生成,复制后修改源代码中相应内容:

注册地址:合宙云平台

将实际的PROJECT_KEY替换入源文件:

编译建议采用原始目录结构,可不用进行单独配置,直接进行编译。

csdkluatos-soc-2022的地址栏中输入cmd,回车,可以在该目录下打开cmd命令行窗口,路径默认为luatos-soc-2022CSDK根目录)。

 

2.1 编译底包

先编译FOTA_IOT升级的底包文件,luatos-soc-2022CSDK根目录)下输入build example_fota_iot或者build example_fota_iot disable -v命令,按回车键进行编译,如下图所示:

 3、编译中间文件存放在build目录下;

4、编译成功后生成的可烧录binpkg文件、日志database文件、map文件、elf文件存放在out目录下,如下图所示:

example_fota_iot.binpkg为第一次生成的刷机文件,为便于区分,可修改文件名为:example_fota_iot_1.binpkg

2.2 编译升级包

 准备升级包文件,本例中仅做测试,修改PROJECT_VERSION 为"2.0.0":

 增加测试代码:

LUAT_DEBUG_PRINT("hello world!1+10=%d", 1+10); --测试debug代码

源文件修改完成后,在luatos-soc-2022CSDK根目录)下输入build example_fota_iot或者build example_fota_iot disable -v命令,按回车键进行升级文件的编译:

 

为便于区分,将新生成的升级文件名改为:example_fota_iot_2.binpkg

2.3 Fota CSDK样例使用说明

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

注意:

  • 升级时要校验请求时的代码是否和生成差分包所用的旧版本代码是否一致。不一致的话日志会出现:image_verify error,校验失败而不能升级。
  • 差分包地址和域名也是代码的一部分会参与差分包的生成,所以要确保在新旧版本中保持一致。

2.4 差分包生成

手动生成差分包的过程使用移芯芯片平台提供的的差分工具,

差分工具下载链接
FotaToolkit_V2.0.9.0.zip

打开 FotaToolkitGUI,选择 Generator 标签页,五步即可实现差分文件制作。

 1 选择对应产品项目的配置文件,如 config/ec618.json
2 设置差分文件的名称及路径(默认路径为 FotaToolkitGUI 所在目录,文件名为 default_delta.par),然后选择差分文件所需的基线镜像文件和目标镜像文件;
3 该步骤可选(一般情况下不需要改变)。添加基线和目标镜像的版本号,具体格式为 Vmmm.nnn.pppmn p 为数字 0-9,分别表示镜像文件的大、小和补丁版本号),需要注意的是新旧两个版本号不能相同;此外,该版本号仅仅是为了追踪和记录新旧镜像文件的信息,不会对实际镜像文件版本号进行匹配和校验;
4 根据步骤 2)中的新旧镜像文件的属性(相关镜像属性已在 JSON 文件中配置),选择相匹配的 FLASH 配置信息;
5 以上步骤完成后,直接执行“START”制作差分文件即可。显示窗口会实时输出制作过程的所有 LOG 信息,制作完成后会弹窗提示成功还是失败,具体的制作结果以及目标文件的详细信息也会输出到显示窗口中。
※※说明※※
后缀名(.par)为移芯 FOTA 差分方案的默认文件后缀,设置文件名称时Fota工具会自动追加。

差分包上传前需要将default_delta.par的扩展名改为.bin

三、差分包升级测试流程

使用烧录工具烧录旧版本的binpkg,烧录界面按住boot键,再按reset键,开始烧录。

完成后按reset键重启,显示当前底包版本为1.0.0.

Imei码后期需要用到,自动识别。也可在芯片在上盖丝印找到。

上传差分包到合宙云服务器:

 

提交后指定设备,输入imie码:

重启设备开始更新:

成功更新后可看到image_verify ok。

reset重启模块,可以看到已更新为2.0.0版本,升级文件中的测试代码显示正常:

升级成功后第二次再次请求同一升级包由于不匹配会提示升级包校验错误,不予升级。

当前模块的底包为2.0.0版本,故不能再次使用原差分包升级,提示:

如果一天内如多次升级,系统会触发自动锁定,并自动设置为不允许升级,需要手动解除锁定:

查看日志可以使用上面截图中的 Luatools工具下载链接Luatools_v2.exe

也可以使用下面EPAT工具监测输出日志,EPAT工具下载链接EPAT_V1.3.207.392.zip

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打酱油的工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值