CN111596945B - 嵌入式系统动态多分区固件的差分升级方法 - Google Patents
嵌入式系统动态多分区固件的差分升级方法 Download PDFInfo
- Publication number
- CN111596945B CN111596945B CN202010259968.1A CN202010259968A CN111596945B CN 111596945 B CN111596945 B CN 111596945B CN 202010259968 A CN202010259968 A CN 202010259968A CN 111596945 B CN111596945 B CN 111596945B
- Authority
- CN
- China
- Prior art keywords
- partition
- data
- version data
- upgrading
- value
- 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.)
- Active
Links
- 238000005192 partition Methods 0.000 title claims abstract description 287
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 11
- 239000013598 vector Substances 0.000 claims description 37
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000002372 labelling Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了嵌入式系统动态多分区固件的差分升级方法,包括:比较新老版本数据的第一分区的长度大小;当两者长度相等时,基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级;当前者长度大于后者长度时,先基于第一差分规则,执行相应操作,后基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级;当前者长度小于后者长度时,基于用于嵌入式系统的差分升级方法,先对老版本数据第一分区进行升级,后基于第二差分规则,执行相应操作;重复上述步骤并对老版本数据的N‑1个剩余分区差分升级。通过比较新老版本数据对应的分区长度,来执行相应的动态多分区的升级流程,避免依赖关系失效。
Description
技术领域
本发明涉及嵌入式系统技术领域,特别涉及嵌入式系统动态多分区固件的差分升级方法。
背景技术
目前很多的物联网设备的存储,一个固件内部可能是由多个分区固件组合而成,不同分区的固件由不同的代码编译生成,分区的固件大小是随着代码的变化而改变的。对分区的空间划分有固定分区的和动态分区的区别,如图1所示。
固定分区方式会为每一个分区预先划分好固定的地址空间,假若给分区1划分了10M空间,但实际的固件大小为8M,那么余下的2M将空闲。分区2、分区3也同样如此,会有部分区域空闲。动态分区的方式则为:不预先划分,而是根据实际的分区固件大小制定对应的地址空间。假若分区1固件大小为8M,则分区1的地址空间大小即为8M。紧接着8M地址之后即为分区2地址空间,以此类推下一个分区都是紧接着上一个分区。在分区1的前端固定区域,增加分区表,记录每一个分区的起始地址和结束地址。显然动态分区的方式要比固定分区方式更节省存储空间。
动态分区的方式虽然降低了硬件成本,但是会导致差分文件更大。因为,物联网设备差分升级的方案是按照地址对齐的方式来生成差分文件的,对于动态分区的情况,相同的地址下,有可能老数据是分区1(分区2)的数据,而新数据是分区2(分区1)的数据(如图2所示),分区1和分区2的数据显然是没有依赖关系的,所以会导致差分文件更大。本方法主要阐述的是对于动态分区固件的一种升级方案,解决上述的问题。
发明内容
本发明提供嵌入式系统动态多分区固件的差分升级方法,用以通过比较新老版本数据对应的分区长度,来执行相应的动态多分区的升级流程,避免依赖关系失效。
本发明提供嵌入式系统动态多分区固件的差分升级方法,包括:
步骤1:比较新老版本数据的第一分区的长度大小;
当新版本数据第一分区长度等于老版本数据第一分区长度时,执行步骤2;
当新版本数据第一分区长度大于老版本数据第一分区长度时,执行步骤3;
当新版本数据第一分区长度小于老版本数据第一分区长度时,执行步骤4;
步骤2:基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,之后执行步骤5;
步骤3:基于第一差分规则,将老版本数据第二分区及之后的分区数据向右移动,并更新分区表,并基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,之后执行步骤5;
步骤4:基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,并基于第二差分规则,将老版本数据第二分区及之后的分区数据向左移动,并更新分区表,之后执行步骤5;
步骤5:重复所述步骤1-4,对老版本数据的N-1个剩余分区差分升级。
在一种可能实现的方式中,所述第一差分规则包括:
利用老版本数据的第一分区长度和新版本数据的第一分区长度,计算出右差值,并将所述右差值作为老版本数据的第二分区及之后分区数据向右移动的偏移量;
根据所述向右移动的偏移量将所述老版本数据的第二分区及之后的分区数据向右移动;
同时根据分区移动结果更新老版本数据对应的分区表;
更新完成后,所述老版本数据的第二分区与新版本数据的第二分区的起始地址相同。
在一种可能实现的方式中,所述第二差分规则包括:
利用老版本数据的第一分区长度和新版本数据的第一分区长度,计算出左差值,并将所述左差值作为老版本数据的第二分区及之后分区数据向左移动的偏移量;
根据所述向左移动的偏移量将所述老版本数据的第二分区及之后的分区数据向左移动;
同时根据分区移动结果更新老版本数据对应的分区表;
更新完成后,所述老版本数据的第二分区与新版本数据的第二分区的起始地址相同。
在一种可能实现的方式中,所述N为自然数。
在一种可能实现的方式中,在执行所述步骤1之前还包括:
步骤01:基于老版本数据的分区表,确定每个分区的起始地址和终止地址,并获得老版本数据的每个分区的分区长度;
步骤02:基于新版本数据的分区表,确定每个分区的起始地址和终止地址,并获得新版本数据的每个分区的分区长度。
在一种可能实现的方式中,基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级的过程中包括:
记录每个分区的新老版本数据分别生成的差分数据。
在一种可能实现的方式中,
对老版本数据的N个分区差分升级结束后,还包括:
获取差分升级后的总分区的总目标文件,并将所述总目标文件进行第一属性划分,获得第一属性矩阵H1;
获取差分升级后的每个目标分区的目标文件,并将每个所述目标文件进行属性划分,获得N个目标向量L,并根据所有目标向量L构造第二属性矩阵H2;
计算每个目标向量L的目标特征值λi、所述第一属性矩阵H1的第一特征值λ1和所述第二属性矩阵H2的第二特征值λ2,其中,i=1,2,...,N;
确定每个目标特征值λi与第一特征值λ1的第一关联值P1以及每个目标特征值λi与第二特征值λ2的第二关联值P2;
其中,δ1i表示与所述总目标文件和目标特征值λi相关的第i个目标向量调整因子;δ2i表示与L个所述目标文件和目标特征值λi相关的第i个目标向量调整因子;
判断所述第一关联值P1和第二关联值P2是否分别在对应的关联阈值内,若是,当存在差分升级需求时,按照预设时间间隔对差分升级结束后的老版本数据进行差分升级;
若不存在差分升级需求,不执行任何操作;
当存在第一关联值P1在对应的关联阈值内,且第二关联值P2不在对应的关联阈值内时,根据上述步骤重新获取新的第二关联值,若新的第二关联值与原始第二关联值一致,则提取第二关联值P2不在对应的关联阈值内的所有目标向量L;
同时,基于数据升级模型,对提取的所有目标向量L进行升级数据的识别,并通过标注数据库,对识别结果进行再次判断,确定不合格的最终目标向量,并对所述最终目标向量进行标注;
基于标注的最终目标向量,确定对应的目标分区,并重新对该分区的相关升级数据进行重新升级;
当存在第一关联值P1不在对应的关联阈值内,且第二关联值P2在对应的关联阈值内时,根据上述步骤重新获取新的第一关联值,若新的第一关联值与原始第一关联值一致,则提取第一关联值P1不在对应的关联阈值内的所有目标向量L;
同时,基于数据升级模型,对提取的所有目标向量L进行升级数据的识别,并通过信息点捕捉数据库,对总目标文件进行信息点的捕捉,并对捕捉的信息点设置点标签;
根据所述点标签,调取所述总目标文件中的点信息,并对所述点信息进行重新升级;
当存在第一关联值P1和第二关联值P2都不在对应的关联阈值内时,重新对所述老版本数据进行相关升级。
在一种可能实现的方式中,
在获取差分升级后的总分区的总目标文件和总分区中每个分区的目标文件的过程中,包括:
基于差分升级对应的原始分区中的分区数据进行第一权重值计算;
其中,Q1j表示N个原始分区中的第j个分区数据的第一权重值;D(hk,H)表示第j个分区数据中的J个升级指标中的第k个升级指标值hk与第j个分区数据的关键词的相关值;h表示第j个分区数据中所有升级指标的平均指标值;
并将所有第一权重按照优先级顺序进行第一排序;
基于差分升级后对应的总分区中的总文件进行N等份预设区间的划分,同时,确定每个预设区间中的区间数据的第二权重值;
其中,Q2j表示N个预设区间中的第j个区间数据的第二权重值;D(rk,R)表示第j个区间数据中的J个升级指标中的第k个升级指标值rk与第j个分区数据的关键词的相关值;r表示第j个区间数据中所有升级指标的平均指标值;
并将所述第二权重值按照优先级顺序进行第二排序;
根据第一排序结果和第二排序结果,将在相邻区段内对应的排序后的原始分区和预设区间内的数据进行保留;
同时,获取在相邻区段内不对应的排序后的原始分区和预设区间,且基于预设区间,历遍剩余分区,并寻找相关的分区数据;
通过寻找的分区数据,基于上一区间或下一区域,对所述预设区间进行裁剪和填充,获得新区间;
对预设区间的下一区间,执行上述不对应的排序所对应的步骤,直到对N个预设区间重新划分结束;
其中,N个重新划分的预设区间即为获取差分升级后的N个目标分区。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明中对分区的空间划分为固定分区的和动态分区的结构图;
图2为本发明中分区1与分区2的依赖关系图;
图3为本发明实施例中嵌入式系统动态多分区固件的差分升级方法的流程图;
图4为本发明实施例中第一差分规则对应的结构图;
图5为本发明实施例中第二差分规则对应的结构图;
图6为本发明实施例中新老分区表的记录图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
差分升级相对整包升级的优势在于差分包要比整包小很多,对于功能单一、硬件能力较弱的物联网设备尤为重要。这样会使下载流量大大降低,升级包所占用的存储空间也会大大降低。背景技术中提到,当前的很多物联网设备为了降低固件所占空间,采用了动态分区,这个会导致差分文件更大。差分升级包之所以小,是由于在老数据上打补丁的方式生成了新的数据,只有当老数据和新数据之间有依赖关系,差分算法才是有效的。但是动态分区的情况,部分数据的依赖关系可能会失效。我们将找到方法,避免依赖关系失效的问题。
本方法是基于专利《用于嵌入式系统的差分升级方法》(专利公布号CN102693145B)的扩展。如图6所示,新老数据中的分区表中记录了每个分区的起始地址和长度,我们可以根据记录对每个分区的新老数据分别生成差分数据。在升级流程中,首先开始对分区1的数据按照专利CN102693145B方法进行升级。但是这里将会有三种情况:一是新老数据的分区1的长度一致,不需要特别处理,升级完后可以继续升级分区2;二是新数据的分区1的长度大于老数据的长度,升级完后分区1的新数据将会对分区2的老数据造成破坏;三是新数据的分区1的数据长度小于老数据的长度,这意味着老数据的分区2的起始地址将会大于新数据起始地址,会影响到接下来的分区2升级。
其中,分区1表示第一分区,分区2表示第二分区,新老数据表示新老版本数据,如下:
本发明提供嵌入式系统动态多分区固件的差分升级方法,如图3所示,包括:
步骤1:比较新老版本数据的第一分区的长度大小;
当新版本数据第一分区长度等于老版本数据第一分区长度时,执行步骤2;
当新版本数据第一分区长度大于老版本数据第一分区长度时,执行步骤3;
当新版本数据第一分区长度小于老版本数据第一分区长度时,执行步骤4;
步骤2:基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,之后执行步骤5;
步骤3:基于第一差分规则,将老版本数据第二分区及之后的分区数据向右移动,并更新分区表,并基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,之后执行步骤5;
步骤4:基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,并基于第二差分规则,将老版本数据第二分区及之后的分区数据向左移动,并更新分区表,之后执行步骤5;
步骤5:重复所述步骤1-4,对老版本数据的N-1个剩余分区差分升级。
优选地,所述N为自然数。
其中,向左移动也可描述为向前移动,向右移动也可描述为向后移动,其都是基于分区进行移动的。
该实施例中,基于用于嵌入式系统的差分升级方法,具体实施例如下:
首先基于老版本数据和差分数据生成新版本数据,以BLOCK(块)为单位写入到嵌入式系统的内存空间中,其中的差分数据是每个分区的新老数据分别生成差分数据;
备份存储空间的第1块数据至升级备份空间;
将新版本数据写入到存储空间的目标区域中;
继续升级第2、3……N(N为自然数)块数据,而这些数据可以依赖于升级备份空间中的内容以及老版本数据中未升级部分的第3、4……N+1块数据。
利用所提供的差分升级方案,在软件升级过程中可以减小占用的备份空间,同时减小占用的内存空间。
具体地说,嵌入式系统在使用上述差分升级方案之后,不再需要预留较大的备份空间,只需要根据嵌入式系统的存储空间大小灵活确定;在软件升级过程中也不用生成整个分区大小的升级包,而只需要分块生成新版本的软件,因此占用的内存也很小。
上述技术方案的有益效果是:通过比较新老版本数据对应的分区长度,来执行相应的动态多分区的升级流程,避免依赖关系失效。
本发明提供嵌入式系统动态多分区固件的差分升级方法,如图4所示,所述第一差分规则包括:
利用老版本数据的第一分区长度和新版本数据的第一分区长度,计算出右差值,并将所述右差值作为老版本数据的第二分区及之后分区数据向右移动的偏移量;
根据所述向右移动的偏移量将所述老版本数据的第二分区及之后的分区数据向右移动;
同时根据分区移动结果更新老版本数据对应的分区表;
更新完成后,所述老版本数据的第二分区与新版本数据的第二分区的起始地址相同。
其中,a和b部分就表示向右移动的偏移量。
上述技术方案的有益效果是:通过采用第一差分规则,可以有效的保证在升级前将分区2及之后的分区数据往右移动避免被破坏。
本发明提供嵌入式系统动态多分区固件的差分升级方法,如图5所示,所述第二差分规则包括:
利用老版本数据的第一分区长度和新版本数据的第一分区长度,计算出左差值,并将所述左差值作为老版本数据的第二分区及之后分区数据向左移动的偏移量;
根据所述向左移动的偏移量将所述老版本数据的第二分区及之后的分区数据向左移动;
同时根据分区移动结果更新老版本数据对应的分区表;
更新完成后,所述老版本数据的第二分区与新版本数据的第二分区的起始地址相同。
其中,c和d部分就表示向左移动的偏移量。
上述技术方案的有益效果是:通过采用第二差分规则,可以有效的保证在升级前将分区2及之后的分区数据往左移动,有效的降低空闲空间。
本发明提供嵌入式系统动态多分区固件的差分升级方法,如图6所示,在执行所述步骤1之前还包括:
步骤01:基于老版本数据的分区表,确定每个分区的起始地址和终止地址,并获得老版本数据的每个分区的分区长度;
步骤02:基于新版本数据的分区表,确定每个分区的起始地址和终止地址,并获得新版本数据的每个分区的分区长度。
优选地,基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级的过程中包括:
记录每个分区的新老版本数据分别生成的差分数据。
上述技术方案的有益效果是:通过确定每个分区的起始地址、终止地址和分区长度,为后续动态多分区的升级流程提供数据基础。
其中,本发明中的固件(firmware)一般存储于设备中的电可擦除只读存储器EEPROM(ElectricallyErasableProgrammableROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个数码产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统BIOS(BasicInput/outputSystem),在以前其实更多的专业人士叫它固件。
本发明中涉及到的差分升级是增量升级,是指对手机、物联网设备采用增量升级的方法使其软件部分更新到最新版本。这里提到的软件部分往往是指设备的固件部分。
本发明提供嵌入式系统动态多分区固件的差分升级方法,对老版本数据的N个分区差分升级结束后,还包括:
获取差分升级后的总分区的总目标文件,并将所述总目标文件进行第一属性划分,获得第一属性矩阵H1;
获取差分升级后的每个目标分区的目标文件,并将每个所述目标文件进行属性划分,获得N个目标向量L,并根据所有目标向量L构造第二属性矩阵H2;
计算每个目标向量L的目标特征值λi、所述第一属性矩阵H1的第一特征值λ1和所述第二属性矩阵H2的第二特征值λ2,其中,i=1,2,...,N;
确定每个目标特征值λi与第一特征值λ1的第一关联值P1以及每个目标特征值λi与第二特征值λ2的第二关联值P2;
其中,δ1i表示与所述总目标文件和目标特征值λi相关的第i个目标向量调整因子;δ2i表示与L个所述目标文件和目标特征值λi相关的第i个目标向量调整因子;
判断所述第一关联值P1和第二关联值P2是否分别在对应的关联阈值内,若是,当存在差分升级需求时,按照预设时间间隔对差分升级结束后的老版本数据进行差分升级;
若不存在差分升级需求,不执行任何操作;
当存在第一关联值P1在对应的关联阈值内,且第二关联值P2不在对应的关联阈值内时,根据上述步骤重新获取新的第二关联值,若新的第二关联值与原始第二关联值一致,则提取第二关联值P2不在对应的关联阈值内的所有目标向量L;
同时,基于数据升级模型,对提取的所有目标向量L进行升级数据的识别,并通过标注数据库,对识别结果进行再次判断,确定不合格的最终目标向量,并对所述最终目标向量进行标注;
基于标注的最终目标向量,确定对应的目标分区,并重新对该分区的相关升级数据进行重新升级;
当存在第一关联值P1不在对应的关联阈值内,且第二关联值P2在对应的关联阈值内时,根据上述步骤重新获取新的第一关联值,若新的第一关联值与原始第一关联值一致,则提取第一关联值P1不在对应的关联阈值内的所有目标向量L;
同时,基于数据升级模型,对提取的所有目标向量L进行升级数据的识别,并通过信息点捕捉数据库,对总目标文件进行信息点的捕捉,并对捕捉的信息点设置点标签;
根据所述点标签,调取所述总目标文件中的点信息,并对所述点信息进行重新升级;
当存在第一关联值P1和第二关联值P2都不在对应的关联阈值内时,重新对所述老版本数据进行相关升级。
上述技术方案的有益效果是:通过对老版本数据的N个分区差分升级结束后每个分区内的目标文件进行验证,确定数据是否更新成功,且通过判断第一关联值P1和第二关联值P2是否分别在对应的关联阈值内,来进行相关的后续操作,且在对后续操作实施的过程中,通过对基于标注的最终目标向量,确定对应的目标分区,并重新对该分区的相关升级数据进行重新升级,且根据点标签,调取总目标文件中的点信息,并对点信息进行重新升级,可有效的保证升级数据的正确性,确定该固件升级成功。
本发明提供嵌入式系统动态多分区固件的差分升级方法,在获取差分升级后的总分区的总目标文件和总分区中每个分区的目标文件的过程中,包括:
基于差分升级对应的原始分区中的分区数据进行第一权重值计算;
其中,Q1j表示N个原始分区中的第j个分区数据的第一权重值;D(hk,H)表示第j个分区数据中的J个升级指标中的第k个升级指标值hk与第j个分区数据的关键词的相关值;h表示第j个分区数据中所有升级指标的平均指标值;
并将所有第一权重按照优先级顺序进行第一排序;
基于差分升级后对应的总分区中的总文件进行N等份预设区间的划分,同时,确定每个预设区间中的区间数据的第二权重值;
其中,Q2j表示N个预设区间中的第j个区间数据的第二权重值;D(rk,R)表示第j个区间数据中的J个升级指标中的第k个升级指标值rk与第j个分区数据的关键词的相关值;r表示第j个区间数据中所有升级指标的平均指标值;
并将所述第二权重值按照优先级顺序进行第二排序;
根据第一排序结果和第二排序结果,将在相邻区段内对应的排序后的原始分区和预设区间内的数据进行保留;
同时,获取在相邻区段内不对应的排序后的原始分区和预设区间,且基于预设区间,历遍剩余分区,并寻找相关的分区数据;
通过寻找的分区数据,基于上一区间或下一区域,对所述预设区间进行裁剪和填充,获得新区间;
对预设区间的下一区间,执行上述不对应的排序所对应的步骤,直到对N个预设区间重新划分结束;
其中,N个重新划分的预设区间即为获取差分升级后的N个目标分区。
上述技术方案的有益效果是:通过对升级之后的分区进行区间的重新划分,且通过计算第一权重值和第二权重值并进行顺序排列和比对,可以有效的对等间隔的预设区间进行调整,确保不同预设区间的区间数据的重要性,且为后续对老版本数据的N个分区差分升级结束后每个分区内的目标文件进行验证,提供了针对性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.嵌入式系统动态多分区固件的差分升级方法,其特征在于,包括:
步骤1:比较新老版本数据的第一分区的长度大小;
当新版本数据第一分区长度等于老版本数据第一分区长度时,执行步骤2;
当新版本数据第一分区长度大于老版本数据第一分区长度时,执行步骤3;
当新版本数据第一分区长度小于老版本数据第一分区长度时,执行步骤4;
步骤2:基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,之后执行步骤5;
步骤3:基于第一差分规则,将老版本数据第二分区及之后的分区数据向右移动,并更新分区表,并基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,之后执行步骤5;
步骤4:基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级,并基于第二差分规则,将老版本数据第二分区及之后的分区数据向左移动,并更新分区表,之后执行步骤5;
步骤5:重复所述步骤1-4,对老版本数据的N-1个剩余分区差分升级;
其中,动态多分区的含义为:不预先划分,而是根据实际的分区固件大小制定对应的地址空间。
2.如权利要求1所述的差分升级方法,其特征在于,所述第一差分规则包括:
利用老版本数据的第一分区长度和新版本数据的第一分区长度,计算出右差值,并将所述右差值作为老版本数据的第二分区及之后分区数据向右移动的偏移量;
根据所述向右移动的偏移量将所述老版本数据的第二分区及之后的分区数据向右移动;
同时根据分区移动结果更新老版本数据对应的分区表;
更新完成后,所述老版本数据的第二分区与新版本数据的第二分区的起始地址相同。
3.如权利要求1所述的差分升级方法,其特征在于,所述第二差分规则包括:
利用老版本数据的第一分区长度和新版本数据的第一分区长度,计算出左差值,并将所述左差值作为老版本数据的第二分区及之后分区数据向左移动的偏移量;
根据所述向左移动的偏移量将所述老版本数据的第二分区及之后的分区数据向左移动;
同时根据分区移动结果更新老版本数据对应的分区表;
更新完成后,所述老版本数据的第二分区与新版本数据的第二分区的起始地址相同。
4.如权利要求1所述的差分升级方法,其特征在于,
所述N为自然数。
5.如权利要求1所述的差分升级方法,其特征在于,在执行所述步骤1之前还包括:
步骤01:基于老版本数据的分区表,确定每个分区的起始地址和终止地址,并获得老版本数据的每个分区的分区长度;
步骤02:基于新版本数据的分区表,确定每个分区的起始地址和终止地址,并获得新版本数据的每个分区的分区长度。
6.如权利要求1所述的差分升级方法,其特征在于,基于用于嵌入式系统的差分升级方法,对老版本数据第一分区进行升级的过程中包括:
记录每个分区的新老版本数据分别生成的差分数据。
7.如权利要求1所述的差分升级方法,其特征在于,对老版本数据的N个分区差分升级结束后,还包括:
获取差分升级后的总分区的总目标文件,并将所述总目标文件进行第一属性划分,获得第一属性矩阵H1;
获取差分升级后的每个目标分区的目标文件,并将每个所述目标文件进行属性划分,获得N个目标向量L,并根据所有目标向量L构造第二属性矩阵H2;
判断所述第一关联值P1和第二关联值P2是否分别在对应的关联阈值内,若是,当存在差分升级需求时,按照预设时间间隔对差分升级结束后的老版本数据进行差分升级;
若不存在差分升级需求,不执行任何操作;
当存在第一关联值P1在对应的关联阈值内,且第二关联值P2不在对应的关联阈值内时,根据上述步骤重新获取新的第二关联值,若新的第二关联值与原始第二关联值一致,则提取第二关联值P2不在对应的关联阈值内的所有目标向量L;
同时,基于数据升级模型,对提取的所有目标向量L进行升级数据的识别,并通过标注数据库,对识别结果进行再次判断,确定不合格的最终目标向量,并对所述最终目标向量进行标注;
基于标注的最终目标向量,确定对应的目标分区,并重新对该分区的相关升级数据进行重新升级;
当存在第一关联值P1不在对应的关联阈值内,且第二关联值P2在对应的关联阈值内时,根据上述步骤重新获取新的第一关联值,若新的第一关联值与原始第一关联值一致,则提取第一关联值P1不在对应的关联阈值内的所有目标向量L;
同时,基于数据升级模型,对提取的所有目标向量L进行升级数据的识别,并通过信息点捕捉数据库,对总目标文件进行信息点的捕捉,并对捕捉的信息点设置点标签;
根据所述点标签,调取所述总目标文件中的点信息,并对所述点信息进行重新升级;
当存在第一关联值P1和第二关联值P2都不在对应的关联阈值内时,重新对所述老版本数据进行相关升级。
8.如权利要求7所述的差分升级方法,其特征在于,在获取差分升级后的总分区的总目标文件和总分区中每个分区的目标文件的过程中,包括:
基于差分升级对应的原始分区中的分区数据进行第一权重值计算;
并将所有第一权重按照优先级顺序进行第一排序;
基于差分升级后对应的总分区中的总文件进行N等份预设区间的划分,同时,确定每个预设区间中的区间数据的第二权重值;
并将所述第二权重值按照优先级顺序进行第二排序;
根据第一排序结果和第二排序结果,将在相邻区段内对应的排序后的原始分区和预设区间内的数据进行保留;
同时,获取在相邻区段内不对应的排序后的原始分区和预设区间,且基于预设区间,历遍剩余分区,并寻找相关的分区数据;
通过寻找的分区数据,基于上一区间或下一区间,对所述预设区间进行裁剪和填充,获得新区间;
对预设区间的下一区间,执行上述不对应的排序所对应的步骤,直到对N个预设区间重新划分结束;
其中,N个重新划分的预设区间即为获取差分升级后的N个目标分区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010259968.1A CN111596945B (zh) | 2020-04-03 | 2020-04-03 | 嵌入式系统动态多分区固件的差分升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010259968.1A CN111596945B (zh) | 2020-04-03 | 2020-04-03 | 嵌入式系统动态多分区固件的差分升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111596945A CN111596945A (zh) | 2020-08-28 |
CN111596945B true CN111596945B (zh) | 2021-09-14 |
Family
ID=72190429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010259968.1A Active CN111596945B (zh) | 2020-04-03 | 2020-04-03 | 嵌入式系统动态多分区固件的差分升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111596945B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148355B (zh) * | 2020-10-21 | 2021-09-14 | 红石阳光(北京)科技股份有限公司 | 一种基于深度学习的系统差分升级方法及装置 |
CN112860291B (zh) * | 2021-02-08 | 2023-05-12 | 杭州涂鸦信息技术有限公司 | 固件升级方法及装置 |
CN113721967B (zh) * | 2021-08-30 | 2024-07-05 | 苏州磐联集成电路科技股份有限公司 | 差分包生成方法,差分包生成设备,及升级方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011095952A (ja) * | 2009-10-29 | 2011-05-12 | Kyocera Mita Corp | ファームウェア更新方法および電子機器 |
CN104077234A (zh) * | 2014-07-10 | 2014-10-01 | 三星电子(中国)研发中心 | 一种嵌入式系统分区的动态调整方法和装置 |
CN108399079A (zh) * | 2017-02-07 | 2018-08-14 | 中兴通讯股份有限公司 | 差分升级方法及装置、终端 |
-
2020
- 2020-04-03 CN CN202010259968.1A patent/CN111596945B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011095952A (ja) * | 2009-10-29 | 2011-05-12 | Kyocera Mita Corp | ファームウェア更新方法および電子機器 |
CN104077234A (zh) * | 2014-07-10 | 2014-10-01 | 三星电子(中国)研发中心 | 一种嵌入式系统分区的动态调整方法和装置 |
CN108399079A (zh) * | 2017-02-07 | 2018-08-14 | 中兴通讯股份有限公司 | 差分升级方法及装置、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111596945A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111596945B (zh) | 嵌入式系统动态多分区固件的差分升级方法 | |
CN106294421B (zh) | 一种数据写入、读取方法及装置 | |
CN111258620B (zh) | 差分升级包的生成方法、装置和设备 | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN104679847A (zh) | 一种构建在线实时更新海量音频指纹库的方法和设备 | |
CN114780138B (zh) | 流场模拟软件代码版本管理方法、装置和存储介质 | |
CN110244951B (zh) | 应用发布方法及装置 | |
CN112363814A (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
CN114579168B (zh) | 代码更新方法、装置、电子设备和计算机可读存储介质 | |
CN110413994B (zh) | 热点话题生成方法、装置、计算机设备和存储介质 | |
CN112149419A (zh) | 字段的规范化自动命名方法、装置及系统 | |
CN114265613B (zh) | 一种整车所有电控单元固件差分升级方法及系统 | |
CN106970937B (zh) | 一种基于本地缓存快速建立索引的方法及系统 | |
CN110362478A (zh) | 应用升级测试方法、装置、计算机设备和存储介质 | |
US11080334B1 (en) | Graph representation system and methods | |
CN113918437A (zh) | 用户行为数据分析方法、装置、计算机设备和存储介质 | |
CN113535563A (zh) | 测试用例去重方法、装置、计算机设备及存储介质 | |
CN113255742A (zh) | 一种政策匹配度计算方法、系统、计算机设备和存储介质 | |
CN107807993B (zh) | 一种网页历史记录功能的实现方法及装置 | |
CN116226681A (zh) | 一种文本相似性判定方法、装置、计算机设备和存储介质 | |
CN113326063B (zh) | 数据处理方法、电子设备及存储介质 | |
CN115757172A (zh) | 测试执行方法、装置、存储介质及计算机设备 | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
CN108920708B (zh) | 一种数据处理方法及装置 | |
CN111723286A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220406 Address after: Room 201, Building A, No. 1 Qianhai Road, Qianhai Shenzhen-Hong Kong Cooperation Zone, Shenzhen, Guangdong Province Patentee after: Hongshi sunshine (Shenzhen) Technology Co.,Ltd. Address before: Room 201-205, 2 / F, building 5, 30 Hetaoyuan, guandongdian North Street, Chaoyang District, Beijing Patentee before: REDSTONE SUNSHINE (BEIJING) TECHNOLOGY CO.,LTD. |
|
TR01 | Transfer of patent right |