0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

合宙LuatOS 2023-07-08 10:04 次阅读

功耗低、性能好、联网快——基于移芯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文件(可以手动修改文件名作为区分)。

be65f8de-1d33-11ee-a579-dac502259ad0.png

1.2 生成1.0.1版本的binpkg文件:

对代码进行修改,修改完成后build生成1.0.1 binpkg,然后保存编译,生成1.0.1版本的binpkg文件(可以手动修改文件名作为区分)。

be75f702-1d33-11ee-a579-dac502259ad0.png

2

生成升级包


本节使用合宙LuaTools生成升级包,注意:LuaTools需要2.2.0及以上版本。

2.1 制作升级包:

运行LuaTools,进入选项及工具->SOC差分/整包升级包制作工具。

be83e358-1d33-11ee-a579-dac502259ad0.png

在工具窗口的新版固件栏选择要升级的binpkg,然后设置输出路径并填入用户标识(即:固件新版本号),点击开始执行,即可生成对应的升级包。

bec3fe66-1d33-11ee-a579-dac502259ad0.png

2.2 更改后缀名:

在本地对应路径中找到生成的.sota升级包文件,将其后缀名更为.bin备用。

bf035868-1d33-11ee-a579-dac502259ad0.png

3

上传升级包


升级包生成成功后需要上传到服务器中,打开合宙IoT云平台iot.openluat.com并登录:

3.1点击我的项目-固件列表,然后创建固件:

bf58d2de-1d33-11ee-a579-dac502259ad0.png

3.2 创建固件相关设置:

在创建固件窗口,选择上文中后缀改为.bin的升级包,点击上传;系统会自动生成对应固件版本名称和版本号。

bf6a6c24-1d33-11ee-a579-dac502259ad0.png

3.3 点击确定,固件上传成功:

bf7d4cae-1d33-11ee-a579-dac502259ad0.png

3.4 添加指定设备imei:

因为升级全部设备一栏选择了【否】,所以接下来需要指定设备,将待升级设备的imei添加即可。

bf927714-1d33-11ee-a579-dac502259ad0.png

3.5 烧录测试升级:

然后只需要使用烧录工具烧录基础版本(1.0.0)的binpkg:

bfa6f360-1d33-11ee-a579-dac502259ad0.png

等待样例通过URL请求升级包的方式测试FOTA升级,升级成功标志除升级接口正确返回外,还可通过升级前后不同的打印内容来辅助判断是否升级成功。

如下显示说明升级成功:

bfc5482e-1d33-11ee-a579-dac502259ad0.png

这里做测试的旧版本所打印的version=1.0.0,更新成功到新版本的打印变成了1.0.1。如在升级成功后再次请求同一升级包,由于不匹配会提示升级包校验错误,不予升级。

后台升级日志的查询结果如下:

c0f489da-1d33-11ee-a579-dac502259ad0.png

FULL-OTA注意事项


文件大小:
生成的ap.bin大小不能超过1984KB,生成的升级包不能超过1472KB。

设置要点:
LuaTools需要2.2.0及以上版本;进入选项及工具—SOC差分/整包升级包制作工具,新版固件选择要升级的binpkg,用户标识可以填版本号,也可以不填,看自己的代码对升级版本是否有控制。如果用合宙IOT升级服务,则必须填写版本号!

选好输出路径,点生成,在输出目录下生成相应的xxx.sota文件为升级包,更新后缀为.bin上传至服务器即可升级。

流量消耗:
升级一次流量1MB~1.5MB之间,注意流量消耗。

版本要求:
CSDK的原始版本必须是V0002及以上,V0001升级到V0002也不行,因为涉及到了bootloader修改。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9017

    浏览量

    85182
  • OTA
    OTA
    +关注

    关注

    7

    文章

    568

    浏览量

    35141
  • IOT
    IOT
    +关注

    关注

    186

    文章

    4175

    浏览量

    196216
收藏 人收藏

    评论

    相关推荐

    告别繁琐的平台开发!IoT_CLOUD之 百度

    ​众所周知,市面上有很多云平台,并且每家平台都有自己的协议,工程师要移植不同的SDK代码或基于各家的手册文档对接不同的协议,看着都头大!!! 为解决繁琐的
    的头像 发表于 10-31 07:23 140次阅读
    告别繁琐的<b class='flag-5'>云</b><b class='flag-5'>平台</b><b class='flag-5'>开发</b>!IoT_CLOUD之 百度<b class='flag-5'>云</b>

    告别繁琐的平台开发!IoT_CLOUD之百度

    文档对接不同的协议,看着都头大!!! 为解决繁琐的平台开发困扰, IoT_CLOUD应运而生,一库打通所有
    的头像 发表于 10-21 07:05 633次阅读
    告别繁琐的<b class='flag-5'>云</b><b class='flag-5'>平台</b><b class='flag-5'>开发</b>!IoT_CLOUD之百度<b class='flag-5'>云</b>

    独立服务器服务器的区别

    随着互联网技术的飞速发展,企业对于服务器的需求日益增加,而服务器市场也随之出现了多种类型的产品,其中最常见的是独立服务器服务器。这两种
    的头像 发表于 10-12 14:34 204次阅读

    Air780EP低功耗4G模组—AT开发FOTA远程升级

    特别推出 基于Air780EP模组AT开发FOTA远程升级指南 ——AT版本的远程升级主要是对AT固件版本进行升级,实际方式为通过官方IoT
    的头像 发表于 10-07 20:36 279次阅读
    Air780EP低功耗4G模组—AT<b class='flag-5'>开发</b><b class='flag-5'>FOTA</b>远程升级

    什么是服务器

    服务器(Cloud Server),又称主机或弹性计算服务(Elastic Compute Service, ECS),是基于计算技术
    的头像 发表于 09-27 09:34 177次阅读

    Air201资产定位模组LuatOS基础课程:FOTA远程升级,一键搞定!

    的实用示例**——FOTA远程升级** ** FOTA远程升级** [ ] Air201资产定位模组 ——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-
    的头像 发表于 09-18 18:07 347次阅读
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>Air201资产定位模组LuatOS基础课程:<b class='flag-5'>FOTA</b>远程升级,一键搞定!

    如何使用的DTU+业务平台,做一个温湿度传感数据采集项目?

    使用的DTU+业务平台,做一个温湿度传感数据采集项目,超详细教程。
    的头像 发表于 09-18 11:11 358次阅读
    如何使用<b class='flag-5'>合</b><b class='flag-5'>宙</b>的DTU+业务<b class='flag-5'>云</b><b class='flag-5'>平台</b>,做一个温湿度传感<b class='flag-5'>器</b>数据采集项目?

    服务器搭建详细过程

    随着计算技术的发展,越来越多的企业和个人开始选择使用服务器来部署自己的应用和服务。相比于传统的物理
    的头像 发表于 09-12 10:00 276次阅读

    Air780EP模块Lua开发阿里应用指南

    Air780EP模块Lua开发阿里超详细教学!看完包学会!
    的头像 发表于 08-08 09:00 865次阅读
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>Air780EP模块Lua<b class='flag-5'>开发</b>阿里<b class='flag-5'>云</b>应用指南

    Air780EP模块AT开发FOTA远程升级指南

    Air780EP模块AT开发FOTA远程升级指南简介AT版本的远程升级主要是对AT固件进行升级,实际方式为通过官方IOT平台升级或者使用
    的头像 发表于 07-19 15:16 699次阅读
    Air780EP模块AT<b class='flag-5'>开发</b><b class='flag-5'>FOTA</b>远程升级指南

    适用于618/7xx芯片平台 AT开发 远程FOTA升级指南教程

    简介AT版本的远程升级主要是对AT固件版本进行升级,实际方式为通过官方IOT平台升级或者使用自己搭建的服务器进行升级
    的头像 发表于 07-18 11:33 483次阅读
    适用于618/7xx芯片<b class='flag-5'>平台</b> AT<b class='flag-5'>开发</b> 远程<b class='flag-5'>FOTA</b>升级指南教程

    服务器和虚拟服务器的区别是什么

    服务器和虚拟服务器是两种常见的服务器类型,它们在很多方面有相似之处,但也有一些关键的区别。本文将详细介绍
    的头像 发表于 07-02 09:48 647次阅读

    服务器的特点

    服务器是一种基于计算技术的服务器服务,它提供了可灵活扩展的计算资源和环境。Rak部落小编为您整理发布
    的头像 发表于 04-09 09:30 387次阅读

    独立服务器服务器的区别

    独立服务器服务器的区别是很多用户在选择服务器时要做的课程,那么独立服务器
    的头像 发表于 01-17 10:58 807次阅读

    租用服务器的注意事项的关键点

    不同的服务器服务商可能针对不同的客户群体提供不同的服务,例如,面向中小企业用户与高端用户的服务器
    的头像 发表于 12-21 10:33 323次阅读