CSDK开发FOTA难?没有自己的服务器?——合宙云平台FULL-OTA解烦忧

2023-07-11
关注

功耗低、性能好、联网快——基于移芯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

constcharremote_domain[ ]= "iot.openluat.com";

constcharota_file_name[200];

charimei[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修改。

  • 软件
您觉得本篇内容如何
评分

相关产品

BOB BOB人体生物力学分析软件 MEMS-仿真软件

BOB英文全称是Biomechanics of Bodies,是一款肌肉骨骼仿真建模软件,既可以编辑人体的肌肉骨骼,也可分析各生物力学量,导出量化数据,操作简单且分析准确, 广泛应用于学术界和工业界,其应用领域包括产品设计

Geokon 基康仪器 BGKLogger 安全监测管理软件

产品型号:BGKLogger 应用范围:用于工程安全自动化测量的新一代产品,能够支持多种自动化数据采集设备,如BGK8001低功耗数据采集仪、BGK6850A系列垂线坐标仪,BGKMicro40多通道自动化数据采集单元等。

Coventor COVENTOR-CoventorWare MEMS-仿真软件

CoventorWare是一套集成的设计和仿真软件,具有精度、容量和速度,以解决现实世界的MEMS设计。

Dahua 浙江大华 DH-RTS-View 映像采集软件

浙江大华 DH-RTS-View 映像采集软件

NBIT 神源生 机器人力控产品/解决方案 其它软件

打磨抛光、精密装配等力控应用的机器人力控产品/解决方案。

Maisi 迈斯软件 数据采集 生产管控系统

合肥迈斯软件推出了多种车间数据采集解决方案,并已全部落实到制造企业中,现场数据采集领先解决方案,从软、硬件方面帮助客户快速建立车间现场数据采集网络,实时获取车间现场的数据信息,为生产及决策提供实时的数据依据

CWSG 启微数感 单通道检测模块(含软件) 气敏检测仪系列(仪器)

这是我司自主研发的气体传感器数据采集模块。它小巧且灵敏,能够简单、便捷地采集数据,特别适合常见的MEMS传感器电极和常规平板电极。该模块不仅可以与测试腔一同使用,还可以单独操作,为不同封装的传感器提供测试方便。

评论

您需要登录才可以回复|注册

提交评论

提取码
复制提取码
点击跳转至百度网盘