目录
基础资料
基于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代码。
升级采用csdk见project目录下的example_fota_iot,其默认目录结构为:
为了正常升级,源代码中example_main.c相关参数需要调整。
本例使用合宙云平台,需要调整的参数为PROJECT_KEY,可在平台注册后自动生成,复制后修改源代码中相应内容:
注册地址:合宙云平台
将实际的PROJECT_KEY替换入源文件:
编译建议采用原始目录结构,可不用进行单独配置,直接进行编译。
在csdk的luatos-soc-2022的地址栏中输入cmd,回车,可以在该目录下打开cmd命令行窗口,路径默认为luatos-soc-2022(CSDK根目录)。
2.1 编译底包
先编译FOTA_IOT升级的底包文件,luatos-soc-2022(CSDK根目录)下输入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-2022(CSDK根目录)下输入build example_fota_iot
或者build example_fota_iot disable -v
命令,按回车键进行升级文件的编译:
为便于区分,将新生成的升级文件名改为:example_fota_iot_2.binpkg
2.3 Fota CSDK样例使用说明
FOTA(Firmware 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.ppp(m,n 和 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】