固件升级的方法、服务器及终端设备与流程

文档序号:32834674发布日期:2023-01-06 17:37阅读:72来源:国知局
固件升级的方法、服务器及终端设备与流程

1.本公开实施例涉及互联网技术领域,尤其涉及一种固件升级的方法、服务器及终端设备。


背景技术:

2.固件(firmware)是指写入如终端设备中的erom(可擦写只读存储器)或eeprom(电可擦可编程只读存储器)中的程序,相应地,固件升级可以理解为对终端设备中的程序进行升级。
3.在现有技术中,通常采用的固件升级的方法包括:服务器将用于固件升级的固件整包(即完整的固件的升级包)传输给终端设备,终端设备接收到固件整包之后,基于固件整包对用于存储原固件的代码片段(即固件的内容)的各个分区依次擦除升级处理。
4.然而,采用上述方法,终端设备需要下载固件整包,导致下载耗时较长,且终端设备需要依次对各分区进行擦除升级处理,存在升级耗时较长的技术问题。


技术实现要素:

5.本公开实施例提供一种固件升级的方法、服务器及终端设备,用以解决升级效率偏低的技术问题。
6.第一方面,本公开实施例提供一种固件升级的方法,应用于服务器,所述方法包括:
7.接收终端设备发送的固件升级请求,其中,所述固件升级请求用于请求对当前固件进行升级;
8.确定用于对所述当前固件进行升级的目标固件,并确定所述目标固件中与所述当前固件不相同的固件内容;
9.根据所述不相同的固件内容生成待更新数据包,并将所述待更新数据包传输给所述终端设备,所述待更新数据包用于对所述当前固件进行升级。
10.在本实施例中,引入了:由服务器确定不相同的固件内容,基于不相同的固件内容生成待更新数据包,并将待更新数据包发送给终端设备,以便终端设备基于待更新数据包对当前固件进行更新的特征,由于待更新数据包中为不相同的固件内容,因此,当终端设备下载待更新数据包的时间相对少于下载固件整包(即目标固件中的所有固件内容)的时间,因此,可以避免下载耗时较长的弊端,且由于待更新数据包用于对当前固件进行升级,可以避免全部更新造成的升级时间长,升级效率低的技术问题,提高了升级效率,且无需考虑当前固件与目标固件之间是否有其他的版本的固件,更无需依据不同的固件的版本依次升级,提高了升级的灵活性和便捷性的技术效果。
11.在一些实施例中,所述终端设备包括多个分区,各所述分区存储的固件内容组成所述当前固件;确定所述目标固件中与所述目标固件不相同的固件内容,包括:
12.确定每一所述分区中存储的所述当前固件的固件内容,并确定用于升级所述当前
固件后,所述目标固件存储在每一所述分区中的固件内容;
13.根据每一所述分区对应的当前固件的固件内容与目标固件的固件内容,确定在各所述分区中,所述目标固件中与所述当前固件的不相同的固件内容。
14.在本实施例中,通过基于每一分区对应的当前固件的固件内容与目标固件的固件内容,确定目标固件中与当前固件的不相同的固件内容,可以使得确定出的不相同的固件内容具有较高的准确性和可靠性的技术效果。
15.在一些实施例中,所述固件升级请求中携带每一所述分区存储的所述当前固件的固件内容所对应的当前校验值;根据每一所述分区对应的当前固件的固件内容与目标固件的固件内容,确定在各所述分区中,所述目标固件中与所述当前固件的不相同的固件内容,包括:
16.确定用于升级所述当前固件后,所述目标固件被每一所述分区存储的固件内容对应的目标校验值;
17.根据各当前校验值和各目标校验值确定在各所述分区中,所述目标固件中与所述当前固件的不相同的固件内容。
18.在本实施例中,通过将当前校验值与目标校验值进行比较,以便确定不相同的固件内容,无需对各固件内容一一进行匹配,从而可以提高确定不相同的固件内容的效率的技术效果。
19.在一些实施例中,确定用于升级所述当前固件后,所述目标固件被每一所述分区存储的固件内容对应的目标校验值,包括:
20.确定用于升级所述当前固件后,所述目标固件被每一所述分区存储的固件内容,并对每一所述分区存储的固件内容进行循环冗余校验,得到每一所述分区存储的固件内容对应的目标校验值。
21.在本实施例中,通过循环冗余校验的方式确定目标校验值,可以使得目标校验值具有唯一性,因此,当基于当前校验值和目标校验值确定不相同的固件内容时,可以提高确定出的不相同的固件内容的可靠性和准确性的技术效果。
22.在一些实施例中,根据所述不相同的固件内容生成待更新数据包,包括:
23.确定所述不相同的固件内容的分区所对应的地址和长度;
24.根据所述地址、所述长度、以及所述不相同的固件内容,生成所述待更新数据包。
25.在本实施例中,通过基于地址、长度、以及不相同的固件内容,生成待更新数据包,使得待更新数据包中的内容具有丰富程度较高的特点,从而可以使得待更新数据包中的内容与更新当前固件的操作之间具有高度的关联性,进而可以提高对当前固件进行升级的可靠性和效率的技术效果。
26.在一些实施例中,所述待更新数据包中包括:包头和待更新数据,所述包头中包括:所述地址和所述长度,所述待更新数据包括所述不相同的固件内容。
27.第二方面,本公开实施例提供了一种固件升级的方法,应用于终端设备,所述方法包括:
28.向服务器发送固件升级请求,其中,所述固件升级请求用于请求对当前固件进行升级;
29.接收所述服务器基于所述固件升级请求反馈的待更新数据包,并根据所述待更新
数据包对所述当前固件进行升级,其中,所述待更新数据包是基于目标固件中与所述当前固件不相同的固件内容生成的,所述目标固件为用于对所述当前固件进行升级的固件。
30.在本实施例中,终端设备接收到的为仅需要进行更新的分区对应的待更新数据包,相对与对固件整包(即目标固件)进行下载而言,下载待更新数据包可以节约下载时间,提高下载效率,且对于不需要更新的分区,无需进行升级,可以提高升级的效率的技术效果。
31.在一些实施例中,所述终端设备包括多个分区,各所述分区存储的固件内容组成所述当前固件,所述不相同的固件内容是根据每一所述分区对应的当前固件的固件内容与目标固件的固件内容确定的。
32.在一些实施例中,所述固件升级请求中携带每一所述分区存储的所述当前固件的固件内容所对应的当前校验值,所述不相同的固件内容是根据各当前校验值和各目标校验值确定的,每一目标校验值是所述目标固件被每一所述分区存储的固件内容确定的。
33.在一些实施例中,还包括:
34.确定所述当前固件被每一所述分区存储的固件内容,并对每一所述分区存储的固件内容进行循环冗余校验,得到每一所述分区存储的固件内容对应的当前校验值。
35.同理,在本实施例中,通过循环冗余校验的方式确定当前校验值,可以使得当前校验值具有唯一性,因此,当基于当前校验值和目标校验值确定不相同的固件内容时,可以提高确定出的不相同的固件内容的可靠性和准确性的技术效果。
36.在一些实施例中,所述更新数据包是基于所述不相同的固件内容的分区所对应的地址和长度,以及所述不相同的固件内容生成的。
37.在一些实施例中,所述待更新数据包中包括:包头和待更新数据,所述包头中包括:所述地址和所述长度,所述待更新数据包括所述不相同的固件内容;根据所述待更新数据包对所述当前固件进行升级,包括:
38.根据所述地址确定待更新的分区,并根据所述长度从所述待更新数据包中确定用于更新所述待更新的分区的固件内容;
39.根据所述用于更新所述待更新的分区的固件内容,对所述待更新的分区中的固件内容进行升级。
40.在本实施例中,终端设备可以基于包头中的地址确定待更新的分区,根据长度确定用于更新该待更新的分区的固件内容,以便基于确定出的固件内容对待更新的分区中的固件内容进行更新,可以提高对待更新的分区的快速定位,从而实现对待更新的分区中的固件内容进行快速擦除升级,进而提高升级的准确性和可靠性的技术效果。
41.第三方面,本公开实施例还提供了一种服务器,包括:
42.第一接收单元,用于接收终端设备发送的固件升级请求,其中,所述固件升级请求用于请求对当前固件进行升级;
43.第一确定单元,用于确定用于对所述当前固件进行升级的目标固件,并确定所述目标固件中与所述当前固件不相同的固件内容;
44.生成单元,用于根据所述不相同的固件内容生成待更新数据包;
45.传输单元,用于将所述待更新数据包传输给所述终端设备,所述待更新数据包用于对所述当前固件进行升级。
46.在一些实施例中,所述终端设备包括多个分区,各所述分区存储的固件内容组成所述当前固件;所述第一确定单元,包括:
47.第一确定子单元,用于确定每一所述分区中存储的所述当前固件的固件内容,并确定用于升级所述当前固件后,所述目标固件存储在每一所述分区中的固件内容;
48.第二确定子单元,用于根据每一所述分区对应的当前固件的固件内容与目标固件的固件内容,确定在各所述分区中,所述目标固件中与所述当前固件的不相同的固件内容。
49.在一些实施例中,所述固件升级请求中携带每一所述分区存储的所述当前固件的固件内容所对应的当前校验值;所述第二确定子单元用于,确定用于升级所述当前固件后,所述目标固件被每一所述分区存储的固件内容对应的目标校验值,并根据各当前校验值和各目标校验值确定在各所述分区中,所述目标固件中与所述当前固件的不相同的固件内容。
50.在一些实施例中,所述第二确定子单元用于,确定用于升级所述当前固件后,所述目标固件被每一所述分区存储的固件内容,并对每一所述分区存储的固件内容进行循环冗余校验,得到每一所述分区存储的固件内容对应的目标校验值。
51.在一些实施例中,所述生成单元,包括:
52.第三确定子单元,用于确定所述不相同的固件内容的分区所对应的地址和长度;
53.生成子单元,用于根据所述地址、所述长度、以及所述不相同的固件内容,生成所述待更新数据包。
54.在一些实施例中,所述待更新数据包中包括:包头和待更新数据,所述包头中包括:所述地址和所述长度,所述待更新数据包括所述不相同的固件内容。
55.第四方面,本公开实施例还提供了一种终端设备,包括:
56.发送单元,用于向服务器发送固件升级请求,其中,所述固件升级请求用于请求对当前固件进行升级;
57.第二接收单元,用于接收所述服务器基于所述固件升级请求反馈的待更新数据包;
58.升级单元,用于根据所述待更新数据包对所述当前固件进行升级,其中,所述待更新数据包是基于目标固件中与所述当前固件不相同的固件内容生成的,所述目标固件为用于对所述当前固件进行升级的固件。
59.在一些实施例中,所述终端设备包括多个分区,各所述分区存储的固件内容组成所述当前固件,所述不相同的固件内容是根据每一所述分区对应的当前固件的固件内容与目标固件的固件内容确定的。
60.在一些实施例中,所述固件升级请求中携带每一所述分区存储的所述当前固件的固件内容所对应的当前校验值,所述不相同的固件内容是根据各当前校验值和各目标校验值确定的,每一目标校验值是所述目标固件被每一所述分区存储的固件内容确定的。
61.在一些实施例中,还包括:
62.第二确定单元,用于确定所述当前固件被每一所述分区存储的固件内容;
63.处理单元,用于对每一所述分区存储的固件内容进行循环冗余校验,得到每一所述分区存储的固件内容对应的当前校验值。
64.在一些实施例中,所述更新数据包是基于所述不相同的固件内容的分区所对应的
地址和长度,以及所述不相同的固件内容生成的。
65.在一些实施例中,所述待更新数据包中包括:包头和待更新数据,所述包头中包括:所述地址和所述长度,所述待更新数据包括所述不相同的固件内容;所述升级单元,包括:
66.第四确定子单元,用于根据所述地址确定待更新的分区,并根据所述长度从所述待更新数据包中确定用于更新所述待更新的分区的固件内容;
67.升级子单元,用于根据所述用于更新所述待更新的分区的固件内容,对所述待更新的分区中的固件内容进行升级。
附图说明
68.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
69.图1为本公开一个实施例的固件升级的方法的示意图;
70.图2为本公开另一实施例的固件升级的方法的示意图;
71.图3为本公开另一实施例的固件升级的方法的示意图;
72.图4为本公开一个实施例的服务器的示意图;
73.图5为本公开另一实施例的服务器的示意图;
74.图6为本公开一个实施例的终端设备的示意图;
75.图7为本公开另一实施例的终端设备的示意图;
76.图8为本公开实施例的固件升级的方法的电子设备的框图。
77.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
78.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
79.随着互联网技术的发展,更多的应用被广泛地应用于终端设备,为了提高应用的各方面性能,通常需要对应用进行升级,而对应用的升级实际为对应用的固件进行升级。
80.在相关技术中,固件的升级方法主要包括:整包升级法、比对升级法、以及差分包升级法。
81.其中,整包升级法是指:服务器通过通用串行总线(universalserialbus,usb)或是网络将固件整包发送给终端设备,终端设备根据固件整包,对终端设备的每个分区依次进行擦除升级。
82.然而,采用整包升级法,服务器传输给终端设备的为固件整包,终端设备的下载时间相对较长,即存在耗时较长的技术问题,且终端设备需要基于固件整包对各个分区依次进行擦除升级,则对于部分不需要升级的分区也需要进行擦除升级,造成升级耗时较长,效
率偏低的技术问题。
83.比对升级法是指:服务器通过通用串行总线或是网络将固件整包发送给终端设备,终端设备依次将每一分区的数据和固件整包进行比对(如通过crc/md5等方式实现比对,具体比对算法此处不再赘述),得到每一分区的比对结果,若某分区的比对结果为不同(即分区中的数据与固件整包中的数据不同),则需要对该分区进行擦除升级,反之,若某分区的比对结果为相同(即分区中的数据与固件整包中的数据相同),则无需对该分区进行擦除升级。
84.然而,采用比对升级法,服务器传输给终端设备的为固件整包,终端设备的下载时间相对较长,即存在耗时较长的技术问题,且终端设备需要将固件整包分别与各分区中的数据进行比对,存在升级耗时较长,效率偏低的技术问题。
85.差分包升级法是指:基于终端设备各个版本的固件,依次进行比对,从而生成差分包,如先在a版本与b版本之间做差分包,而后在b版本与c版本之间做差分包,以此类推,以便终端设备基于差分包进行依次升级。
86.然而,采用差分包升级法,在有新的固件时,需要对新的固件与原来的固件进行比对,且尤其当存在多个固件版本时,需要基于版本依次升级,如先从a版本升级至b版本,而后从b版本升级至c版本,造成了升级次数较多,升级灵活性偏低,升级效率偏低的技术问题。
87.为了避免上述技术问题中的至少一种,本公开的发明人经过创造性地劳动,得到了本公开的发明构思:由服务器确定目标固件与当前固件中的不相同的固件内容,根据不相同的固件内容生成待更新数据,并将待更新数据发送给终端设备,以便终端设备基于待更新数据对当前固件进行升级。
88.下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
89.请参阅图1,图1为本公开一个实施例的固件升级的方法的示意图。
90.如图1所示,固件升级的方法包括:
91.s101:接收终端设备发送的固件升级请求。
92.其中,固件升级请求用于请求对当前固件进行升级。当前固件中的“当前”用于与后文中的目标固件进行区分,而不能理解为对当前固件地限定,且当前固件是指终端设备的当前版本的固件。
93.示例性地,本实施例的执行主体为固件升级的装置,且固件升级的装置具体可以为服务器(可以为本地服务器,也可以为云端服务器)。
94.应该理解地是,本实施例对服务器与终端设备之间的连接方式不做限定。例如,服务器与终端设备之间可以为有线连接,也可以为无线连接。
95.s102:确定用于对当前固件进行升级的目标固件,并确定目标固件中与当前固件不相同的固件内容。
96.结合上述分析,目标固件与当前固件为相对概念,目标固件是指用于对当前固件进行升级的固件。即当前固件为终端设备中需要被升级的固件,目标固件为用于对需要被升级的固件(即当前固件)进行升级的固件。
97.示例性地,目标固件可以为理解为当前固件的升级版本的固件,当前固件中的固件内容、与目标固件中的固件内容,可能部分相同,也可能完全不同,在本实施例中,服务器可以将当前固件中的固件内容与目标固件中的固件内容进行比较,以便确定出目标固件中的与当前固件的固件内容不相同的固件内容。
98.s103:根据不相同的固件内容生成待更新数据包,并将待更新数据包传输给终端设备。
99.其中,待更新数据包用于对当前固件进行升级。
100.该步骤可以理解为:服务器在确定出不相同的固件内容时,可以基于不相同的固件内容生成待更新数据包,并将待更新数据包发送给终端设备,以便终端设备基于待更新数据包对当前固件进行升级。
101.基于上述分析可知,本公开实施例提供了一种固件升级的方法,应用于服务器,该方法包括:接收终端设备发送的固件升级请求,其中,固件升级请求用于请求对当前固件进行升级,确定用于对当前固件进行升级的目标固件,并确定目标固件中与当前固件不相同的固件内容,根据不相同的固件内容生成待更新数据包,并将待更新数据包传输给终端设备,待更新数据包用于对当前固件进行升级,在本实施例中,引入了:由服务器确定不相同的固件内容,基于不相同的固件内容生成待更新数据包,并将待更新数据包发送给终端设备,以便终端设备基于待更新数据包对当前固件进行更新的特征,由于待更新数据包中为不相同的固件内容,因此,当终端设备下载待更新数据包的时间相对少于下载固件整包(即目标固件中的所有固件内容)的时间,所以,可以避免下载耗时较长的弊端,且由于待更新数据包用于对当前固件进行升级,可以避免全部更新造成的升级时间长,升级效率低的技术问题,提高了升级效率,且无需考虑当前固件与目标固件之间是否有其他的版本的固件,更无需依据不同的固件的版本依次升级,提高了升级的灵活性和便捷性的技术效果。
102.请参阅图2,图2为本公开另一实施例的固件升级的方法的示意图。
103.如图2所示,固件升级的方法包括:
104.s201:终端设备根据每一分区中存储的当前固件的固件内容,确定每一分区存储的当前固件的固件内容所对应的当前校验值。
105.其中,终端设备包括多个分区,各分区存储的固件内容组成当前固件。
106.当前校验值中的“当前”用于与后文中的目标校验值进行区分,而不能理解为对当前校验值地限定。
107.示例性地,终端设备中包括n(n为大于1的正整数)个分区,每一个分区中存储了当前固件中的部分固件内容,n个分区中的所有固件内容组成了当前固件。
108.当前校验值为用于验证固件内容的校验值,不同的固件内容对应的校验值不同,即n个分区中的每一个分区具有一个当前校验值,由于各个分区存储的当前固件的固件内容不相同,因此,各个分区之间的当前校验值不相同。
109.在一些实施例中,当前校验值的生成方法可以包括:确定当前固件被每一分区存储的固件内容,并对每一分区存储的固件内容进行循环冗余校验(cyclic redundancy check,crc),得到每一分区存储的固件内容对应的当前校验值。
110.s202:终端设备向服务器发送固件升级请求。
111.其中,固件升级请求用于请求对当前固件进行升级,固件升级请求中携带每一分
区存储的当前固件的固件内容所对应的当前校验值。
112.需要说明地是,本实施例对固件升级请求中携带的各当前校验值的方式不做限定。例如,固件升级请求中可以携带当前校验表,当前校验表中包括每一分区存储的当前固件的固件内容所对应的当前校验值;又如,固件升级请求中可以携带当前校验映射关系,映射关系中体现了当前校验值与分区之间的对应关系。
113.相应地,服务器接收由终端设备发送的固件升级请求。
114.s203:服务器确定目标固件存储于各分区时,各分区存储的目标固件的固件内容的目标校验值。
115.示例性地,关于服务器确定目标校验值的原理,可以参见上述示例中,终端设备确定当前校验值的原理,此处不再赘述。
116.同理,本实施例对服务器存储目标校验值的方式不做限定,如可以采用目标校验表的方法,也可以采用映射关系的方式等。
117.值得说明地是,不同类型的终端设备的分区方式可能并不相同,在一些实施例中,服务器可以基于不同类型的终端设备的分区方式,确定不同类型的终端设备基于相应分区存储目标固件时,各分区存储的目标固件的固件内容的目标校验值,并在接收到终端设备发送的固件升级请求时,基于固件升级请求中携带的终端设备的标识确定终端设备的类型,并确定终端设备的分区方式,从而确定与该分区方式而生成的各分区的目标校验值。
118.s204:服务器对每一分区的当前校验值和目标校验值进行比对,并将当前校验值和目标校验值不相同的分区确定为需要升级当前固件的固件内容的分区。
119.该步骤具体可以理解为:每一分区对应一个当前校验值和一个目标校验值,针对每一分区,服务器将该分区的当前校验值和目标校验值进行比对,以确定二者是否相同,若该分区的当前校验值和目标校验值相同,则说明该分区中存储的当前固件的固件内容无需升级,反之,若该分区的当前校验值和目标校验值不同,则说明该分区中存储的当前固件的固件内容需要升级。
120.s205:服务器根据需要升级当前固件的固件内容的分区对应的目标固件的固件内容,生成待更新数据包。
121.例如,若服务器执行s204之后,确定n个分区中有三个分区中存储的当前固件的固件内容需要升级,则服务器可以确定该三个分区用于存储目标固件时,存储的目标固件的固件内容,并将该三个分区存储的目标固件的固件内容组合成待更新数据包。
122.在一些实施例中,待更新数据包中包括:包头和待更新数据。
123.其中,包头中包括:不相同的固件内容的分区所对应地址和长度,待更新数据包括不相同的固件内容。
124.s206:服务器向终端设备发送待更新数据包。
125.相应地,终端设备接收由服务器发送的待更新数据包。
126.s207:终端设备根据待更新数据包对当前固件进行升级。
127.结合上述分析,待更新数据包中包括:包头和待更新数据,且包头中包括:不相同的固件内容的分区所对应地址和长度,待更新数据包括不相同的固件内容。
128.相应地,s207可以具体包括:对待更新数据包进行解析,得到包头和待更新数据,根据包头中的地址和长度确定待升级的分区,并根据待更新数据对待升级的分区中的当前
固件的固件内容进行擦除升级。
129.其中,在终端设备完成升级之后,可以向服务器发送用于指示升级完整的反馈信息。
130.请参阅图3,图3为本公开另一实施例的固件升级的方法的示意图。
131.如图3所示,固件升级的方法包括:
132.s301:向服务器发送固件升级请求。
133.其中,固件升级请求用于请求对当前固件进行升级。
134.示例性地,本实施例的执行主体可以为终端设备。
135.s302:接收服务器基于固件升级请求反馈的待更新数据包,并根据待更新数据包对当前固件进行升级。
136.其中,待更新数据包是基于目标固件中与当前固件不相同的固件内容生成的,目标固件为用于对当前固件进行升级的固件。
137.值得说明地是,在本实施例中,终端设备接收到的为仅需要进行更新的分区对应的待更新数据包,相对与对固件整包(即目标固件)进行下载而言,下载待更新数据包可以节约下载时间,提高下载效率,且对于不需要更新的分区,无需进行升级,可以提高升级的效率的技术效果。
138.在一些实施例中,终端设备包括多个分区,各所述分区存储的固件内容组成所述当前固件,所述不相同的固件内容是根据每一所述分区对应的当前固件的固件内容与目标固件的固件内容确定的。
139.在一些实施例中,固件升级请求中携带每一所述分区存储的所述当前固件的固件内容所对应的当前校验值,所述不相同的固件内容是根据各当前校验值和各目标校验值确定的,每一目标校验值是所述目标固件被每一所述分区存储的固件内容确定的。
140.在一些实施例中,该方法还包括:
141.确定所述当前固件被每一所述分区存储的固件内容,并对每一所述分区存储的固件内容进行循环冗余校验,得到每一所述分区存储的固件内容对应的当前校验值。
142.在一些实施例中,所述更新数据包是基于所述不相同的固件内容的分区所对应的地址和长度,以及所述不相同的固件内容生成的。
143.在一些实施例中,所述待更新数据包中包括:包头和待更新数据,所述包头中包括:所述地址和所述长度,所述待更新数据包括所述不相同的固件内容;根据所述待更新数据包对所述当前固件进行升级,包括:
144.根据所述地址确定待更新的分区,并根据所述长度从所述待更新数据包中确定用于更新所述待更新的分区的固件内容;
145.根据所述用于更新所述待更新的分区的固件内容,对所述待更新的分区中的固件内容进行升级。
146.请参阅图4,图4为本公开一个实施例的服务器的示意图。
147.如图4所示,服务器400包括:
148.第一接收单元401,用于接收终端设备发送的固件升级请求,其中,所述固件升级请求用于请求对当前固件进行升级。
149.第一确定单元402,用于确定用于对所述当前固件进行升级的目标固件,并确定所
述目标固件中与所述当前固件不相同的固件内容。
150.生成单元403,用于根据所述不相同的固件内容生成待更新数据包。
151.传输单元404,用于将所述待更新数据包传输给所述终端设备,所述待更新数据包用于对所述当前固件进行升级。
152.请参阅图5,图5为本公开另一实施例的服务器的示意图。
153.如图5所示,服务器500包括:
154.第二接收单元501,用于接收终端设备发送的固件升级请求,其中,所述固件升级请求用于请求对当前固件进行升级。
155.第一确定单元502,用于确定用于对所述当前固件进行升级的目标固件,并确定所述目标固件中与所述当前固件不相同的固件内容。
156.结合图5可知,在一些实施例中,所述终端设备包括多个分区,各所述分区存储的固件内容组成所述当前固件;所述第一确定单元502,包括:
157.第一确定子单元5021,用于确定每一所述分区中存储的所述当前固件的固件内容,并确定用于升级所述当前固件后,所述目标固件存储在每一所述分区中的固件内容。
158.第二确定子单元5022,用于根据每一所述分区对应的当前固件的固件内容与目标固件的固件内容,确定在各所述分区中,所述目标固件中与所述当前固件的不相同的固件内容。
159.在一些实施例中,所述固件升级请求中携带每一所述分区存储的所述当前固件的固件内容所对应的当前校验值;所述第二确定子单元用于,确定用于升级所述当前固件后,所述目标固件被每一所述分区存储的固件内容对应的目标校验值,并根据各当前校验值和各目标校验值确定在各所述分区中,所述目标固件中与所述当前固件的不相同的固件内容。
160.在一些实施例中,所述第二确定子单元5022用于,确定用于升级所述当前固件后,所述目标固件被每一所述分区存储的固件内容,并对每一所述分区存储的固件内容进行循环冗余校验,得到每一所述分区存储的固件内容对应的目标校验值。
161.生成单元503,用于根据所述不相同的固件内容生成待更新数据包。
162.结合图5可知,在一些实施例中,生成单元503,包括:
163.第三确定子单元5031,用于确定所述不相同的固件内容的分区所对应的地址和长度;
164.生成子单元5032,用于根据所述地址、所述长度、以及所述不相同的固件内容,生成所述待更新数据包。
165.传输单元504,用于将所述待更新数据包传输给所述终端设备,所述待更新数据包用于对所述当前固件进行升级。
166.在一些实施例中,所述待更新数据包中包括:包头和待更新数据,所述包头中包括:所述地址和所述长度,所述待更新数据包括所述不相同的固件内容。
167.请参阅图6,图6为本公开一个实施例的终端设备的示意图。
168.如图6所示,终端设备600包括:
169.发送单元601,用于向服务器发送固件升级请求,其中,所述固件升级请求用于请求对当前固件进行升级。
170.第二接收单元602,用于接收所述服务器基于所述固件升级请求反馈的待更新数据包。
171.升级单元603,用于根据所述待更新数据包对所述当前固件进行升级,其中,所述待更新数据包是基于目标固件中与所述当前固件不相同的固件内容生成的,所述目标固件为用于对所述当前固件进行升级的固件。
172.请参阅图7,图7为本公开另一实施例的终端设备的示意图。
173.如图7所示,终端设备700包括:
174.第二确定单元701,用于确定所述当前固件被每一所述分区存储的固件内容。
175.处理单元702,用于对每一所述分区存储的固件内容进行循环冗余校验,得到每一所述分区存储的固件内容对应的当前校验值。
176.发送单元703,用于向服务器发送固件升级请求,其中,所述固件升级请求用于请求对当前固件进行升级。
177.第二接收单元704,用于接收所述服务器基于所述固件升级请求反馈的待更新数据包。
178.升级单元705,用于根据所述待更新数据包对所述当前固件进行升级,其中,所述待更新数据包是基于目标固件中与所述当前固件不相同的固件内容生成的,所述目标固件为用于对所述当前固件进行升级的固件。
179.结合图7可知,在一些实施例中,所述待更新数据包中包括:包头和待更新数据,所述包头中包括:所述地址和所述长度,所述待更新数据包括所述不相同的固件内容;所述升级单元705,包括:
180.第四确定子单元7051,用于根据所述地址确定待更新的分区,并根据所述长度从所述待更新数据包中确定用于更新所述待更新的分区的固件内容;
181.升级子单元7052,用于根据所述用于更新所述待更新的分区的固件内容,对所述待更新的分区中的固件内容进行升级。
182.在一些实施例中,所述终端设备包括多个分区,各所述分区存储的固件内容组成所述当前固件,所述不相同的固件内容是根据每一所述分区对应的当前固件的固件内容与目标固件的固件内容确定的。
183.在一些实施例中,所述固件升级请求中携带每一所述分区存储的所述当前固件的固件内容所对应的当前校验值,所述不相同的固件内容是根据各当前校验值和各目标校验值确定的,每一目标校验值是所述目标固件被每一所述分区存储的固件内容确定的。
184.在一些实施例中,所述更新数据包是基于所述不相同的固件内容的分区所对应的地址和长度,以及所述不相同的固件内容生成的。
185.根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
186.根据本公开的实施例,本公开还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
187.如图8所示,是根据本公开实施例的固件升级的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助
理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
188.如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。
189.存储器802即为本公开所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的固件升级的方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的固件升级的方法。
190.存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的固件升级的方法对应的程序指令/模块。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的固件升级的方法。
191.存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据固件升级的方法的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至固件升级的方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
192.固件升级的方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
193.输入装置803可接收输入的数字或字符信息,以及产生与固件升级的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
194.此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在
包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
195.这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
196.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
197.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
198.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
199.根据本公开实施例的另一个方面,本公开实施例还提供了一种固件升级的系统,包括:
200.如上任一实施例所述的服务器,如图4或图5所示的服务器;
201.如上任一实施例所述的终端设备,如图6或图7所示的终端设备。
202.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
203.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1