嵌入式物联网设备OTA全量、增量升级

嵌入式电子 2024-07-09 07:30


一、全量升级

 方案一:
    升级包在APP或者bootloader中下载,flash中共有3个区,boot区、A区、B区。
    这种方案需要一个额外的分区用来存放下载的升级包,一般称为B区;A区存放APP程序。
    在升级包下载完成后对B区代码进行完整性校验,然后进入boot中进行B区代码向A区搬运,搬运完成进行校验,然后跳转。

方案二:

    升级包在bootloader中下载,flash中只需要2个区,boot区、A区。
A区存放APP代码,在有升级事件发生时直接跳转到bootloader中进行APP下载,直接下载到A区,下载完成后校验,然后进行跳转。

二、差分(增量)升级

1.差分/增量升级概述

    差分升级又叫增量升级,顾名思义就是通过差分算法将源版本与目标版本之间差异的部分提取出来制作成差分包,然后,在设备中通过还原算法将差异部分在源版本上进行还原,从而升级成目标版本的过程。
    差分升级方案不仅可以节省MCU内部的资源空间、还可以节省下载流程及下载和升级过程中的功耗、而且还可以减少数据包在空口的不稳定性。
    也就是说,差分升级是拿以前旧设备内的bin,和当前新版本的bin用某种算法算出他们的差异部分,然后在借助压缩算法,生产一个极其小的差分包,然后将这个差分包下载到设备中,设备在根据解压算法、差分还原算法,生产一个完整的新版本bin,然后将这个新版本bin刷到执行区执行代码。

2.差分/增量升级意义

    差分升级一般来说,可以极大的减少下载量,特别是对于小资源的嵌入式单片机来说,可以极大的减少维护成本。
    因为嵌入式设备的升级维护一般都是空中ota升级,比如NB-IoT、LoraWan、蓝牙、红外等,下载速度受到波特率、包长、空口环境等限制,更新固件包非常的慢,而差分升级可以让下载的过程极大的缩小。
    正常的维护版本,生成的差分包bin理论上在原bin的%5左右,80K的文件小改动实测差分包仅有3K。对于像水表、燃气表、报警器、断路器、雷电流检测等应用程序维护有一定帮助意义。

3.差分算法

    在构造差分增量包中,常见的算法有Bsdiff算法、Xdelta算法、Hdiffpatch算法等。

Bsdiff算法

    在匹配新旧文件过程中,有部分源代码内容完全相同,有部分源代码相似度很高,只有部分字节作了稀疏改动,另有一些源代码内容相同,但是存储地址存在一个固定的偏移量,对于这一特性的源代码数据,具有高度的可压缩性。
    Bsdiff算法引入了diff string的概念,在新旧文件中找到这样的两部分内容,求出字节的差异,作为diff string进行压缩。而对于不符合要求的新文件源码中新增部分,作为extra string进行保存。
    Bsdiff算法在匹配时,先对旧文件的所有字符进行后缀排序形成一个字典,然后使用二分查找算法找到最优的匹配长度,依次得到整个文档所有的diff string和extra string,把这些文件信息以bzib2的方式压缩成升级增量文件。
    Bsdiff算法的增量文件中的数据由四部分组成:Header,ctrl block,diff block,extra block。
    Header 头文件包含了目标文件的起始地址,新文件大小,控制长度等。
    ctrl block提供控制部分信息,指示旧文件中保留的长度,以 及 需 要 从 diff block 和 extra block 中提取的信息,在旧文件中信息的地址偏移量等。
    diff block,extra block 分别包含所有的 diff string和 extra string。
    设备端在接收到patch文件后,解压文件,并根据差分文件的组成格式,通过bspatch算法,还原生成新文件。
    由Bsdiff算法原理可知,它所生成的patch文件并不会比源文件小,但是文件结构压缩性强,导致传输的升级数据量比完整升级要小很多,有效减少了冗余数据传输量。
    Bsdiff 算法高度依赖压缩算法,当升级文件修改的内容小概率地满足稀疏变化时,差分文件的压缩效率降低,相比整包升级的优势不明显。

Xdelta算法

    Xdelta和其他的差分升级算法一样,也需要对新文件和旧文件进行比较匹配作差分。
    在产生 patch 包时,Xdelta 可采用 hash 或者 suffix trees 等算法来寻找最大的匹配长度的字符串。
    Xdelta 差分算法的 patch文件中用到了 add、run 及 copy 三种命令。其中 add 用于将匹配到的指定长度的字符串从源文件拷到目标文件,run 用于在目标文件中加入新文件的增加部分,copy 将匹配到的文件成块的移动到目标文件中的目标地址上。
    Xdelta 对增量文件采用 Vcdiff 格式的编码方式,用 128 进制的数据表示形式,经过重编码的字符,相较于原数据节省了存储空间,达到了高效压缩的目的。
    Xdelta 算法的 patch 生成过程可通过其他算法来优化,考虑到设备端的内存消耗,patch 过程引入了Windows 块技术,随着 Windows 块变大,可达到的最长字符串的匹配结果越精确,产生的 patch 文件越小,但同时也会消耗更多的内存资源。因此,采用高效的匹配优化算法和适合的 Windows 块大小,是 Xdelta 算法的关键。

Hdiffpatch

    Hdiffpatch是一种高效的增量算法,在运行时间复杂度及内存空间占用率上相较于前两种算法存在很大的优势。
    Hdiffpatch在差异文件生成阶段引入了覆盖线C的概念,用于标志新旧版本文件的匹配度。算法将两版本程序文件看成两个具有不同长度的数组,分别表示newData[m]和oldData[n]。
    覆盖线C是点Ei.jj的集合,其中newData[i] = oldDta[j]。
    如果C = {Ei,j,Ei+1,j+1,…,eI+K,J+K},表示该覆盖线的长度为k。由此可知,经过匹配之后存在许多长度不等的覆盖线,根据差分包制作经验,当覆盖线长度大于7时,增量算法优势明显。
    patch文件就是所有满足要求的覆盖线和newData[m]中没有被匹配上的数据组成的文档。
    其中覆盖线表示信息结构包括:newPos,表示在新文档中的起始位置i;oldPos,表示在旧文件中的起始位置j;length,表示覆盖线长度k。
Hdiffpatch算法对匹配的覆盖线采取优化措施。其中包括:覆盖线包含。如果覆盖线a被另外一条完全包含,则在C中删除a信息,以减小重复信息来简化差分文件。
    覆盖线合并。对于在一条直线上的两段覆盖线,如果它们之间的间隔长度小于某一值,则把这两条覆盖线合并成一条,其中的延长部分数据作为patch文件的一部分。
    覆盖线删除。对于某些单独的覆盖线,做扩展成本比较大,无法进一步优化,在patch文件生成时,对此进行直接删除,以减小存储及升级的控制代价

    升级过程中需要低电、掉电保护,考虑断电续升级;下载过程中需要考虑空口环境,加入断点续传等异常功能,保证系统的强壮性。


关注公众号,加星标,回复1024获取学习资料,每天进步一点点。


声明:

本号原创、转载的文章、图片等版权归原作者所有,如有侵权,请联系删除。

关注、点赞、在看、转发,支持优质内容! 

评论 (0)
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 281浏览
  • 文/郭楚妤编辑/cc孙聪颖‍越来越多的企业开始蚕食动力电池市场,行业“去宁王化”态势逐渐明显。随着这种趋势的加强,打开新的市场对于宁德时代而言至关重要。“我们不希望被定义为电池的制造者,而是希望把自己称作新能源产业的开拓者。”4月21日,在宁德时代举行的“超级科技日”发布会上,宁德时代掌门人曾毓群如是说。随着宁德时代核心新品骁遥双核电池的发布,其搭载的“电电增程”技术也走进业界视野。除此之外,经过近3年试水,宁德时代在换电业务上重资加码。曾毓群认为换电是一个重资产、高投入、长周期的产业,涉及的利
    华尔街科技眼 2025-04-28 21:55 202浏览
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 274浏览
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 385浏览
  • 4月22日下午,备受瞩目的飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!1、精彩纷呈的展区产品及方案展区是本场活动的第一场重头戏,从硬件产品到软件系统,从企业级应用到高校教学应用,都吸引了现场来宾的驻足观看和交流讨论。全产品矩阵展区展示了飞凌嵌入式丰富的产品线,从嵌入式板卡到工控机,从进口芯片平台到全国产平台,无不体现出飞凌嵌入式在嵌入式主控设备研发设计方面的
    飞凌嵌入式 2025-04-28 14:43 180浏览
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 497浏览
  • 在CAN总线分析软件领域,当CANoe不再是唯一选择时,虹科PCAN-Explorer 6软件成为了一个有竞争力的解决方案。在现代工业控制和汽车领域,CAN总线分析软件的重要性不言而喻。随着技术的进步和市场需求的多样化,单一的解决方案已无法满足所有用户的需求。正是在这样的背景下,虹科PCAN-Explorer 6软件以其独特的模块化设计和灵活的功能扩展,为CAN总线分析领域带来了新的选择和可能性。本文将深入探讨虹科PCAN-Explorer 6软件如何以其创新的模块化插件策略,提供定制化的功能选
    虹科汽车智能互联 2025-04-28 16:00 230浏览
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 265浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 324浏览
  • 贞光科技代理品牌紫光国芯的车规级LPDDR4内存正成为智能驾驶舱的核心选择。在汽车电子国产化浪潮中,其产品以宽温域稳定工作能力、优异电磁兼容性和超长使用寿命赢得市场认可。紫光国芯不仅确保供应链安全可控,还提供专业本地技术支持。面向未来,紫光国芯正研发LPDDR5车规级产品,将以更高带宽、更低功耗支持汽车智能化发展。随着智能网联汽车的迅猛发展,智能驾驶舱作为人机交互的核心载体,对处理器和存储器的性能与可靠性提出了更高要求。在汽车电子国产化浪潮中,贞光科技代理品牌紫光国芯的车规级LPDDR4内存凭借
    贞光科技 2025-04-28 16:52 325浏览
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 306浏览
  •  探针台的维护直接影响其测试精度与使用寿命,需结合日常清洁、环境控制、定期校准等多维度操作,具体方法如下:一、日常清洁与保养1.‌表面清洁‌l 使用无尘布或软布擦拭探针台表面,避免残留清洁剂或硬物划伤精密部件。l 探针头清洁需用非腐蚀性溶剂(如异丙醇)擦拭,检查是否弯曲或损坏。2.‌光部件维护‌l 镜头、观察窗等光学部件用镜头纸蘸取wu水jiu精从中心向外轻擦,操作时远离火源并保持通风。3.‌内部防尘‌l 使用后及时吹扫灰尘,防止污染物进入机械滑
    锦正茂科技 2025-04-28 11:45 123浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦