CN108170460A - 一种嵌入式系统增量升级的方法及装置 - Google Patents

一种嵌入式系统增量升级的方法及装置 Download PDF

Info

Publication number
CN108170460A
CN108170460A CN201711352076.0A CN201711352076A CN108170460A CN 108170460 A CN108170460 A CN 108170460A CN 201711352076 A CN201711352076 A CN 201711352076A CN 108170460 A CN108170460 A CN 108170460A
Authority
CN
China
Prior art keywords
image file
data
version image
segment data
new version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711352076.0A
Other languages
English (en)
Other versions
CN108170460B (zh
Inventor
高迎军
童琪杰
李春强
毛晗
张敏锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN201711352076.0A priority Critical patent/CN108170460B/zh
Publication of CN108170460A publication Critical patent/CN108170460A/zh
Application granted granted Critical
Publication of CN108170460B publication Critical patent/CN108170460B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种嵌入式系统增量升级的方法及装置,所述方法包括:基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据;根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理对应生成至少两段增量包数据,将所述增量包数据合成更新包镜像文件;将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据。本发明能够优化所述嵌入式系统增量升级方法的效果,减少了升级时占用的存储空间、内存和下载开销。

Description

一种嵌入式系统增量升级的方法及装置
技术领域
本发明涉及软件系统升级技术领域,尤其涉及一种嵌入式系统增量升级的方法及装置。
背景技术
嵌入式远程通信设备在运行过程当中,由于程序运行故障、功能需求增加、性能更新改进等原因,需要对远程的设备进行软件升级。这个升级的过程目前又称呼为OTA。OTA俗称(Over-the-Air Technology)是通过移动通信的空中接口对SIM卡数据及应用进行远程管理的技术。OTA技术的应用,使得移动通信不仅可以提供语音和数据服务,而且还能提供新业务下载。对于嵌入式设备而言OTA空中升级不仅仅指的是移动通信的方式升级,而是其他途径,比如WIFI,蓝牙等方式,在需要升级的设备在通过对比自身版本与服务器版本后,得知有新版本需要升级时通过下载新的固件替换旧的固件的行为。
在现有的嵌入式系统中,对软件的升级方案主要有两种:
第一种是全量升级方案。其主要特点是使用新的软件版本的完全覆盖老版本软件,其缺点就是需要把新版本软件完全下载到本地,然后把下载的升级包覆盖到目标区域,也就说在升级的时候需要和目标区域同样大小的存储空间。
第二种是传统的增量升级方案即差分方案,传统的差分方案即采用新旧软件版本之间的差分算法得到升级包,利用该升级包实现软件升级。该升级方案虽然使升级包变小,但是在升级过程中占用的备份空间仍然太大,并且在生成新版本软件需要占用很大的内存(RAM)空间,所以存在一定的局限性,只适用于需要升级的数据量不太大的场合。
但是,对于嵌入式系统而言,其普遍存在微处理器处理能力不高、内部存储空间(SDRAM、ROM、Flash等)有限的问题,采用上述的两种软件升级方案都存在明显的弊端。
目前已有的增量更新方式并不合适资源匮乏的嵌入式系统,但增量更新带来的好处是减少下载资源的消耗和存储资源的消耗,这两项资源在嵌入式系统中显得十分重要,下载的更新镜像越小,下载效率就显得越高,对应存储空间也就越节约,但同时增量更新方式为了保障安全可靠的升级会消耗额外flash备份区和ram临时缓存区,因为进行增量更新时候,首先要下载更新镜像包到flash区,需要备份一份旧镜像文件到flash备份区,同时生成的新镜像文件需要先存放在ram缓存区,意味着使用增量更新时,需要的资源是由旧镜像的大小和更新镜像包的大小决定。
但是如果因为旧镜像太大就直接采取把镜像文件进行等长的分段切割,然后再进行增量算法,增量包效率(增量包大小和原始包大小比)和flash备份区难以达到一个平衡点,产生的更新包镜像文件将非常大导致嵌入式系统增量升级负担大或无法升级运行。
发明内容
本发明提供的嵌入式系统增量升级的方法及装置,能够通过增量处理所生成的更新包镜像文件效率更高,以及增大了flash缓存,进而使得所述嵌入式系统在增量包镜像文件效率和资源需求两者得到平衡,达到优化所述嵌入式系统增量升级方法的效果,进而在有限资源的嵌入式设备中保护了系统升级的安全性与可靠性,同时减少了升级时占用的存储空间、内存开销及下载开销。
第一方面,本发明提供一种嵌入式系统增量升级的方法,包括:
基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理对应生成至少两段增量包数据,将所述增量包数据合成更新包镜像文件;
将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据。
可选地,所述基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据包括:
根据原始版本镜像文件、新版本镜像文件和设备硬件特性参数生成更新包镜像配置参数;
将所述原始版本镜像文件和所述新版本镜像文件按所述更新包镜像配置参数分别进行阶梯式分段切割,并对应生成至少包含两段长度逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据。
可选地,所述将所述原始版本镜像文件和所述新版本镜像文件按所述更新包镜像配置参数分别进行阶梯式分段切割,并对应生成至少包含两段长度逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据包括:
根据所述更新包镜像配置参数确定所述原始版本镜像文件和所述新版本镜像文件对应的初始段镜像文件的数据大小以及最大段镜像文件数据的大小;
根据所述初始段镜像文件的数据大小分别对所述原始版本镜像文件和所述新版本镜像文件进行切割形成初始段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
在切割第N段的原始版本镜像文件分段数据和新版本镜像文件分段数据时,依赖于已切割的第N-1段所有的增量包数据大小之和,且第N段镜像文件分段数据的大小小于等于最大段镜像文件数据的大小,其中,所述N为自然数。
可选地,所述将所述增量包数据合成更新包镜像文件包括:
将根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理所生成至少两段增量包数据按照切割顺序逆向排序进行组合,并与所述更新包镜像配置参数合成为生成更新包镜像文件。
可选地,所述更新包镜像配置参数包括所述原始版本镜像文件和所述新版本镜像文件分别进行阶梯式分段切割后所对应生成的初始段镜像文件的数据大小及最大段镜像文件数据的大小,和所生成的每一个镜像增量包数据的长度及存储位置的偏移地址。
可选地,所述将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据包括:
将所述更新包镜像文件写入所述嵌入式系统的存储空间;
备份所述原始版本镜像文件分段数据到存储空间的缓存区,并将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据;
将所还原的新版本镜像文件分段数据写入并覆盖对应原始版本镜像文件分段数据所在的存储空间,依次将所述新版本镜像文件分段数据全部写入。
可选地,在所述将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据之后,所述方法还包括:
将所述新版本镜像文件分段数据存储在所述嵌入式系统的内存空间缓存区。
可选地,所述存储空间的缓存区的地址依赖于所述写入所述嵌入式系统存储空间的更新包镜像文件偏移地址和所述更新包镜像配置参数。
可选地,所述设备硬件特性参数包括所述嵌入式系统的存储介质缓存区大小和内存空间缓存区大小。
第二方面,本发明提供一种嵌入式系统增量升级的装置,包括:
阶梯式分段切割模块,用于基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据;
制作模块,用于根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理对应生成至少两段增量包数据,将所述增量包数据合成更新包镜像文件;
还原模块,用于将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据。
可选地,所述阶梯式分段切割模块包括:
配置子模块,用于根据原始版本镜像文件、新版本镜像文件和设备硬件特性参数生成更新包镜像配置参数;
确定子模块,用于根据所述更新包镜像配置参数确定所述原始版本镜像文件和所述新版本镜像文件对应的初始段镜像文件的数据大小以及最大段镜像文件数据的大小;
第一切割子模块,用于根据所述初始段镜像文件的数据大小分别对所述原始版本镜像文件和所述新版本镜像文件进行切割形成初始段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
第二切割子模块,用于在切割第N段的原始版本镜像文件分段数据和新版本镜像文件分段数据时,依赖于已切割的第N-1段所有的增量包数据大小之和,且第N段镜像文件分段数据的大小小于等于最大段镜像文件数据的大小,其中,所述N为自然数。
可选地,所述还原模块包括:
第一写入子模块,用于将所述更新包镜像文件写入所述嵌入式系统的存储空间;
备份还原子模块,用于备份所述原始版本镜像文件分段数据到存储空间的缓存区,并将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据;
存储子模块,用于将所述新版本镜像文件分段数据存储在所述嵌入式系统的内存空间缓存区;
第二写入子模块,用于将所还原的新版本镜像文件分段数据写入并覆盖对应原始版本镜像文件分段数据所在的存储空间。
本发明实施例提供的嵌入式系统增量升级的方法及装置,所述方法通过对原始版本镜像文件和新版本镜像文件进行阶梯式分段切片形成若干段逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据,通过增量处理生成若干个增量包数据并将若干个增量包数据合成更新包镜像文件,然后逐步还原更新包镜像文件里的增量包数据为新版本镜像文件分段数据,一方面,所述方法基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,不仅使得通过增量处理所生成的更新包镜像文件效率更高(所述效率指更新包大小与原始包大小的百分比),还增大了flash缓存,进而使得所述嵌入式系统在增量包镜像文件效率和资源需求两者得到平衡,达到优化所述嵌入式系统增量升级方法的效果,另一方面,所述方法在有限资源的嵌入式设备中保护了系统升级的安全性与可靠性,同时减少了升级时占用的存储空间、内存开销及下载开销。
附图说明
图1为本发明一实施例嵌入式系统增量升级的方法的流程图;
图2为本发明另一实施例嵌入式系统增量升级的方法的流程图;
图3为本发明另一实施例生成更新包镜像文件的流程图;
图4为本发明另一实施例嵌入式系统增量升级的方法的流程图;
图5为本发明另一实施例嵌入式系统增量升级的方法的流程图;
图6为本发明一实施例嵌入式系统增量升级的装置的结构示意图;
图7为本发明另一实施例嵌入式系统增量升级的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种嵌入式系统增量升级的方法,如图1所示,所述方法包括:
S11、基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
S12、根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理对应生成至少两段增量包数据,将所述增量包数据合成更新包镜像文件;
S13、将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据。
本发明实施例提供的嵌入式系统增量升级的方法通过对原始版本镜像文件和新版本镜像文件进行阶梯式分段切片形成若干段逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据,通过增量处理生成若干个增量包数据并将若干个增量包数据合成更新包镜像文件,然后逐步还原更新包镜像文件里的增量包数据为新版本镜像文件分段数据,一方面,所述方法基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,不仅使得通过增量处理所生成的更新包镜像文件效率更高(所述效率指更新包大小与原始包大小的百分比),还增大了flash缓存,进而使得所述嵌入式系统在增量包镜像文件效率和资源需求两者得到平衡,达到优化所述嵌入式系统增量升级方法的效果,另一方面,所述方法在有限资源的嵌入式设备中保护了系统升级的安全性与可靠性,同时减少了升级时占用的存储空间、内存开销及下载开销。
可选地,如图2所示,所述基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据包括:
S111、根据原始版本镜像文件、新版本镜像文件和设备硬件特性参数生成更新包镜像配置参数;
S112、将所述原始版本镜像文件和所述新版本镜像文件按所述更新包镜像配置参数分别进行阶梯式分段切割,并对应生成至少包含两段长度逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据。
可选地,所述将所述原始版本镜像文件和所述新版本镜像文件按所述更新包镜像配置参数分别进行阶梯式分段切割,并对应生成至少包含两段长度逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据包括:
S1121、根据所述更新包镜像配置参数确定所述原始版本镜像文件和所述新版本镜像文件对应的初始段镜像文件的数据大小以及最大段镜像文件数据的大小;
S1122、根据所述初始段镜像文件的数据大小分别对所述原始版本镜像文件和所述新版本镜像文件进行切割形成初始段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
S1123、在切割第N段的原始版本镜像文件分段数据和新版本镜像文件分段数据时,依赖于已切割的第N-1段所有的增量包数据大小之和,且第N段镜像文件分段数据的大小小于等于最大段镜像文件数据的大小,其中,所述N为自然数。
具体的,如图3至图5所示,本实施例所述方法中F1()为生成增量包数据的简化功能函数示意,包含差分、压缩等多个增量处理功能,X和Y为原始版本镜像文件和新版本镜像文件,Z为更新包镜像文件,Xn和Yn分别为第N段的原始版本镜像文件分段数据和新版本镜像文件分段数据,Zn为第N段的增量包数据段;LEN()为获取某一段数据的长度,F2()为增量还原的的功能函数示意,SUM为求和算法。
同时,本发明所述方法不必关心新旧镜像之间本身的内容区别数量,只需根据待更新设备硬件本身的硬件特性,提供存储空间缓存区的大小和内存空间的缓存区大小;通过硬件内存空间的缓存区大小算出最大分片长度LENmax,以及存储空间的缓存区大小计算出初始片段长度LENmin(一般为一个扇区或者一个flash扇区的倍数),同时该数值越小,代表flash缓存区大小需要的越小,进而实现对所述嵌入式系统设备硬件的充分利用,提高了所述嵌入式系统增量升级的效率。
如图4所示,所述方法中根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据生成所述更新包镜像文件过程中,当新版本镜像文件长度小于或者等于原始版本镜像文件数据长度,则LENmin=LEN(X0)=LEN(Y0),通过增量处理生成初始段增量包数据:Z0=F1(X0,Y0),并得到初始段增量包Z0的长度LEN(Z0),及下一段待分割原始版本镜像文件分段数据长度LEN(X1)=LEN(X0)+LEN(Z0),即得到了第一段的原始版本镜像文件分段数据X1,然后可以得到增量包数据Z1=F1(X1,Y1);依次得出Zn=F1(Xn,Yn),LEN(Xn)=LEN(Yn)=LEN(Xn-1)+SUM{LEN(Z0)+LEN(Z1)...+LEN(Zn-1)},LEN(Yn)=LEN(Xn);最终我们得到了每一个镜像文件分段数据的增量数据包,且当LEN(Xn)<LENmax时候,适用上述规则,否则LEN(Xn)=LEN(Yn)=LENmax。
如图5所示,当新版本镜像文件长度大于原始版本镜像文件数据长度时,则按上述将新镜像文件数据Y和原始版本镜像文件X切割完后,新镜像文件数据会余下第N+1段的新版本镜像文件分段数据Yn+1,且镜像文件分段数据包长为LEN(Yn+1),并且,当LEN(Yn+1)<LENmax时,则直接对所述第N+1段的新版本镜像文件分段数据进行增量处理生成Zn+1=F1(Xn+1,0);当LEN(Yn+1)>LENmax时,则对第N+1段的新版本镜像文件分段数据Yn+1进一步进行分割,使得切割后单份长度为LENmax,最后一份长度为多余长度,进一步继续分段进行增量处理生成若干个增量包数据;最后将所生成的全部的增量包数据和更新包镜像配置参数打包成更新包镜像文件Z。
综上所述,本实施例中所述方法在待更新设备硬件本身的硬件特性允许下,通过引入增量包数据包长因子对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,使得所形成的分段数据包长最优化,进而达到提高所述增量包数据效率和设备硬件资源的充分利用,整体提高了嵌入式系统增量升级的效率。
可选地,所述将所述增量包数据合成更新包镜像文件包括:
S12、将根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理所生成至少两段增量包数据按照切割顺序逆向排序进行组合,并与所述更新包镜像配置参数合成为生成更新包镜像文件。
可选地,所述更新包镜像配置参数包括所述原始版本镜像文件和所述新版本镜像文件分别进行阶梯式分段切割后所对应生成的初始段镜像文件的数据大小及最大段镜像文件数据的大小,和所生成的每一个镜像增量包数据的长度及存储位置的偏移地址。
可选地,所述将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据包括:
S131、将所述更新包镜像文件写入所述嵌入式系统的存储空间;
S132、备份所述原始版本镜像文件分段数据到存储空间的缓存区,并将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据;
S133、将所还原的新版本镜像文件分段数据写入并覆盖对应原始版本镜像文件分段数据所在的存储空间,依次将所述新版本镜像文件分段数据全部写入。
可选地,在所述将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据之后,所述方法还包括:
S134、将所述新版本镜像文件分段数据存储在所述嵌入式系统的内存空间缓存区。
可选地,所述存储空间的缓存区的地址依赖于所述写入所述嵌入式系统存储空间的更新包镜像文件偏移地址和所述更新包镜像配置参数。
具体的,本实施例所述方法中所述将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据中包括首先将初始段的更新包镜像文件Z0和初始段原始版本镜像文件X0写入至待更新设备flash区域里,则为所述初始段更新包镜像文件Z0的末端地址为a(0),然后设置备份初始段的原始版本镜像文件分段数据的起始偏移地址为a(0),末端地址为b,LEN(Z0)=b-a(0)。
然后通过读取更新包镜像文件Z里的更新包镜像配置参数,将初始段的原始版本镜像文件分段数据X0,及LEN(X0),清空备份所述原始版本镜像文件分段数据到存储空间的缓存区数据并将初始段的原始版本镜像文件分段数据X0的内容其备份至所述存储空间的缓存区,同时找出初始段的增量包数据Z0,进行增量还原得到初始段的新版本镜像文件分段数据Y0=F1(X0,Z0),并得到存在内存缓存区初始段的新版本镜像文件分段数据Y0,并将得到的初始段的新版本镜像文件分段数据Y0写入初始段的原始版本镜像文件分段数据X0的位置;然后设置备份所述原始版本镜像文件分段数据的起始偏移地址为a(1),则为第一段的增量包数据Z1的起始地址,清空备份所述原始版本镜像文件分段数据到存储空间的缓存区数据并将第一段的原始版本镜像文件分段数据X1的内容其备份至所述存储空间的缓存区,同时找出第一段的增量包数据Z1,进行增量还原得到初始段的新版本镜像文件分段数据Y1=F1(X1,Z1),并得到存在内存缓存区第一段的新版本镜像文件分段数据Y1,并将得到的第一段的新版本镜像文件分段数据Y1写入第一段的原始版本镜像文件分段数据X1的位置;
因此,更新服务在更新第N段数据段时,设置备份第N段的原始版本镜像文件分段数据的起始偏移地址为a(n-1),则为第N段的更新包镜像文件Zn数据段的起始地址,清空备份所述原始版本镜像文件分段数据到存储空间的缓存区数据并将第N段的原始版本镜像文件分段数据Xn的内容备份至所述存储空间的缓存区,同时找出第N段的增量包数据Zn,进行增量还原得到第N段的新版本镜像文件分段数据Yn=Fn(Xn,Zn),得到存在内存缓存区第N段的新版本镜像文件分段数据Yn,并将得到第N段的新版本镜像文件分段数据Yn写入第N段的原始版本镜像文件分段数据Xn的位置;并且不断重复上述处理步骤,直至更新包镜像文件Z中所有的增量包数据被读取完毕。
同时,本实施例中所述方法在升级更新过程中,每一步骤都存有未破坏的原始版本镜像文件分段数据和对应增量包数据的分段信息、或已经更新成功的新版本镜像文件分段数据,则需在对应的步骤位置增加状态检测,或在更新包镜像文件中的校验检测以保障更新的可靠性和安全性。
例如,当所述增量包数据为“0”时,则对对应的原始版本镜像文件分段数据不作擦写;由于,本实施例所述方法中各段的更新包镜像文件的末端地址和原始版本镜像文件分段数据的起始偏移地址可直接计算得出,避免了对前段数据的依赖性;因此,可以对不需要进行更新的分段数据直接跳过,进而提高了所述方法增量升级的效率。
可选地,所述设备硬件特性参数包括所述嵌入式系统的存储介质缓存区大小和内存空间缓存区大小。
综上所述,本实施例所述方法不仅适配性强,适合大多数的嵌入式场合,适合各种各样的物联网设备;而且所述方法优化了所述嵌入式系统增量升级方法的效果,并且最大化提高增量包镜像文件效率和资源需求高效利用。
例如,一种物联网设备微控制单元(简称:mcu),mcu硬件资源为256K(flash),128k(ram);系统软件为3个系统分别为10k(升级程序),30k,160k(主镜像);系统剩余下载区域大小为56k,在新版本镜像文件对原始版本镜像文件改动较大的情况下:
采用进行增量升级如下:
1)设置LENmax=160K,LENmin=160K(即模拟全包直接进行增量处理);
2)生成更新包镜像文件为30K左右(差分+压缩),升级消耗的资源为flash:160k+30k,RAM:160k。
而采用本实施例所述方法如下:
1)根据设备硬件特性参数,设置LENmax=30K,LENmin=2K;
2)生成更新包镜像文件的大小在40k以内,升级消耗的资源为flash:40k+2k,RAM:30k。
因此,采用本实施例所述方法对嵌入式系统进行增量升级可大大的减小升级所需的开销,还能够极大的减少占用的备份空间和内存开销,成功的在全包增量更新(消耗资源较多)和分段更新(增量包效率低)的两个场合找到一个优化方案,通过生成多段增量包数据镜像合成为更新包镜像文件,然后逐步还原更新包镜像文件里的各段增量包数据为新版本镜像文件分段数据,在有限资源的嵌入式设备保护了升级的安全性与可靠性,同时减少了升级时占用的存储空间、内存开销及下载开销。
本发明实施例还提供一种嵌入式系统增量升级的装置,如图6所示,所述装置包括:
阶梯式分段切割模块11,用于基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并分别对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
制作模块12,用于根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理对应生成至少两段增量包数据,将所述增量包数据合成更新包镜像文件;
还原模块13,用于将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据。
本发明实施例提供的嵌入式系统增量升级的装置通过阶梯式分段切割模块对原始版本镜像文件和新版本镜像文件进行阶梯式分段切片形成若干段逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据,通过制作模块增量处理生成若干个增量包数据并将若干个增量包数据合成更新包镜像文件,然后由还原模块逐步还原更新包镜像文件里的增量包数据为新版本镜像文件分段数据,一方面,所述装置通过阶梯式分段切割模块基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,不仅使得通过增量处理所生成的更新包镜像文件效率更高(所述效率指更新包大小与原始包大小的百分比),还增大了flash缓存,进而使得所述嵌入式系统在增量包镜像文件效率和资源需求两者得到平衡,达到优化所述嵌入式系统增量升级方法的效果,另一方面,所述装置通过制作模块和还原模块在有限资源的嵌入式设备中保护了系统升级的安全性与可靠性,同时减少了升级时占用的存储空间、内存开销及下载开销。
可选地,如图7所示,所述阶梯式分段切割模块11包括:
配置子模块111,用于根据原始版本镜像文件、新版本镜像文件和设备硬件特性参数生成更新包镜像配置参数;
确定子模块112,用于根据所述更新包镜像配置参数确定所述原始版本镜像文件和所述新版本镜像文件对应的初始段镜像文件的数据大小以及最大段镜像文件数据的大小;
第一切割子模块113,用于根据所述初始段镜像文件的数据大小分别对所述原始版本镜像文件和所述新版本镜像文件进行切割形成初始段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
第二切割子模块114,用于在切割第N段的原始版本镜像文件分段数据和新版本镜像文件分段数据时,依赖于已切割的第N-1段所有的增量包数据大小之和,且第N段镜像文件分段数据的大小小于等于最大段镜像文件数据的大小,其中,所述N为自然数。
可选地,所述还原模块13包括:
第一写入子模块131,用于将所述更新包镜像文件写入所述嵌入式系统的存储空间;
备份还原子模块132,用于备份所述原始版本镜像文件分段数据到存储空间的缓存区,并将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据;
存储子模块133,用于将所述新版本镜像文件分段数据存储在所述嵌入式系统的内存空间缓存区;
第二写入子模块134,用于将所还原的新版本镜像文件分段数据写入并覆盖对应原始版本镜像文件分段数据所在的存储空间。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (12)

1.一种嵌入式系统增量升级的方法,其特征在于,包括:
基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理对应生成至少两段增量包数据,将所述增量包数据合成更新包镜像文件;
将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据。
2.根据权利要求1所述的方法,其特征在于,所述基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据包括:
根据原始版本镜像文件、新版本镜像文件和设备硬件特性参数生成更新包镜像配置参数;
将所述原始版本镜像文件和所述新版本镜像文件按所述更新包镜像配置参数分别进行阶梯式分段切割,并对应生成至少包含两段长度逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据。
3.根据权利要求2所述的方法,其特征在于,所述将所述原始版本镜像文件和所述新版本镜像文件按所述更新包镜像配置参数分别进行阶梯式分段切割,并对应生成至少包含两段长度逐渐增大的原始版本镜像文件分段数据和新版本镜像文件分段数据包括:
根据所述更新包镜像配置参数确定所述原始版本镜像文件和所述新版本镜像文件对应的初始段镜像文件的数据大小以及最大段镜像文件数据的大小;
根据所述初始段镜像文件的数据大小分别对所述原始版本镜像文件和所述新版本镜像文件进行切割形成初始段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
在切割第N段的原始版本镜像文件分段数据和新版本镜像文件分段数据时,依赖于已切割的第N-1段所有的增量包数据大小之和,且第N段镜像文件分段数据的大小小于等于最大段镜像文件数据的大小,其中,所述N为自然数。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述增量包数据合成更新包镜像文件包括:
将根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理所生成至少两段增量包数据按照切割顺序逆向排序进行组合,并与所述更新包镜像配置参数合成为更新包镜像文件。
5.根据权利要求2-4任一所述的方法,其特征在于,所述更新包镜像配置参数包括所述原始版本镜像文件和所述新版本镜像文件分别进行阶梯式分段切割后所对应生成的初始段镜像文件的数据大小及最大段镜像文件数据的大小,和所生成的每一个增量包数据的长度及存储位置的偏移地址。
6.根据权利要求2-5任一所述的方法,其特征在于,所述将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据包括:
将所述更新包镜像文件写入所述嵌入式系统的存储空间;
备份所述原始版本镜像文件分段数据到存储空间的缓存区,并将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据;
将所还原的新版本镜像文件分段数据写入并覆盖对应原始版本镜像文件分段数据所在的存储空间,依次将所述新版本镜像文件分段数据全部写入。
7.根据权利要求6所述的方法,其特征在于,在所述将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据之后,所述方法还包括:
将所述新版本镜像文件分段数据存储在所述嵌入式系统的内存空间缓存区。
8.根据权利要求6或7所述的方法,其特征在于,所述存储空间的缓存区的地址依赖于所述写入所述嵌入式系统存储空间的更新包镜像文件偏移地址和所述更新包镜像配置参数。
9.根据权利要求1-8任一所述的方法,其特征在于,所述设备硬件特性参数包括所述嵌入式系统的存储介质缓存区大小和内存空间缓存区大小。
10.一种嵌入式系统增量升级的装置,其特征在于,包括:
阶梯式分段切割模块,用于基于原始版本镜像文件、新版本镜像文件和设备硬件特性参数分别对原始版本镜像文件和新版本镜像文件进行阶梯式分段切割,并对应生成包含至少两段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
制作模块,用于根据所述原始版本镜像文件分段数据和所述新版本镜像文件分段数据进行增量处理对应生成至少两段增量包数据,将所述增量包数据合成更新包镜像文件;
还原模块,用于将所述更新包镜像文件中的增量包数据增量还原为新版本镜像文件分段数据并对应替换所述原始版本镜像文件分段数据。
11.根据权利要求10所述的装置,其特征在于,所述阶梯式分段切割模块包括:
配置子模块,用于根据原始版本镜像文件、新版本镜像文件和设备硬件特性参数生成更新包镜像配置参数;
确定子模块,用于根据所述更新包镜像配置参数确定所述原始版本镜像文件和所述新版本镜像文件对应的初始段镜像文件的数据大小以及最大段镜像文件数据的大小;
第一切割子模块,用于根据所述初始段镜像文件的数据大小分别对所述原始版本镜像文件和所述新版本镜像文件进行切割形成初始段的原始版本镜像文件分段数据和新版本镜像文件分段数据;
第二切割子模块,用于在切割第N段的原始版本镜像文件分段数据和新版本镜像文件分段数据时,依赖于已切割的第N-1段所有的增量包数据大小之和,且第N段镜像文件分段数据的大小小于等于最大段镜像文件数据的大小,其中,所述N为自然数。
12.根据权利要求10或11所述的装置,其特征在于,所述还原模块包括:
第一写入子模块,用于将所述更新包镜像文件写入所述嵌入式系统的存储空间;
备份还原子模块,用于备份所述原始版本镜像文件分段数据到存储空间的缓存区,并将所述存储空间里对应的增量包数据增量还原为新版本镜像文件分段数据;
存储子模块,用于将所述新版本镜像文件分段数据存储在所述嵌入式系统的内存空间缓存区;
第二写入子模块,用于将所还原的新版本镜像文件分段数据写入并覆盖对应原始版本镜像文件分段数据所在的存储空间。
CN201711352076.0A 2017-12-15 2017-12-15 一种嵌入式系统增量升级的方法及装置 Active CN108170460B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711352076.0A CN108170460B (zh) 2017-12-15 2017-12-15 一种嵌入式系统增量升级的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711352076.0A CN108170460B (zh) 2017-12-15 2017-12-15 一种嵌入式系统增量升级的方法及装置

Publications (2)

Publication Number Publication Date
CN108170460A true CN108170460A (zh) 2018-06-15
CN108170460B CN108170460B (zh) 2020-12-11

Family

ID=62522449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711352076.0A Active CN108170460B (zh) 2017-12-15 2017-12-15 一种嵌入式系统增量升级的方法及装置

Country Status (1)

Country Link
CN (1) CN108170460B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714756A (zh) * 2018-12-28 2019-05-03 东信和平科技股份有限公司 Profile数据包处理方法及装置、嵌入式SIM卡
CN109947457A (zh) * 2018-12-29 2019-06-28 上海寰创通信科技股份有限公司 一种数据库升级方法
CN110716727A (zh) * 2019-09-02 2020-01-21 领翌技术(横琴)有限公司 软件升级方法及系统
CN110941433A (zh) * 2019-11-13 2020-03-31 佛山职业技术学院 一种边缘辅助部署第三方应用到微控制器方法及系统
CN111414169A (zh) * 2020-02-21 2020-07-14 苏州浪潮智能科技有限公司 Bmc镜像升级方法及相关组件
CN111857790A (zh) * 2020-07-23 2020-10-30 北京自如信息科技有限公司 一种固件升级方法、装置及计算机设备
CN112579141A (zh) * 2020-12-23 2021-03-30 华立科技股份有限公司 一种嵌入式系统的固件更新方法、装置、设备及存储介质
CN112631633A (zh) * 2021-01-07 2021-04-09 南方电网数字电网研究院有限公司 基于双芯智能电表的功能模块升级方法和装置
CN112748866A (zh) * 2019-10-31 2021-05-04 北京沃东天骏信息技术有限公司 一种增量索引数据的处理方法和装置
CN112905217A (zh) * 2021-05-07 2021-06-04 鹏城实验室 嵌入式程序的程序更新方法、终端、系统及存储介质
CN112905221A (zh) * 2021-02-20 2021-06-04 百度在线网络技术(北京)有限公司 一种版本回退方法、装置、电子设备及存储介质
CN112925536A (zh) * 2021-03-26 2021-06-08 平安科技(深圳)有限公司 虚拟机系统镜像处理方法、装置、设备及存储介质
CN113672349A (zh) * 2021-08-20 2021-11-19 绿盟科技集团股份有限公司 一种镜像的更新方法、装置、设备及介质
CN113721967A (zh) * 2021-08-30 2021-11-30 苏州磐联集成电路科技股份有限公司 差分包生成方法,差分包生成设备,及升级方法
CN113867210A (zh) * 2021-09-29 2021-12-31 中国科学院长春光学精密机械与物理研究所 多路星载嵌入式系统软件在轨重构控制系统及控制方法
CN114675902A (zh) * 2022-03-11 2022-06-28 潍柴动力股份有限公司 基于嵌入式设备的软件版本的管理方法与管理装置
CN115756554A (zh) * 2023-02-13 2023-03-07 美云智数科技有限公司 版本升级方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1469244A (zh) * 2002-07-19 2004-01-21 文化传信科技(澳门)有限公司 文件下载方法及系统
CN101770515A (zh) * 2010-01-18 2010-07-07 杭州顺网科技股份有限公司 一种基于数据块比较的数据更新方法
CN102025717A (zh) * 2010-09-10 2011-04-20 香港城市大学深圳研究院 一种传输多媒体数据的方法
CN102693145A (zh) * 2012-05-31 2012-09-26 红石阳光(北京)科技有限公司 用于嵌入式系统的差分升级方法
US9063819B2 (en) * 2011-01-02 2015-06-23 Cisco Technology, Inc. Extensible patch management
CN105049514A (zh) * 2015-07-30 2015-11-11 北京奇虎科技有限公司 一种文件下载方法和装置
CN105335181A (zh) * 2014-08-06 2016-02-17 中兴通讯股份有限公司 一种实现ota升级的方法和终端
CN105487907A (zh) * 2015-12-07 2016-04-13 青岛海信电器股份有限公司 一种差分包的制作方法和装置
CN105589725A (zh) * 2016-01-11 2016-05-18 武汉虹信通信技术有限责任公司 一种电子设备的升级包制作方法和升级方法、升级包

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1469244A (zh) * 2002-07-19 2004-01-21 文化传信科技(澳门)有限公司 文件下载方法及系统
CN101770515A (zh) * 2010-01-18 2010-07-07 杭州顺网科技股份有限公司 一种基于数据块比较的数据更新方法
CN102025717A (zh) * 2010-09-10 2011-04-20 香港城市大学深圳研究院 一种传输多媒体数据的方法
US9063819B2 (en) * 2011-01-02 2015-06-23 Cisco Technology, Inc. Extensible patch management
CN102693145A (zh) * 2012-05-31 2012-09-26 红石阳光(北京)科技有限公司 用于嵌入式系统的差分升级方法
CN105335181A (zh) * 2014-08-06 2016-02-17 中兴通讯股份有限公司 一种实现ota升级的方法和终端
CN105049514A (zh) * 2015-07-30 2015-11-11 北京奇虎科技有限公司 一种文件下载方法和装置
CN105487907A (zh) * 2015-12-07 2016-04-13 青岛海信电器股份有限公司 一种差分包的制作方法和装置
CN105589725A (zh) * 2016-01-11 2016-05-18 武汉虹信通信技术有限责任公司 一种电子设备的升级包制作方法和升级方法、升级包

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714756A (zh) * 2018-12-28 2019-05-03 东信和平科技股份有限公司 Profile数据包处理方法及装置、嵌入式SIM卡
CN109947457A (zh) * 2018-12-29 2019-06-28 上海寰创通信科技股份有限公司 一种数据库升级方法
CN110716727A (zh) * 2019-09-02 2020-01-21 领翌技术(横琴)有限公司 软件升级方法及系统
CN112748866A (zh) * 2019-10-31 2021-05-04 北京沃东天骏信息技术有限公司 一种增量索引数据的处理方法和装置
CN110941433A (zh) * 2019-11-13 2020-03-31 佛山职业技术学院 一种边缘辅助部署第三方应用到微控制器方法及系统
CN110941433B (zh) * 2019-11-13 2022-03-22 佛山职业技术学院 一种边缘辅助部署第三方应用到微控制器方法及系统
CN111414169A (zh) * 2020-02-21 2020-07-14 苏州浪潮智能科技有限公司 Bmc镜像升级方法及相关组件
CN111857790A (zh) * 2020-07-23 2020-10-30 北京自如信息科技有限公司 一种固件升级方法、装置及计算机设备
CN112579141A (zh) * 2020-12-23 2021-03-30 华立科技股份有限公司 一种嵌入式系统的固件更新方法、装置、设备及存储介质
CN112631633A (zh) * 2021-01-07 2021-04-09 南方电网数字电网研究院有限公司 基于双芯智能电表的功能模块升级方法和装置
CN112905221A (zh) * 2021-02-20 2021-06-04 百度在线网络技术(北京)有限公司 一种版本回退方法、装置、电子设备及存储介质
CN112925536B (zh) * 2021-03-26 2024-05-10 平安科技(深圳)有限公司 虚拟机系统镜像处理方法、装置、设备及存储介质
CN112925536A (zh) * 2021-03-26 2021-06-08 平安科技(深圳)有限公司 虚拟机系统镜像处理方法、装置、设备及存储介质
CN112905217B (zh) * 2021-05-07 2021-08-20 鹏城实验室 嵌入式程序的程序更新方法、终端、系统及存储介质
CN112905217A (zh) * 2021-05-07 2021-06-04 鹏城实验室 嵌入式程序的程序更新方法、终端、系统及存储介质
CN113672349A (zh) * 2021-08-20 2021-11-19 绿盟科技集团股份有限公司 一种镜像的更新方法、装置、设备及介质
CN113721967A (zh) * 2021-08-30 2021-11-30 苏州磐联集成电路科技股份有限公司 差分包生成方法,差分包生成设备,及升级方法
US12118348B2 (en) 2021-08-30 2024-10-15 Suzhou PanKore Integrated Circuit Technology Co., Ltd. Method and equipment for generating a differential upgrade package, and method for upgrade
CN113867210A (zh) * 2021-09-29 2021-12-31 中国科学院长春光学精密机械与物理研究所 多路星载嵌入式系统软件在轨重构控制系统及控制方法
CN113867210B (zh) * 2021-09-29 2024-04-05 中国科学院长春光学精密机械与物理研究所 多路星载嵌入式系统软件在轨重构控制方法
CN114675902A (zh) * 2022-03-11 2022-06-28 潍柴动力股份有限公司 基于嵌入式设备的软件版本的管理方法与管理装置
CN114675902B (zh) * 2022-03-11 2023-08-18 潍柴动力股份有限公司 基于嵌入式设备的软件版本的管理方法与管理装置
CN115756554A (zh) * 2023-02-13 2023-03-07 美云智数科技有限公司 版本升级方法及装置
CN115756554B (zh) * 2023-02-13 2023-06-30 美云智数科技有限公司 版本升级方法及装置

Also Published As

Publication number Publication date
CN108170460B (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
CN108170460A (zh) 一种嵌入式系统增量升级的方法及装置
US10732857B2 (en) Techniques for reducing memory write operations using coalescing memory buffers and difference information
US10318181B2 (en) System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US7809900B2 (en) System, method, and computer program product for delaying an operation that reduces a lifetime of memory
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
CN108228224B (zh) 一种嵌入式系统差分升级的方法及装置
US8230164B2 (en) Techniques for multi-memory device lifetime management
US7890464B2 (en) Processing software images and generating difference files
US9747298B2 (en) Inline garbage collection for log-structured file systems
US7904764B2 (en) Memory lifetime gauging system, method and computer program product
CN111240722B (zh) 空中升级固件的方法及其所应用的终端、服务器及系统
CN101390063A (zh) Fat卷上基于文件的压缩
CN111475195A (zh) 一种固件升级方法、装置和系统
WO2008063647A9 (en) Delaying an operation that reduces a lifetime of memory
CN110941514B (zh) 一种数据备份方法、恢复方法、计算机设备和存储介质
CN102904878A (zh) 用于数据包的高效下载的方法及系统
CN111221682B (zh) 一种存储系统镜像的方法
CN105740017A (zh) 云电视系统的升级方法及装置
CN110870287A (zh) 对部分压缩固件的空中(ota)更新
US10282127B2 (en) Managing data in a storage system
CN102298534B (zh) 软件写入机顶盒的方法
CN113568573B (zh) 数据存储方法、数据存储装置、存储介质及产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant