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

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

3天内不再提示

ChatGPT那么神,可以帮我们远程升级模组吗?——合宙IoT云平台FOTA开发应用指南

合宙LuatOS 2023-02-15 10:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

ChatGPT话题愈燃愈旺,新技术应用带来的兴奋,让参与其中的人们充满改变世界的期待,又不免生出被AI替代的焦虑,以及混杂其间的各种冲动。像极了三体科幻小说的现实版,衍生出拯救派、降临派、幸存派……

ChatGPT那么神,可以帮我们FOTA升级模组吗?——显然,当下还得靠工程师自己。

话说合宙基于移芯EC618平台的4G-Cat.1系列模组,支持标准AT/LuatOS/C-SDK多样化开发方式,可满足用户不同开发需求。其中C-SDK仓库提供给客户自己编译,版本自由度较高,FOTA远程升级应用只需做好版本管理——不仅支持使用自己的服务器,还支持使用合宙IoT云平台来升级模组,为不方便搭建服务器的客户提供免费便捷的服务。

那么如何使用合宙IoT云平台进行C-SDK固件升级呢?接下来将跟大家详细分享。

1

FOTA测试准备


在下载到的CSDK仓库内找到 “/project/example_fota_iot” ,本文将以此为例。

1.1 生成1.0.0版本的binpkg文件

首先,需要先将代码中的 "PROJECT_KEY"更改成自己合宙IoT上的PROJECT_KEY。然后保存编译,生成1.0.0版本的binpkg文件(可以手动修改文件名作为区分)。

相关注意事项:

升级时要校验请求时的代码是否和生成差分包所用的旧版本代码一致。如不一致,日志会出现:image_verify error,校验失败而不能升级。

差分包地址和域名也是代码的一部分,会参与差分包的生成,也需确保在新旧版本中保持一致。

一般情况下差分包也要区分不同版本,就会导致地址有可能会经常发生更改。可以把url写成从其他地方获取:比如kv或者从服务器获取,就可以避免手动修改差分包地址而导致代码不一致,影响升级失败。

#define PROJECT_VERSION "1.0.0"

#define PROJECT_KEY “ABCDEFGHIJKLMNOPORSTUWWXYZ" //修改为自己iot上面的PRODUCT_KEY,这里是一个错误的

#define PROJECT_NAME "TEST_FOTA"

char g_test_server_name[200] = {0};

#define TEST_HOST "http://iot.openluat.com"

#define HTTP_RECV_BUF_SIZE (1501)

#define HTTP_HEAD_BUF_SIZE (800)

1.2 生成2.0.0版本的binpkg文件

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

#define PROJECT_VERSION "2.0.0"

#define PROJECT_KEY “ABCDEFGHIJKLMNOPORSTUWWXYZ" //修改为自己iot上面的PRODUCT_KEY,这里是一个错误的

#define PROJECT_NAME "TEST_FOTA"

char g_test_server_name[200] = {0};

#define TEST_HOST "http://iot.openluat.com"

#define HTTP_RECV_BUF_SIZE (1501)

#define HTTP_HEAD_BUF_SIZE (800)

915a8f48-ab56-11ed-ad0d-dac502259ad0.png

2

差分包生成


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

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

918539b4-ab56-11ed-ad0d-dac502259ad0.gif

差分文件制作步骤


919fbfbe-ab56-11ed-ad0d-dac502259ad0.png

Step1. 选择配置文件

选择对应产品项目的配置文件,如:config/ec618.json

Step2. 设置名称及路径

设置差分文件的名称及路径(默认路径为 FotaToolkitGUI 所在目录,文件名为 default_delta.par),然后选择差分文件所需的基线镜像文件和目标镜像文件。

Step3. 设置文件版本号

该步骤可选(一般情况下不需要改变)。

添加基线和目标镜像的版本号,具体格式为 Vmmm.nnn.ppp(m,n 和 p 为数字 0-9,分别表示镜像文件的大、小和补丁版本号),需要注意的是新旧两个版本号不能相同;此外,该版本号仅仅是为了追踪和记录新旧镜像文件的信息,不会对实际镜像文件版本号进行匹配和校验。

Step4. 选择FLASH配置信息

根据步骤02中的新旧镜像文件的属性(相关镜像属性已在JSON文件中配置),选择相匹配的FLASH配置信息。

Step5. 执行制作差分文件

以上步骤完成后,直接执行“START”制作差分文件即可。显示窗口会实时输出制作过程的所有LOG信息,制作完成后会弹窗提示“成功”还是“失败”,具体的制作结果以及目标文件的详细信息也会输出到显示窗口中。

特别说明:

后缀名(.par)为移芯FOTA差分方案的默认文件后缀,设置文件名称时Fota工具会自动追加。

生成.par文件后需要手动将后缀改为.bin。

3

上传差分包


差分包生成成功后需要上传到服务器中,打开合宙iot.openluat.com并登录:

3.1 点击固件升级,选择项目,然后创建固件:

91c9ce62-ab56-11ed-ad0d-dac502259ad0.png

3.2 进入创建固件选项后,选择差分工具生成的差分文件。

原始文件格式为.par,需要手动改为.bin:

91f39a94-ab56-11ed-ad0d-dac502259ad0.png

3.3 填写固件名及版本号:

固件名一栏填入PROJECT_VERSION、PROJECT_NAME和CSDK_EC618拼接后的字符串;版本号手动填入2.0.0 。

921cb442-ab56-11ed-ad0d-dac502259ad0.png

3.4 然后点击确定,固件就上传成功了。

92420c60-ab56-11ed-ad0d-dac502259ad0.png

因为升级全部设备一栏选择了否,所以需要指定设备imei;将待升级设备的imei上传即可指定。

925fdc0e-ab56-11ed-ad0d-dac502259ad0.png

3.5 烧录测试FOTA升级:

然后只需要使用烧录工具烧录基础版本(1.0.0)的binpkg,等待样例通过url请求升级包的方式测试FOTA升级。升级成功标志除升级接口正确返回外,还可通过升级前后不同的打印内容来辅助判断升级成功。

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

本样例由于当前尚未确定CSDK版本,以此作为辅助判断条件,用户也可以加上自己的打印作为辅助条件予以判断升级成功。

查看日志可使用合宙LuaTools或EPAT工具

9285a808-ab56-11ed-ad0d-dac502259ad0.png

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

    关注

    6

    文章

    1812

    浏览量

    32409
  • IOT
    IOT
    +关注

    关注

    190

    文章

    4434

    浏览量

    210201
  • 合宙通信
    +关注

    关注

    0

    文章

    160

    浏览量

    2560
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ChatGPT 5.5镜像站技术升级解析:更快的生成速度对开发者意味着什么?

    ChatGPT 5.5 的核心代际提升集中在生成速率的跃升与 Token 利用效率的优化上。对于国内开发者,无需特殊网络环境即可快速体验这一变化的平台之一,是聚合了多款模型的 RskAi
    的头像 发表于 05-06 15:08 2500次阅读

    猛!MCU模组:Air1601/1602双星出击!

    在嵌入式开发中,你是否曾面临这样的困境:高清UI渲染依赖昂贵高端芯片、图像处理卡顿、多网通信协同复杂、工业级稳定设计繁琐……Air1601/Air1602系列MCU模组应运而生:—
    的头像 发表于 02-13 14:05 1038次阅读
    猛!<b class='flag-5'>合</b><b class='flag-5'>宙</b>MCU<b class='flag-5'>模组</b>:Air1601/1602双星出击!

    一文吃透RK平台OTA升级开发:从逻辑到调试的完整指南

    在 Rockchip(简称 RK)Android 平台开发中,OTA(Over The Air)升级是实现设备软件迭代的核心方式。无论是本地卡刷升级,还是在线无缝更新,掌握 OTA
    的头像 发表于 02-09 16:26 929次阅读
    一文吃透RK<b class='flag-5'>平台</b>OTA<b class='flag-5'>升级</b><b class='flag-5'>开发</b>:从逻辑到调试的完整<b class='flag-5'>指南</b>

    高效接入语音交互:模组音频方案如何选?

    本文特别分享4G模组选型与硬件设计要点,为开发者提供实用参考。 一、模组音频支持概况 从主芯片是否原生支持音频功能来看,4G
    的头像 发表于 02-08 14:59 1044次阅读
    高效接入语音交互:<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>模组</b>音频方案如何选?

    LuatOS FOTA升级全解析

    在实际项目中,Core优化与脚本迭代往往需要同步推进。LuatOS支持脚本与Core的联合FOTA升级,极大提升维护灵活性。本文将系统讲解升级包制作、版本号管理、设备绑定等环节,助你构建完整的
    的头像 发表于 02-04 15:36 2773次阅读
    LuatOS <b class='flag-5'>FOTA</b><b class='flag-5'>升级</b>全解析

    LuatOS FOTA升级:新手也能秒懂的操作指南

    面对成千上万的终端设备,如何低成本完成版本迭代?FOTA是答案。本文聚焦LuatOS平台远程升级能力,以极简语言和清晰步骤,带你走过从创建项目、获取校验码到设备重启
    的头像 发表于 02-04 15:34 2749次阅读
    LuatOS <b class='flag-5'>FOTA</b><b class='flag-5'>升级</b>:新手也能秒懂的操作<b class='flag-5'>指南</b>

    平台远程抄表系统简析

    众所周知,平台远程抄表系统早已不是新鲜事物,而是工业能源数字化管控的“核心基建”,靠精准采集、智能分析的硬实力,成为企业能耗管控的刚需配置。下面我们来了解一下这套系统的总体架构以及优
    的头像 发表于 01-22 10:05 344次阅读
    <b class='flag-5'>云</b><b class='flag-5'>平台</b><b class='flag-5'>远程</b>抄表系统简析

    零基础入门:用libfota2实现第三方服务器FOTA升级服务

     即使你是FOTA新手,也能通过本教程掌握远程固件升级的核心实现。我们以libfota2为客户端核心,结合自建第三方服务器,提供一份零基础可上手的完整
    的头像 发表于 01-19 18:35 250次阅读
    零基础入门:用libfota2实现第三方服务器<b class='flag-5'>FOTA</b><b class='flag-5'>升级</b>服务

    FOTA升级全流程教学:基于libfota2与第三方服务器搭建

    ,不依赖任何商业平台,适合有定制化需求的开发者参考与复现。 一、FOTA 概述   FOTA远程升级
    的头像 发表于 01-19 18:35 658次阅读
    <b class='flag-5'>FOTA</b><b class='flag-5'>升级</b>全流程教学:基于libfota2与第三方服务器搭建

    RK 平台升级开发:全场景方案与实践指南,覆盖常规系统和ab系统

                在嵌入式 Linux 开发领域,瑞芯微( Rockchip )平台凭借其稳定的性能和丰富的生态支持,被广泛应用于各类智能设备中。而设备的升级功能作为保障产品生命周期、优化
    的头像 发表于 01-13 15:35 1664次阅读
    RK <b class='flag-5'>平台</b><b class='flag-5'>升级</b><b class='flag-5'>开发</b>:全场景方案与实践<b class='flag-5'>指南</b>,覆盖常规系统和ab系统

    由Memfault赋能的Nordic-nRF Cloud服务将硬核加持物联网通信应用

    的 nRF Cloud,它是完整的设备可观测性、设备管理和定位服务平台,使开发人员能够以前所未有的便捷和效率监控、管理和更新其设备。 它不仅支持 Nordic 的 nRF91 系列蜂窝物联网模组,还支持
    发表于 11-27 22:30

    使用RTT的维护进行远程固件升级(OTA),怎么没有网络升级的方式?

    使用RTT的维护进行远程固件升级(OTA),怎么没有网络升级的方式的?只有蓝牙,近距离的固件升级。详细如图所示,只有蓝牙,没有连接互联网,
    发表于 10-13 06:36

    NB-IoT无线模组咨询

    我们公司是做外贸的, 目前想配NB-IoT无线模组在设备上, 由于对NB-IoT无线模组不熟悉, 想咨询关于移远,利尔达等无线
    发表于 09-01 23:42

    NVIDIA助力CoreWeave平台性能升级

    AI 变革正在重塑数据中心格局,亟需能够提供更灵活、高性价比的计算和数据能力的平台。为了满足这些需求,作为推动 AI 变革的超大规模服务提供商,CoreWeave 致力于开发一种用于加速计算工作负载的
    的头像 发表于 07-23 10:49 1573次阅读
    NVIDIA助力CoreWeave<b class='flag-5'>云</b><b class='flag-5'>平台</b>性能<b class='flag-5'>升级</b>

    物联网平台有什么功能特点

    、Modbus等多种通信协议,适配传感器、智能硬件、工业设备等不同类型终端,实现跨品牌、跨协议的设备接入。 设备全生命周期管理:覆盖设备注册、配置、监控、升级、故障诊断等环节,例如通过远程固件升级
    的头像 发表于 07-07 17:56 984次阅读