一种固件升级方法、系统、设备及计算机可读存储介质
技术领域
本申请涉及固件升级技术领域,更具体地说,涉及一种固件升级方法、系统、设备及计算机可读存储介质。
背景技术
在计算机产品的应用过程中,随着产品性能的提升,可能需要对处理器的固件进行升级,固件(Firmware)也即写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序,比如通过远程方式对固件进行升级,在此过程中,需远程接收升级后的固件来对升级前的固件进行替换。
然而,在远程接收升级后的固件时,是一次性接收全部的升级后的固件,因为固件的数据量较大,处理器片内的RAM(Random Access Memory,随机存取存储器)和flash(闪存)资源较少,所以需要在处理器上设置外扩存储器,增加成本和电路资源,且传输升级后的固件时,需要占用大量的通信资源,使得固件传输效率低,方法适用性差。
综上所述,如何提高固件升级的适用性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种固件升级方法,其能在一定程度上解决如何提高固件升级的适用性的技术问题。本申请还提供了一种固件升级系统、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种固件升级方法,应用于固件发布端,包括:
获取目标处理器的第一子固件的第一校验值;所述第一子固件为所述目标处理器按照预设拆分规则对所述目标处理器升级前的第一固件进行分区后得到的内容;所述第一校验值为所述目标处理器按照预设校验方法对所述第一子固件进行校验后生成的校验值;
获取目标处理器升级过程中应用的第二固件;
按照所述预设拆分规则对所述第二固件进行分区,得到第二子固件;
按照所述预设校验方法对所述第二子固件进行校验,得到第二校验值;
根据分区信息,判断相对应分区的所述第二校验值与所述第一校验值是否相等,若相对应分区的所述第二校验值与所述第一校验值不相等,则将所述第二校验值对应的所述第二子固件确定为目标子固件;
传输所述目标子固件及所述分区信息至所述目标处理器,以使所述目标处理器基于所述目标子固件及所述分区信息,对所述第一固件进行子固件替换得到所述第二固件。
优选的,所述预设拆分规则包括按照预设的各个子固件的起始地址和截止地址进行分区;
所述分区信息包括各个分区的编号;
所述获取目标处理器的第一子固件的第一校验值,包括:
获取所述目标处理器的第一校验值序列,所述第一校验值序列为按照所述分区信息对所述第一子固件的第一校验值进行排序后得到的序列;
所述根据分区信息,判断相对应分区的所述第二校验值与所述第一校验值是否相等,包括:
按照所述分区信息对所述第二校验值进行排序,得到第二校验值序列;
将所述第一校验值序列和所述第二校验值序列进行比较,判断相对应分区的所述第二校验值与所述第一校验值是否相等。
优选的,所述预设校验方法的类型包括CRC16、CRC32、MD5。
优选的,所述传输所述目标子固件及所述分区信息至所述目标处理器,包括:
按照一次传输一个子固件的传输规则,传输所述目标子固件至所述目标处理器;
传输所述分区信息至所述目标处理器。
优选的,所述传输所述目标子固件及所述分区信息至所述目标处理器,包括:
按照一次传输预设数量个子固件的传输规则,传输所述目标子固件至所述目标处理器;所述预设数量的值大于1;
传输所述分区信息至所述目标处理器。
优选的,所述判断相对应分区的所述第二校验值与所述第一校验值是否相等,若相对应分区的所述第二校验值与所述第一校验值不相等,则将所述第二校验值对应的所述第二子固件确定为目标子固件,包括:
在所述第二固件中,将超出所述第一固件长度范围的固件确定为第三固件;
直接将所述第三固件作为所述目标子固件,或将所述第三固件对应的所述第二子固件作为所述目标子固件;
判断分区信息相同的所述第二校验值与所述第一校验值是否相等,若分区信息相同的所述第二校验值与所述第一校验值不相等,则将所述第二校验值对应的所述第二子固件确定为所述目标子固件。
一种固件升级方法,应用于处理器,包括:
按照预设拆分规则对所述目标处理器升级前的第一固件进行分区,得到第一固件;
按照预设校验方法对所述第一子固件进行校验,生成第一校验值;
传输所述第一校验值至固件发布端;
接收所述固件发布端传输的目标子固件及分区信息;
基于所述目标子固件及所述分区信息,对所述第一固件进行子固件替换,得到升级过程中应用的第二固件;
其中,所述固件发布端获取目标处理器升级过程中应用的第二固件;按照所述预设拆分规则对所述第二固件进行分区,得到第二子固件;按照所述预设校验方法对所述第二子固件进行校验,得到第二校验值;根据分区信息,判断相对应分区的所述第二校验值与所述第一校验值是否相等,若相对应分区的所述第二校验值与所述第一校验值不相等,则将所述第二校验值对应的所述第二子固件确定为目标子固件。
一种固件升级系统,应用于固件发布端,包括:
第一获取模块,用于获取目标处理器的第一子固件的第一校验值;所述第一子固件为所述目标处理器按照预设拆分规则对所述目标处理器升级前的第一固件进行分区后得到的内容;所述第一校验值为所述目标处理器按照预设校验方法对所述第一子固件进行校验后生成的校验值;
第二获取模块,用于获取目标处理器升级过程中应用的第二固件;
第一拆分模块,用于按照所述预设拆分规则对所述第二固件进行分区,得到第二子固件;
第一校验模块,用于按照所述预设校验方法对所述第二子固件进行校验,得到第二校验值;
第一判断模块,用于根据分区信息,判断相对应分区的所述第二校验值与所述第一校验值是否相等,若相对应分区的所述第二校验值与所述第一校验值不相等,则将所述第二校验值对应的所述第二子固件确定为目标子固件;
第一传输模块,用于传输所述目标子固件及所述分区信息至所述目标处理器,以使所述目标处理器基于所述目标子固件及所述分区信息、对所述第一固件进行子固件替换得到所述第二固件。
一种固件升级设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述固件升级方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述固件升级方法的步骤。
本申请提供的一种固件升级方法,应用于固件发布端,获取目标处理器的第一子固件的第一校验值;第一子固件为目标处理器按照预设拆分规则对目标处理器升级前的第一固件进行分区后得到的内容;第一校验值为目标处理器按照预设校验方法对第一子固件进行校验后生成的校验值;获取目标处理器升级过程中应用的第二固件;按照预设拆分规则对第二固件进行分区,得到第二子固件;按照预设校验方法对第二子固件进行校验,得到第二校验值;根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件;传输目标子固件及分区信息至目标处理器,以使目标处理器基于目标子固件及分区信息,对第一固件进行子固件替换得到第二固件。本申请中,固件发布端并不是直接将处理器升级所需的第二固件信息全部发送给处理器,而是基于固件信息的校验值确定出目标子固件信息,并只将目标子固件信息及分区信息发送给目标处理器,使得目标处理器只需接收目标子固件信息及分区信息,便可以在对第一固件信息进行子固件替换的基础上得到第二固件信息,减少了固件发布端与处理器间的固件信息传输量,可以减小处理器缓存固件信息的空间,使得处理器无需外扩存储器,降低处理器的成本,同时可以减少转存次数,减少转存过程中文件被篡改的风险,且处理器只需对部分固件进行擦写,可以减少处理器上flash的擦写次数,延长flash的使用寿命,适用性好。本申请提供的一种固件升级系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种固件升级方法的流程图;
图2为本申请实施例提供的一种固件升级方法的另一流程图;
图3为本申请实施例提供的一种固件升级系统的结构示意图;
图4为本申请实施例提供的一种固件升级系统的另一结构示意图;
图5为本申请实施例提供的一种固件升级设备的结构示意图;
图6为本申请实施例提供的一种固件升级设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种固件升级方法的流程图。
本申请实施例提供的一种固件升级方法,应用于固件发布端,可以包括以下步骤:
步骤S101:获取目标处理器的第一子固件的第一校验值;第一子固件为目标处理器按照预设拆分规则对目标处理器升级前的第一固件进行分区后得到的内容;第一校验值为目标处理器按照预设校验方法对第一子固件进行校验后生成的校验值。
实际应用中,固件发布端可以先获取目标处理器的第一子固件的第一校验值。固件发布端指的是为目标处理器发布固件的服务端,其可以是目标处理器连接的上位机等,且目标处理器的类型可以根据实际需要确定,比如目标处理器可以为嵌入式处理器等。
应当指出,具体应用场景中,目标处理器可以按照预设拆分规则对目标处理器升级前的第一固件进行分区,得到第一子固件;之后目标处理器再按照预设校验方法对第一子固件进行校验,生成第一校验值等。
步骤S102:获取目标处理器升级过程中应用的第二固件。
实际应用中,固件发布端在获取目标处理器传输的第一子固件的第一校验值之后,便可以获取目标处理器升级过程中应用的第二固件,以便比对第一固件和第二固件,找出第一固件和第二固件中不同的固件。第二固件也即目标处理器升级之后所用的固件。
步骤S103:按照预设拆分规则对第二固件进行分区,得到第二子固件。
实际应用中,为了便于确定出第二固件中与第一固件不同的固件,固件发布端在获取目标处理器升级过程中应用的第二固件之后,可以按照预设拆分规则对第二固件进行分区,得到第二子固件,因为第一子固件与第二子固件均是按照预设拆分规则分区得到的,所以第一子固件和第二子固件的分区信息相同,且分区信息相同的第一子固件和第二子固件在原固件中的位置相同。
步骤S104:按照预设校验方法对第二子固件进行校验,得到第二校验值。
实际应用中,固件发布端在按照预设拆分规则对第二固件进行分区,得到第二子固件之后,可以直接将第二子固件与对应的第一子固件进行比较,以此来确定第二子固件是否与第一子固件相同,但直接将第二子固件与第一子固件相比较的话,效率较低,为了提高效率,可以按照预设校验方法对第二子固件进行校验,得到第二校验值,之后,固件发布端只需将第二校验值与对应的第一校验值相比较,便可以判定第二子固件是否与对应的第一子固件相同。
步骤S105:根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则执行步骤S106。
步骤S106:将第二校验值对应的第二子固件确定为目标子固件。
实际应用中,固件发布端在按照预设校验方法对第二子固件进行校验,得到第二校验值之后,便可以根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件,目标子固件也即目标处理器需要更新的固件。
步骤S107:传输目标子固件及分区信息至目标处理器,以使目标处理器基于目标子固件及分区信息,对第一固件进行子固件替换得到第二固件。
实际应用中,固件发布端在得到目标子固件之后,如果直接将目标子固件发送给目标处理器的话,目标处理器并不知道目标子固件的替换部分,所以固件发布端需要传输目标子固件及分区信息至目标处理器,这样,目标处理器在接收到目标子固件及分区信息之后,便可以基于目标子固件和分区信息在第一固件中确定出待替换子固件,并用目标子固件替换对应的待替换子固件,以此来将第一固件转换为第二固件,使得目标处理器无需接收全部的第二固件,只需对第一固件进行局部替换即可得到第二固件。
本申请提供的一种固件升级方法,应用于固件发布端,获取目标处理器的第一子固件的第一校验值;第一子固件为目标处理器按照预设拆分规则对目标处理器升级前的第一固件进行分区后得到的内容;第一校验值为目标处理器按照预设校验方法对第一子固件进行校验后生成的校验值;获取目标处理器升级过程中应用的第二固件;按照预设拆分规则对第二固件进行分区,得到第二子固件;按照预设校验方法对第二子固件进行校验,得到第二校验值;根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件;传输目标子固件及分区信息至目标处理器,以使目标处理器基于目标子固件及分区信息,对第一固件进行子固件替换得到第二固件。本申请中,固件发布端并不是直接将处理器升级所需的第二固件信息全部发送给处理器,而是基于固件信息的校验值确定出目标子固件信息,并只将目标子固件信息及分区信息发送给目标处理器,使得目标处理器只需接收目标子固件信息及分区信息,便可以在对第一固件信息进行子固件替换的基础上得到第二固件信息,减少了固件发布端与处理器间的固件信息传输量,可以减小处理器缓存固件信息的空间,使得处理器无需外扩存储器,降低处理器的成本,同时可以减少转存次数,减少转存过程中文件被篡改的风险,且处理器只需对部分固件进行擦写,可以减少处理器上flash的擦写次数,延长flash的使用寿命,适用性好。
本申请实施例提供的一种固件升级方法中,预设拆分规则及拆分信息可以根据实际需要确定,比如预设拆分规则包括按照预设的各个子固件的起始地址和截止地址进行分区;分区信息包括各个分区的编号等。
且在实际应用中,为了提高判断第一子固件和第二子固件是否相同的效率,可以批量对第一子固件和第二子固件进行相同性判断,比如在获取目标处理器的第一子固件的第一校验值的过程中,可以获取目标处理器的第一校验值序列,第一校验值序列为按照分区信息对第一子固件的第一校验值进行排序后得到的序列;相应的,在根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等的过程中,可以按照分区信息对第二校验值进行排序,得到第二校验值序列;将第一校验值序列和第二校验值序列进行比较,判断相对应分区的第二校验值与第一校验值是否相等。也即,可以借助校验值序列批量对第一子固件和第二子固件进行相同性判断,提高判断效率。
本申请实施例提供的一种固件升级方法中,预设校验方法的类型包括CRC16、CRC32、MD5等。
本申请实施例提供的一种固件升级方法中,为了进一步降低目标处理器接收的固件信息的数据量,固件发布端在传输目标子固件及分区信息至目标处理器的过程中,可以按照一次传输一个子固件的传输规则,传输目标子固件至目标处理器;传输分区信息至目标处理器。
当然,实际应用中,为了多次传输目标子固件及分区信息,固件发布端在传输目标子固件及分区信息至目标处理器的过程中,可以按照一次传输预设数量个子固件的传输规则,传输目标子固件至目标处理器;预设数量的值大于1;传输分区信息至目标处理器。
本申请实施例提供的一种固件升级方法中,在第二固件的长度大于第一固件的长度的情况下,第二固件中新增的与第一固件不同的内容会放置于第二固件的尾部,所以固件发布端在判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件的过程中,可以在第二固件中,将超出第一固件长度范围的固件确定为第三固件;直接将第三固件作为目标子固件,或将第三固件对应的第二子固件作为目标子固件;判断分区信息相同的第二校验值与第一校验值是否相等,若分区信息相同的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件。
请参阅图2,图2为本申请实施例提供的一种固件升级方法的另一流程图。
本申请实施例提供的一种固件升级方法,应用于处理器,可以包括以下步骤:
步骤S201:按照预设拆分规则对目标处理器升级前的第一固件进行分区,得到第一固件。
步骤S202:按照预设校验方法对第一子固件进行校验,生成第一校验值。
步骤S203:传输第一校验值至固件发布端。
步骤S204:接收固件发布端传输的目标子固件及分区信息。
步骤S205:基于目标子固件及分区信息,对第一固件进行子固件替换,得到升级过程中应用的第二固件。
应当指出,在此过程中,固件发布端获取目标处理器升级过程中应用的第二固件;按照预设拆分规则对第二固件进行分区,得到第二子固件;按照预设校验方法对第二子固件进行校验,得到第二校验值;根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件。
本实施例中相应步骤的描述可以参阅上述实施例,在此不再赘述。
请参阅图3,图3为本申请实施例提供的一种固件升级系统的结构示意图。
本申请实施例提供的一种固件升级系统,应用于固件发布端,可以包括:
第一获取模块301,用于获取目标处理器的第一子固件的第一校验值;第一子固件为目标处理器按照预设拆分规则对目标处理器升级前的第一固件进行分区后得到的内容;第一校验值为目标处理器按照预设校验方法对第一子固件进行校验后生成的校验值;
第二获取模块302,用于获取目标处理器升级过程中应用的第二固件;
第一拆分模块303,用于按照预设拆分规则对第二固件进行分区,得到第二子固件;
第一校验模块304,用于按照预设校验方法对第二子固件进行校验,得到第二校验值;
第一判断模块305,用于根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件;
第一传输模块306,用于传输目标子固件及分区信息至目标处理器,以使目标处理器基于目标子固件及分区信息、对第一固件进行子固件替换得到第二固件。
本申请实施例提供的一种固件升级系统,应用于固件发布端,预设拆分规则可以包括按照预设的各个子固件的起始地址和截止地址进行分区;
分区信息可以包括各个分区的编号;
第一获取模块可以包括:
第一获取单元,用于获取目标处理器的第一校验值序列,第一校验值序列为按照分区信息对第一子固件的第一校验值进行排序后得到的序列;
第一判断模块可以包括:
第一排序单元,用于按照分区信息对第二校验值进行排序,得到第二校验值序列;
第一判断单元,用于将第一校验值序列和第二校验值序列进行比较,判断相对应分区的第二校验值与第一校验值是否相等。
本申请实施例提供的一种固件升级系统,应用于固件发布端,预设校验方法的类型包括CRC16、CRC32、MD5。
本申请实施例提供的一种固件升级系统,应用于固件发布端,第一传输模块可以包括:
第一传输单元,用于按照一次传输一个子固件的传输规则,传输目标子固件至目标处理器;
第二传输单元,用于传输分区信息至目标处理器。
本申请实施例提供的一种固件升级系统,应用于固件发布端,第一传输模块可以包括:
第三传输单元,用于按照一次传输预设数量个子固件的传输规则,传输目标子固件至目标处理器;预设数量的值大于1;
第四传输单元,用于传输分区信息至目标处理器。
本申请实施例提供的一种固件升级系统,应用于固件发布端,第一判断模块可以包括:
第一确定单元,用于在第二固件中,将超出第一固件长度范围的固件确定为第三固件;
第一设置单元,用于直接将第三固件作为目标子固件,或将第三固件对应的第二子固件作为目标子固件;
第一判断单元,用于判断分区信息相同的第二校验值与第一校验值是否相等,若分区信息相同的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件。
请参阅图4,图4为本申请实施例提供的一种固件升级系统的另一结构示意图。
本申请实施例提供的一种固件升级系统,应用于处理器,可以包括:
第二拆分模块401,用于按照预设拆分规则对目标处理器升级前的第一固件进行分区,得到第一固件;
第二校验模块402,用于按照预设校验方法对第一子固件进行校验,生成第一校验值;
第二传输模块403,用于传输第一校验值至固件发布端;
第一接收模块404,用于接收固件发布端传输的目标子固件及分区信息;
第一替换模块405,用于基于目标子固件及分区信息,对第一固件进行子固件替换,得到升级过程中应用的第二固件;
其中,固件发布端获取目标处理器升级过程中应用的第二固件;按照预设拆分规则对第二固件进行分区,得到第二子固件;按照预设校验方法对第二子固件进行校验,得到第二校验值;根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件。
本申请还提供了一种固件升级设备及计算机可读存储介质,其均具有本申请实施例提供的一种固件升级方法具有的对应效果。请参阅图5,图5为本申请实施例提供的一种固件升级设备的结构示意图。
本申请实施例提供的一种固件升级设备,包括存储器501和处理器502,存储器501中存储有计算机程序,处理器502执行计算机程序时实现如下步骤:
获取目标处理器的第一子固件的第一校验值;第一子固件为目标处理器按照预设拆分规则对目标处理器升级前的第一固件进行分区后得到的内容;第一校验值为目标处理器按照预设校验方法对第一子固件进行校验后生成的校验值;
获取目标处理器升级过程中应用的第二固件;
按照预设拆分规则对第二固件进行分区,得到第二子固件;
按照预设校验方法对第二子固件进行校验,得到第二校验值;
根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件;
传输目标子固件及分区信息至目标处理器,以使目标处理器基于目标子固件及分区信息,对第一固件进行子固件替换得到第二固件。
本申请实施例提供的一种固件升级设备,包括存储器501和处理器502,存储器501中存储有计算机程序,处理器502执行计算机程序时实现如下步骤:预设拆分规则包括按照预设的各个子固件的起始地址和截止地址进行分区;分区信息包括各个分区的编号;获取目标处理器的第一校验值序列,第一校验值序列为按照分区信息对第一子固件的第一校验值进行排序后得到的序列;相应的,按照分区信息对第二校验值进行排序,得到第二校验值序列;将第一校验值序列和第二校验值序列进行比较,判断相对应分区的第二校验值与第一校验值是否相等。
本申请实施例提供的一种固件升级设备,包括存储器501和处理器502,存储器501中存储有计算机程序,处理器502执行计算机程序时实现如下步骤:预设校验方法的类型包括CRC16、CRC32、MD5。
本申请实施例提供的一种固件升级设备,包括存储器501和处理器502,存储器501中存储有计算机程序,处理器502执行计算机程序时实现如下步骤:按照一次传输一个子固件的传输规则,传输目标子固件至目标处理器;传输分区信息至目标处理器。
本申请实施例提供的一种固件升级设备,包括存储器501和处理器502,存储器501中存储有计算机程序,处理器502执行计算机程序时实现如下步骤:按照一次传输预设数量个子固件的传输规则,传输目标子固件至目标处理器;预设数量的值大于1;传输分区信息至目标处理器。
本申请实施例提供的一种固件升级设备,包括存储器501和处理器502,存储器501中存储有计算机程序,处理器502执行计算机程序时实现如下步骤:在第二固件中,将超出第一固件长度范围的固件确定为第三固件;直接将第三固件作为目标子固件,或将第三固件对应的第二子固件作为目标子固件;判断分区信息相同的第二校验值与第一校验值是否相等,若分区信息相同的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件。
本申请实施例提供的一种固件升级设备,包括存储器501和处理器502,存储器501中存储有计算机程序,处理器502执行计算机程序时实现如下步骤:按照预设拆分规则对目标处理器升级前的第一固件进行分区,得到第一固件;按照预设校验方法对第一子固件进行校验,生成第一校验值;传输第一校验值至固件发布端;接收固件发布端传输的目标子固件及分区信息;基于目标子固件及分区信息,对第一固件进行子固件替换,得到升级过程中应用的第二固件;其中,固件发布端获取目标处理器升级过程中应用的第二固件;按照预设拆分规则对第二固件进行分区,得到第二子固件;按照预设校验方法对第二子固件进行校验,得到第二校验值;根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件。
请参阅图6,本申请实施例提供的另一种固件升级设备中还可以包括:与处理器502连接的输入端口503,用于传输外界输入的命令至处理器502;与处理器502连接的显示单元504,用于显示处理器502的处理结果至外界;与处理器502连接的通信模块505,用于实现固件升级设备与外界的通信。显示单元504可以为显示面板、激光扫描使显示器等;通信模块505所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取目标处理器的第一子固件的第一校验值;第一子固件为目标处理器按照预设拆分规则对目标处理器升级前的第一固件进行分区后得到的内容;第一校验值为目标处理器按照预设校验方法对第一子固件进行校验后生成的校验值;
获取目标处理器升级过程中应用的第二固件;
按照预设拆分规则对第二固件进行分区,得到第二子固件;
按照预设校验方法对第二子固件进行校验,得到第二校验值;
根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件;
传输目标子固件及分区信息至目标处理器,以使目标处理器基于目标子固件及分区信息,对第一固件进行子固件替换得到第二固件。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:预设拆分规则包括按照预设的各个子固件的起始地址和截止地址进行分区;分区信息包括各个分区的编号;获取目标处理器的第一校验值序列,第一校验值序列为按照分区信息对第一子固件的第一校验值进行排序后得到的序列;相应的,按照分区信息对第二校验值进行排序,得到第二校验值序列;将第一校验值序列和第二校验值序列进行比较,判断相对应分区的第二校验值与第一校验值是否相等。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:预设校验方法的类型包括CRC16、CRC32、MD5。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照一次传输一个子固件的传输规则,传输目标子固件至目标处理器;传输分区信息至目标处理器。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照一次传输预设数量个子固件的传输规则,传输目标子固件至目标处理器;预设数量的值大于1;传输分区信息至目标处理器。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:在第二固件中,将超出第一固件长度范围的固件确定为第三固件;直接将第三固件作为目标子固件,或将第三固件对应的第二子固件作为目标子固件;判断分区信息相同的第二校验值与第一校验值是否相等,若分区信息相同的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照预设拆分规则对目标处理器升级前的第一固件进行分区,得到第一固件;按照预设校验方法对第一子固件进行校验,生成第一校验值;传输第一校验值至固件发布端;接收固件发布端传输的目标子固件及分区信息;基于目标子固件及分区信息,对第一固件进行子固件替换,得到升级过程中应用的第二固件;其中,固件发布端获取目标处理器升级过程中应用的第二固件;按照预设拆分规则对第二固件进行分区,得到第二子固件;按照预设校验方法对第二子固件进行校验,得到第二校验值;根据分区信息,判断相对应分区的第二校验值与第一校验值是否相等,若相对应分区的第二校验值与第一校验值不相等,则将第二校验值对应的第二子固件确定为目标子固件。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的固件升级系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的固件升级方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。