功耗低、性能好、联网快——基于移芯ec618平台的合宙低功耗4g-cat.1系列模组,支持标准at/luatos/c-sdk多样化开发方式,可满足用户不同开发需求。其中c-sdk仓库提供给客户自己编译,版本自由度较高,fota远程升级应用只需做好版本管理——不仅支持使用自己的服务器,还支持使用合宙iot云平台来升级模组,为不方便搭建服务器的客户提供免费便捷的服务。
本文分享基于合宙iot服务器的csdk full-ota全量升级示例。
1
full-ota测试准备
full-ota远程升级是对整包进行升级,在下载到的csdk仓库内找到 “/project/example_full_ota” ,本教程将以此example为例。
注意:csdk的原始版本必须为v0002及以上。
gitee仓库链接:
https://gitee.com/openluat/luatos-soc-2022
1.1 生成1.0.0版本的binpkg文件:
首先需要先将代码中的 project_key,更改成自己在合宙iot云平台上的project_key。
#define project_version 1.0.1 //使用合宙iot升级的话此字段必须存在,并且强制固定格式为x.x.x, x可以为任意的数字
#define project_key 47pztpr9bxs04timjq72rvg9tbtmq8vw //修改为自己iot上面的product_key,这里是一个错误的,使用合宙iot升级的话此字段必须存在
#define project_name example_full_ota //使用合宙iot升级的话此字段必须存在,可以任意修改,但和升级包的必须一致
打开用合宙iot服务器升级的代码部分,默认没版本号打印,这里在下面一行加了打印,如下所示:
#if 1
const char remote_domain [ ] = iot.openluat.com;
const char ota_file_name[200];
char imei[16] = {0};
luat_mobile_get_imei(0, imei, 15);
snprintf_(ota_file_name, 200, api/site/firmware_upgrade?project_key=%s&imei=%s&device_key=&firmware_name=%s_luatos_csdk_ec618&version=%s, project_key, imei, project_name, project_version);
#endif
luat_debug_print(file name %s, ota_file_name);
然后保存编译,生成1.0.0版本的binpkg文件(可以手动修改文件名作为区分)。
1.2 生成1.0.1版本的binpkg文件:
对代码进行修改,修改完成后build生成1.0.1 binpkg,然后保存编译,生成1.0.1版本的binpkg文件(可以手动修改文件名作为区分)。
2
生成升级包
本节使用合宙luatools生成升级包,注意:luatools需要2.2.0及以上版本。
2.1 制作升级包:
运行luatools,进入选项及工具->soc差分/整包升级包制作工具。
在工具窗口的新版固件栏选择要升级的binpkg,然后设置输出路径并填入用户标识(即:固件新版本号),点击开始执行,即可生成对应的升级包。
2.2 更改后缀名:
在本地对应路径中找到生成的.sota升级包文件,将其后缀名更为.bin备用。
3
上传升级包
升级包生成成功后需要上传到服务器中,打开合宙iot云平台iot.openluat.com并登录:
3.1 点击我的项目-固件列表,然后创建固件:
3.2 创建固件相关设置:
在创建固件窗口,选择上文中后缀改为.bin的升级包,点击上传;系统会自动生成对应固件版本名称和版本号。
3.3 点击确定,固件上传成功:
3.4 添加指定设备imei:
因为升级全部设备一栏选择了【否】,所以接下来需要指定设备,将待升级设备的imei添加即可。
3.5 烧录测试升级:
然后只需要使用烧录工具烧录基础版本(1.0.0)的binpkg:
等待样例通过url请求升级包的方式测试fota升级,升级成功标志除升级接口正确返回外,还可通过升级前后不同的打印内容来辅助判断是否升级成功。
如下显示说明升级成功:
这里做测试的旧版本所打印的version=1.0.0,更新成功到新版本的打印变成了1.0.1。如在升级成功后再次请求同一升级包,由于不匹配会提示升级包校验错误,不予升级。
后台升级日志的查询结果如下:
full-ota注意事项
文件大小:
生成的ap.bin大小不能超过1984kb,生成的升级包不能超过1472kb。
设置要点:
luatools需要2.2.0及以上版本;进入选项及工具—soc差分/整包升级包制作工具,新版固件选择要升级的binpkg,用户标识可以填版本号,也可以不填,看自己的代码对升级版本是否有控制。如果用合宙iot升级服务,则必须填写版本号!
选好输出路径,点生成,在输出目录下生成相应的xxx.sota文件为升级包,更新后缀为.bin上传至服务器即可升级。
流量消耗:
升级一次流量1mb~1.5mb之间,注意流量消耗。
版本要求:
csdk的原始版本必须是v0002及以上,v0001升级到v0002也不行,因为涉及到了bootloader修改。
微芯Mi-V RISC-V SoC开发生态系统获2021年度EDA/IP/软件产品奖
小米11标准版不配备充电器超2万名米粉支持
Moto可折叠柔性屏新专利,三星的潜在对手来了
北美半导体设备订单额稳步增长 出货比连续6月超1
常用电子元器件识别与检测方法的汇总整理
CSDK开发FOTA难?没有自己的服务器?——合宙云平台FULL-OTA解烦忧
传苹果8月7日发布iPhone 5 iOS6将同日推出
医疗技术公司Suki宣布完成了价值2000万美元的B轮融资
广凌耗材管理系统 |让耗材管理更科学
智联微科携TRINAMIC最新产品将在中国(成都)电子信息博览会
基于CPCI架构的软件无线电处理最佳解决方案
新基建将对芯片产业发展带来极大的推动力
AI改变电销的同时需要解决什么问题
EDA公司芯华章宣布完成A+轮融资,加速推进EDA 2.0研发进程
华为最新款手机宣战iPhone8,不是华为P10,而是它,你怎么看
单片机仿真器原理介绍(使用方法及其作用详解)
关于纸病污点在线检测系统的技术参数介绍
全国产工业级以太网交换芯片,市场需求量太大,你冲不冲?
高通推出其首款基于云端的AI加速器:Qualcomm Cloud AI 100,正式宣布进军云计算领域
带参数子程序的参数传递过程