一种固件升级方法、装置及终端制造方法及图纸

技术编号:24035064 阅读:24 留言:0更新日期:2020-05-07 01:40
本申请实施例公开了一种固件升级方法、装置及终端,依次获取分块差分升级包每个数据块中的第一升级数据和操作指令,将第一数据按照操作指令在所述旧固件版本镜像中转换为所述第二升级数据,控制所述第一升级数据和所述第二升级数据覆盖所述旧固件版本镜像中的待升级数据区域。根据第一升级数据和第二升级数据在旧固件版本镜像中完成升级为新固件版本镜像的操作,整个升级过程无需额外生成新固件版本镜像,无需为新固件版本镜像预留存储空间。而且分块差分升级包相比传统的差分升级包利用操作指令替换了传统差分升级包中的部分或全部数据,进一步减小了存储分块差分升级包的闪存开销,进而使得升级过程中闪存空间资源占用小。

A firmware upgrade method, device and terminal

【技术实现步骤摘要】
一种固件升级方法、装置及终端
本申请涉及物联网终端
,尤其涉及一种固件升级方法、装置及终端。
技术介绍
物联网是在互联网基础上延伸和扩展的网络,其用户端延伸扩展到了任何物品与物品之间进行信息交换和通信。在当前物联网服务中,通过物联网平台获取物联网终端的采集数据,并将获取的数据提供给各个具体的物联网服务,例如车辆管理、零售管理、物流管理等。物联网平台会对于物联网终端进行管理,而物联网端侧瘦设备则是物联网终端管理的关键设备之一。随着物联网服务的升级,物联网端侧瘦设备也需要进行相应的固件升级,以提升对物联网终端的管理。传统技术中物联网端侧瘦设备的固件升级方法有很多种,包括:全镜像升级方法、压缩镜像升级方法和差分升级方法。其中,由于差分升级方法具有占用空间信号小,实现简单等优点,因此差分升级方法成为物联网端侧瘦设备最常用的固件升级方法之一。如图1所示,差分升级方法过程为:通过物联网端侧瘦设备中旧固件版本1和新固件版本2生成一个差分升级包,然后将差分升级包下载到物联网端侧瘦设备的闪存中,然后在物联网端侧瘦设备运行升级程序,通过差分升级包将旧固件版本1升级到新固件版本2。差分升级方法虽然可以实现物联网端侧瘦设备的固件升级,但是固件升级过程中需要通过使用差分升级包与旧固件版本镜像进行比较,获取新固件版本的镜像存储到物联网端侧瘦设备的闪存中,然后将新固件版本的镜像替换旧固件版本镜像完成升级。在升级过程中,为了避免升级过程中断电等情况引起升级失败,物联网端侧瘦设备的闪存需要对旧固件版本的镜像做全镜像备份,因此在升级过程占用闪存空间资源大。
技术实现思路
本申请提供了一种固件升级方法、装置及终端,以解决传统技术中使用差分升级方法对物联网端瘦设备进行固件升级过程中,占用闪存空间资源大的问题。第一方面,本申请提供了一种固件升级方法,所述方法包括:依次获取分块差分升级包每个数据块中的第一升级数据和操作指令,所述第一升级数据为新固件版本镜像相比旧固件版本镜像增加的数据,所述操作指令用于指示根据所述旧固件版本镜像中的数据获得所述第二升级数据。将所述操作指令中指示的第一数据按照所述操作指令在所述旧固件版本镜像中转换为所述第二升级数据。当所述旧固件版本镜像中不存在所述第一数据时,控制所述第一升级数据和所述第二升级数据覆盖所述旧固件版本镜像中的待升级数据区域。所述第一升级数据无法通过所述旧固件版本镜像中的任意数据转换获得。所述第二升级数据是通过所述旧固件版本镜像中的数据(例如第一数据)转换获得的。所述第一升级数据和所述第二升级数据组成所述新固件版本镜像和所述旧固件版本镜像的差异数据。在一些实现方式中,所述第一数据为所述旧固件版本镜像中任一依赖度不为0的数据,所述依赖度用于指示转换为所述第二升级数据需要所述第一数据的次数,其中,每生成一个第二升级数据,更新所述第一数据的依赖度。应理解的是,这里的“新固件版本镜像”不是在完成固件升级的这台计算机上额外生成的,只是指代目标镜像。采用本实现方式,根据差分升级包中的操作指令在旧固件版本镜像中将操作指令指示的第一数据转换为第二升级数据,根据第一升级数据和第二升级数据在旧固件版本镜像中完成升级为新固件版本镜像的操作。整个升级过程无需额外生成新固件版本镜像,无需为新固件版本镜像预留存储空间;而且分块差分升级包相比传统的差分升级包利用操作指令替换了传统差分升级包中的部分或全部数据,进一步减小了存储分块差分升级包的闪存开销,进而使得升级过程中闪存空间资源占用小。结合第一方面,在第一方面第一种可能的实现方式中,所述将操作指令中指示的第一数据按照所述操作指令在所述旧固件版本镜像中转换为所述第二升级数据,包括:获取所述操作指令指示对应的所述第一数据的字段范围;根据所述字段范围从所述旧固件版本镜像中确定所述第一数据;按照所述操作指令中的转换路径在所述旧固件版本镜像中将所述第一数据转换为所述第二升级数据。结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述按照操作指令中的转换路径在所述旧固件版本镜像中将所述第一数据转换为所述第二升级数据,包括:在所述旧固件版本镜像中确定一个备份区,所述备份区为所述旧固件版本镜像中的待删除的数据对应的数据区域;将所述第一数据复制到所述备份区;按照所述转换路径在所述备份区内将所述第一数据转换为第二升级数据。结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,还包括:如果所述待升级数据区域中存在所述第一数据,将所述第一升级数据放入所述备份区。结合第一方面第二种可能的实现方式,在第一方面第四种可能的实现方式中,还包括:如果所述待升级数据区域中存在所述第一数据,将所述第一数据放入所述备份区。第二方面,本申请提供了一种固件升级方法,所述方法包括:根据新固件版本镜像和旧固件版本镜像的差异数据获得初始差分升级包;将所述新固件版本镜像拆分为第一预设长度的第一数据块,所述第一数据块为所述新固件版本镜像拆分后的任一数据块;根据生成所述第一数据块对应的所述初始差分升级包的数据区域将所述初始差分升级包进行拆分获得第二数据块,所述第二数据块为所述初始差分升级包拆分后的任一数据块;确定所述第二数据块对所述旧固件版本镜像中每个原始数据块的依赖度;根据所述依赖度更新所述第二数据块,获得分块差分升级包,所述更新第二数据块包括:将所述第二数据块中的部分或全部数据更换为操作指令,所述操作指令用于指示根据所述原始数据块生成所述第二数据块中被更换为操作指令的数据。采用本实现方式,首先将初始差分升级包进行分块,然后将分块获得的初始差分升级包数据块中的部分或全部的数据通过操作指令进行替代,进而减小了差分升级包对Flash的占用空间。结合第二方面,在第二方面第一种可能的实现方式中,所述根据生成第一数据块对应的所述初始差分升级包的数据区域将所述初始差分升级包进行拆分获得第二数据块,包括:确定每个所述第一数据块对应所述初始差分升级包的字段范围;将每个字段范围的末地址作为所述初始差分升级包的拆分点,拆分所述初始差分升级包。结合第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述确定第二数据块对所述旧固件版本镜像中每个原始数据块的依赖度,包括:如果根据所述原始数据块可以获得所述第二数据块中部分或全部数据,更新所述原始数据块的依赖度;其中,所述第二数据块中的数据可以通过一个或多个所述原始数据块获得。结合第二方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述根据依赖度更新所述第二数据块,包括:确定根据所述原始数据块获得所述第二数据块中部分或全部数据对应的操作指令,所述操作指令包括以下一种或多种:平移所述原始数据块到指定字段位置、将所述原始数据块的预设区域的数据进行删除、将所述原始数据块按照指定路径进行变换;将所述操作指令添加到所述第二数据块并删除所述部分或全部数据。结合第二方面第三种可能的实现方式,在第二方面第四种可能的实现方式中,还包括:每更新完一个所述第二数据块,本文档来自技高网
...

【技术保护点】
1.一种固件升级方法,其特征在于,所述方法包括:/n依次获取分块差分升级包每个数据块中的第一升级数据和操作指令,所述第一升级数据为新固件版本镜像相比旧固件版本镜像增加的数据;所述操作指令用于指示根据所述旧固件版本镜像中的数据获得第二升级数据;/n将第一数据按照所述操作指令在所述旧固件版本镜像中转换为所述第二升级数据,所述第一数据为所述旧固件版本镜像中的数据;/n控制所述第一升级数据和所述第二升级数据覆盖所述旧固件版本镜像中的待升级数据区域。/n

【技术特征摘要】
1.一种固件升级方法,其特征在于,所述方法包括:
依次获取分块差分升级包每个数据块中的第一升级数据和操作指令,所述第一升级数据为新固件版本镜像相比旧固件版本镜像增加的数据;所述操作指令用于指示根据所述旧固件版本镜像中的数据获得第二升级数据;
将第一数据按照所述操作指令在所述旧固件版本镜像中转换为所述第二升级数据,所述第一数据为所述旧固件版本镜像中的数据;
控制所述第一升级数据和所述第二升级数据覆盖所述旧固件版本镜像中的待升级数据区域。


2.根据权利要求1所述的方法,其特征在于,所述将第一数据按照所述操作指令在所述旧固件版本镜像中转换为所述第二升级数据,包括:
获取所述操作指令指示对应的所述第一数据的字段范围;
根据所述字段范围从所述旧固件版本镜像中确定所述第一数据;
按照所述操作指令中的转换路径在所述旧固件版本镜像中将所述第一数据转换为所述第二升级数据。


3.根据权利要求2所述的方法,其特征在于,所述按照操作指令中的转换路径在所述旧固件版本镜像中将所述第一数据转换为所述第二升级数据,包括:
在所述旧固件版本镜像中确定一个备份区,所述备份区为所述旧固件版本镜像中的待删除的数据对应的数据区域;
将所述第一数据复制到所述备份区;
按照所述转换路径在所述备份区内将所述第一数据转换为第二升级数据。


4.根据权利要求3所述的方法,其特征在于,还包括:如果所述待升级数据区域中存在所述第一数据,将所述第一升级数据放入所述备份区。


5.根据权利要求3所述的方法,其特征在于,还包括:如果所述待升级数据区域中存在所述第一数据,将所述第一数据放入所述备份区。


6.一种固件升级方法,其特征在于,所述方法包括:
根据新固件版本镜像和旧固件版本镜像的差异数据获得初始差分升级包;
将所述新固件版本镜像拆分为第一预设长度的第一数据块,所述第一数据块为所述新固件版本镜像拆分后的任一数据块;
根据生成所述第一数据块对应的所述初始差分升级包的数据区域将所述初始差分升级包进行拆分获得第二数据块,所述第二数据块为所述初始差分升级包拆分后的任一数据块;
确定所述第二数据块对所述旧固件版本镜像中每个原始数据块的依赖度;
根据所述依赖度更新所述第二数据块,获得分块差分升级包,所述更新第二数据块包括:将所述第二数据块中的部分或全部数据更换为操作指令,所述操作指令用于指示根据所述原始数据块生成所述第二数据块中被更换为操作指令的数据。


7.根据权利要求6所述的方法,其特征在于,所述根据生成第一数据块对应的所述初始差分升级包的数据区域将所述初始差分升级包进行拆分获得第二数据块,包括:
确定每个所述第一数据块对应所述初始差分升级包的字段范围;
将每个字段范围的末地址作为所述初始差分升级包的拆分点,拆分所述初始差分升级包。


8.根据权利要求7所述的方法,其特征在于,所述确定第二数据块对所述旧固件版本镜像中每个原始数据块的依赖度,包括:
如果根据所述原始数据块可以获得所述第二数据块中部分或全部数据,更新所述原始数据块的依赖度;
其中,所述第二数据块中的数据可以通过一个或多个所述原始数据块获得。


9.根据权利要求8所述的方法,其特征在于,所述根据依赖度更新所述第二数据块,包括:
确定根据所述原始数据块获得所述第二数据块中部分或全部数据对应的操作指令,所述操作指令包括以下一种或多种:平移所述原始数据块到指定字段位置、将所述原始数据块的预设区域的数据进行删除、将所述原始数据块按照指定路径进行变换;
将所述操作指令添加到所述第二数据块并删除所述部分或全部数据。


10.根据权利要求9所述的方法,其特征在于,还包括:每更新完一个所述第二数据块,更新所述原始数据块的依赖度。


11.一种固件升级装置,其特征在于,所述装置包括:
获取模块,用于依次获取分块差分升级包每个数据块中的第一升级数据和操作指令,所述第一升级数据为新固件版本镜像相比旧固件版本镜像增加的数据;所述操作指令用于指示根据所述旧固件版本镜像中的数据获得第二升级数据;
数据转化模块,用于将第一数...

【专利技术属性】
技术研发人员:于洋席禹豪朱聪
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1