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

最近有客户反馈在乡村里频繁出现掉线的情况。通过换货、换SIM卡对比排查测试,发现只有去年某批采购的那批模块在客户环境附近会出现掉线的情况,而今年采购的模块批次就不会掉线,很奇怪。

这个出问题的模块,就是合宙4G-Cat.1低功耗模块Air780E。

通过与对应销售对接后,确定差异就是模块内的固件版本不同。

去年采购的那批模块版本是:
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/1543179.html

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

相关文章

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…

保姆级 Stable Diffusion 教程,看完这篇就够了!

在美国科罗拉多州举办了一场新兴数字艺术家竞赛,一幅名为《太空歌剧院》的作品获得“数字艺术/数字修饰照片”类别的一等奖,神奇的是,该作品的作者并没有绘画基础,这幅画是他用 AI 生成的。 这让人们充分见识到AI 在绘画领域惊人的…

Shell实战(一)

Shell实战(一) 导语程序实例解压缩交互功能描述代码和运行结果实现解析 监视CPU和内存功能描述代码和运行结果实现解析 用户管理功能描述代码和运行结果实现解析 总结 导语 本篇引入三个书上的shell程序设计项目,由于书上的版本较老&#xf…

异构AI算力资源池:智能世界的新型基础设施

随着人工智能技术的飞速发展,AI应用对计算资源的需求日益增长。然而,传统的同构计算资源池无法满足AI应用对计算能力、能耗和成本的多样化需求。为此,异构AI算力资源池应运而生,成为未来智能世界的重要基础设施。 背 景 人工智能…

H3C交换机手动释放DHCP地址

原本的的配置,释放时间10天 导致所有的地址都被使用完 释放了地址池的地址 重新调整了超期时间为8小时

游戏行业数据集成“利器”

《黑神话:悟空》自公布以来,便在游戏界引起了巨大的轰动。这款游戏以其精湛的画面、精彩的剧情和深度的玩法,让无数玩家充满期待。而在其背后,游戏开发者们面临着诸多挑战,其中之一便是数据的集成与管理。竞争激烈的游…

【C++ Primer Plus习题】17.3

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <fstream> using namesp…

LeetCode Hot100 C++ 哈希 49.字母异位词分组

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排…

2-99 基于matlab多尺度形态学提取眼前节组织

基于matlab多尺度形态学提取眼前节组织&#xff0c;通过应用不同尺度的结构元素进行边缘检测&#xff0c;再通过加权融合的思想来整合检测到的边缘&#xff0c;降低图像噪声的影响&#xff0c;提高边缘检测的精度。程序已调通&#xff0c;可直接运行。 下载源程序请点链接&…

线程的状态及join()插队方法

一、线程的状态 线程整个生命周期中有6种状态&#xff0c;分别为 NEW 新建状态 、RUNNABLE 可运行状态、TERMINATED 终止状态、TIMED_WAITING计时等待状态、WAITING 等待状态、BLOCKED 阻塞状态 线程各个状态之间的转换&#xff1a; 在 JAVA 程序中&#xff0c;一个线程对象通过…

200Kg大载重多旋翼无人机应用前景详解

大载重多旋翼无人机是一类具备高载重能力和长航时特点的无人机系统&#xff0c;它们融合了多旋翼无人机的灵活性与大载重无人机的实用性&#xff0c;广泛应用于多个领域。 1. 航拍与影视制作 在航拍与影视制作领域&#xff0c;200Kg大载重多旋翼无人机凭借其出色的稳定性和载重…

维信诺三年半亏损近85亿:股价今年跌超四成,550亿大手笔投资8.6代

《港湾商业观察》施子夫 在显示面板领域知名度颇高的维信诺&#xff08;002387.SZ&#xff09;还是交出了持续亏损的半年报。从近些年财务数据上看&#xff0c;亏损似乎已经成为了公司甩不掉的包袱。 在盈利能力并不如预期的情况下&#xff0c;维信诺也对外释放要550亿扩产能…

图片切换示例【JavaScript】

在 JavaScript 中实现图片切换可以通过多种方法&#xff0c;下面是一个简单的示例&#xff0c;使用 HTML、CSS 和 JavaScript 来实现图片的切换效果。 实现效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta c…

单相电多相电

目录 1. 单相电 2. 多相电 3. 其他多相电系统 单相电和多相电是电力系统中常见的两种供电方式&#xff0c;主要区别在于电力传输的相数。以下分别介绍它们的基本概念、特征、以及应用场景。 1. 单相电 定义&#xff1a; 单相电指的是只有一根火线和一根零线的电力系统。这…

电玩店ps5倒计时软件试用版下载 佳易王电玩计时计费管理系统操作教程

一、前言 电玩店ps5倒计时软件试用版下载 佳易王电玩计时计费管理系统操作教程 佳易王电玩店计时计费软件&#xff0c;有两款&#xff0c;其中一款可显示倒计时剩余分钟数&#xff0c;另外一款是显示用了多长时间&#xff0c;都可以设置定时语音提醒。 二、显示倒计时软件图文…

python之装饰器、生成器

装饰器 什么是装饰器&#xff1f; 用来装饰其他函数&#xff0c;即为其他函数添加特定功能的函数。 装饰器的两个基本原则&#xff1a; 装饰器不能修改被装饰函数的源码 装饰器不能修改被装饰函数的调用方式

css禁止图片保存,CSS中的图片保存方法

“css中的图片”指的就是镶在CSS样式表中的图片。在我们用在浏览器保存网页时&#xff0c;很多时候&#xff0c;下载网页里的图片都下载不到&#xff0c;这样的话就会使网页非常不美观。所以&#xff0c;今天小编就给大家介绍集中保存方法。 以下是几种保存方法。 (一)使用网…