模组差分包,可能是你远程升级失败的罪魁祸首!

也许我们已经习惯生活里的问题接连不断。。。但当收到客户的问题反馈,还是会心头一紧!

最近有客户反馈在乡村里频繁出现掉线的情况。

我们赶紧排查:换货、换SIM卡,发现只有去年5月22号采购的那批模块在客户环境附近会出现掉线的情况,而今年4月份采购的模块批次就不会掉线。。。太奇怪了!

跟对应销售对接后,了解到差异就是模块内的固件版本不同。

去年采购的那批模块版本是:
AirM2M_780E_LTE_AT_V1138

今年采购的那批模块版本是:
AirM2M_780E_LTE_AT_V1162

看来是高版本对网络做了优化,但在这个地区出货的也有150多台设备了,把每个都单独回收回来给模块用USB烧录成高版本固件,显然不太现实,索性,直接通过FOTA远程批量升级吧!

图片

一、第一次尝试升级,出现失败


从合宙DOC社区上找到了FOTA远程升级的文档参考,先用手边的设备用合宙IoT平台做下测试,看能不能升级。

什么都配置好了,结果到最后模块发AT+UPGRADE触发升级的时候,却老是报错:

+UPGRADEIND: -1003

通过升级日志查询结果是“正在生成版本”?

图片

在页面右上角看到有个红色问号“ ?”,是IoT平台的帮助中心,往下滑就看到了升级日志返回结果的对应描述。

如下图示:

图片

图片

正在生成版本,请稍后再次请求——看样子是版本相差太大了,平台内部还在做差分包,那我就等一会儿再请求看看。

二、第二次尝试升级,再次出现失败

保险起见间隔了30分钟再次请求,以看到已经进入下载了,但是结果却又出现了:

+UPGRADEIND: -1003

这又是什么原因?!!

图片

先去IoT平台上看一下升级日志的结果是什么,查询看到显示的是“成功”,但实际上并没有升级成功啊,反而还报错了。

图片

紧接着找合宙的技术人员咨询了解到,差分包大小是有限制的,不能大于480KB,否则会升级不成功。

至于IoT平台上升级日志显示“成功”,原因是这个成功代表的意思不是模块升级成功——而是给予模块的升级请求,下发了升级文件成功了。

经过进一步确认,可以通过合宙自己提供的生成差分包工具的网址,把V1138和V1162的dfota.bin文件放上去,制作一个差分包看看,到底有多大。

图片

等了大概3分钟左右,差分包制作出来了,点击下载后,文件大小有550KB,那确实超出了480KB,升级不了。

图片

图片

从合宙的技术那里还得到了一份AT固件各个版本之间制作差分包的大小,以及是否可以差分升级的表格,这方便多了啊。

有数字的代表是在480KB以内,可以差分升级的版本;空白的就是不能升级的。

差分升级表格如下图示:

图片

那么通过这张图来看,例如我当前的模块版本是V1138,需要升级到1162,对应的交叉格并没有数字。

而且V1138升级到1147的差分包就已经到480KB的临界点了,只能先升到V1147,再升到1162。

图片

三、事不过三,第三次升级,成功!


那么,先获取到V1147版本的固件。

然后搜索得到AirM2M_780E_LTE_AT_V1147,
解压出来找到:
AirM2M_780E_V1147_LTE_AT.dfota.bin文件,
放到IoT平台上面。

图片

发送AT指令走下升级流程:

图片

成功从AirM2M_780E_V1138_LTE_AT,
升级到了 AirM2M_780E_V1147_LTE_AT。

接下来就是按照步骤,
升级到 AirM2M_780E_V1162_LTE_AT版本。

图片

四、总结及建议


从以前的老固件做升级,很重要的一点——要考虑到模块内部对差分升级所分配的FOTA分区有多少。如果差分包超过了分区(Air780E模块的FOTA分区看来就是480KB了),超出肯定是升级不了的。

紧接着和领导做了汇报,在本地测试了Air780E模组FOTA升级可以了,流程也写好了,先找了5台在外的设备远程升级,测试一下看升级后掉线的现象也确实减少了,那说明固件没问题。掉线的麻烦事,也完美解决了!

如果你在项目开发中也遇到类似问题,记得一定一定要先注意差分升级FOTA分区大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1543207.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

开放式蓝牙耳机哪个品牌好用?行业顶尖五款开放式耳机别错过!

开放式蓝牙耳机哪个品牌好用?行业顶尖五款开放式耳机别错过! 随着开放式耳机的流行,越来越多的用户开始青睐这种类型的耳机。尽管有些网友将开放式耳机称为“智商税”,但我相信,对于真正体验过的人来说,它…

基于Python的自然语言处理系列(14):TorchText + biGRU + Attention + Teacher Forcing

在前几篇文章中,我们探索了序列到序列(seq2seq)模型的基础,并通过使用双向GRU和上下文向量改进了模型的表现。然而,模型仍然依赖一个固定的上下文向量,这意味着它必须从整个源句中压缩信息,导致…

并发编程 - 锁(NSLock)

引言 在多线程编程中,数据一致性是一个必须解决的问题。多个线程同时访问同一片共享数据时,极易发生竞争条件(race conditions),导致数据的不一致性,甚至程序崩溃。为了解决这些问题,我们需要引…

大模型备案最难材料搞定——安全评估报告、安全评估测试题【评估测试题+备案源文件】

大模型备案,最难搞定的2个材料,安全评估报告,安全评估测试题、拦截词,这里都有了 文章目录 (一)适用主体 (二)语料安全 (三)模型安全 (四&…

Java_Se 数据变量与运算符

标识符、变量、常量、数据类型、运算符、基本数据类型的类型转换等。这些是编程中的“砖块”,是编程的基础。要想开始正式编程,还需要再学“控制语句”,控制语句就像“水泥”,可以把“砖块”粘到一起,最终形成“一座大…

2024年图纸加密防泄密软件Top10榜单 | 防止CAD图纸泄密打造坚不可摧的图纸安全

在当今数字化高速发展的时代,图纸作为重要的知识产权和商业机密,其安全问题备受关注。 一旦图纸泄露,可能给企业和个人带来巨大的损失。 为了保护图纸的安全,各种加密防泄密软件应运而生。下面为大家揭晓2024 年图纸加密防泄密软…

修复 msvcr120.dll 丢失的方法,总结几个靠谱有效的方法

1. msvcr120.dll 定义 1.1 Microsoft Visual C Redistributable Package 的一部分 msvcr120.dll 是 Microsoft Visual C 2013 Redistributable Package 的核心组件,该包为运行时环境提供了必要的库文件。它确保了使用 Visual C 2013 编译的应用程序能够在没有开发…

想在产品上扩展大储存怎么做?开源啦!

相比伙伴们都遇到过,芯片内存不够的问题:经常会有大量的照片、音频、文档等需要存储,怎么办呢? 我们知道可以外扩,要编写各种驱动,还有Flash替换,这个工程不可谓不大啊! 但&#x…

Spring中的容器接口

容器接口 首先了解一下BeanFactory和ApplicationContext这两个接口的关系。 其实在一个 SpringBoot 项目中,这个 SpringBoot 项目的启动类的返回值就是一个 ApplicationContext 接口的实现类。 然后在 IDEA 中选中这个类,按住ctrlaltU可以查看类图&…

JavaScript 安装库npm报错

今天在编写JavaScript代码时,缺少了包express。 const express require(express); const app express();app.get(/, (req, res) > {res.send(Hello, world!); });app.listen(3000, () > {console.log(Server is running on port 3000); });npm install exp…

小程序开发设计-小程序的宿主环境:组件⑦

上一篇文章导航: 小程序开发设计-小程序的宿主环境:宿主环境简介⑥-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142425131?spm1001.2014.3001.5501 注:不同版本选项有所不同,并无大碍。 1.小程序中组件的分类…

深度学习(1):基础概念与创建项目

文章目录 基础概念创建项目1.在Anaconda上创建序虚拟环境2.创建PyProject3.创建完成 基础概念 CPU(中央处理器) CPU 是计算机的核心部件,负责执行计算和逻辑操作。它按照指令序列进行任务处理,擅长处理串行任务。CPU 的性能直接…

【MyBatis 源码拆解系列】MyBatis 运行原理 - 读取 xml 配置文件

欢迎关注公众号(通过文章导读关注:【11来了】),持续 分享大厂系统设计! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址:点击…

Nature:科研论文中正确使用ChatGPT的三个原则

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 美国科罗拉多大学安舒茨医学院的生物医学信息学研究员Milton Pividori,一直在探索如何将ChatGPT等AI工具该技术融入课题组日常科研任务,例如进行文献综…

远程升级不成功?背后“凶手”可能是模组差分包…

最近有客户反馈在乡村里频繁出现掉线的情况。通过换货、换SIM卡对比排查测试,发现只有去年某批采购的那批模块在客户环境附近会出现掉线的情况,而今年采购的模块批次就不会掉线,很奇怪。 这个出问题的模块,就是合宙4G-Cat.1低功耗…

01.前端面试题之ts:说说如何在Vue项目中应用TypeScript?

文章目录 一、前言二、使用Componentcomputed、data、methodspropswatchemit 三 、总结 一、前言 与link类似 在VUE项目中应用typescript,我们需要引入一个库vue-property-decorator, 其是基于vue-class-component库而来,这个库vue官方推出…

数据驱动农业——农业中的大数据革命

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、埃域知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&…

静态链接和动态链接的Golang二进制文件

关注TechLead,复旦博士,分享云服务领域全维度开发技术。拥有10年互联网服务架构、AI产品研发经验、团队管理经验,复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇SCI核心期刊学术论文,阿里云认…

抖音截流神器发布:不限量评论采集,实时推送,提升运营效率

在短视频风靡的今天,抖音成为品牌营销的新战场。如何在海量内容中脱颖而出,提升运营效率成为关键。本文将揭秘一款革命性的抖音运营工具,它不仅支持不限量评论采集,还实现了实时推送功能,助力运营者精准把握用户反馈&a…