固件烧录方法、装置及介质、终端设备与流程

文档序号:29566299发布日期:2022-04-09 02:34阅读:177来源:国知局
固件烧录方法、装置及介质、终端设备与流程

1.本发明涉及计算机技术领域,更具体地,其涉及一种固件烧录方法、装置及介质、终端设备。


背景技术:

2.为了完善芯片的功能,提升芯片的性能,芯片厂家需要对芯片的固件进行维护,使芯片能够以更佳的状态工作,通常情况下每种芯片都其特定的固件。
3.现有技术在进行固件维护时,需要人工根据每种芯片的编号选择其对应的固件,再将其对应的固件烧录至芯片。
4.但是,现有技术在需要维护的芯片数量很多时,需要人工花费大量时间去选择每种芯片的编号对应的固件再进行烧录,费时费力,芯片维护成本高。


技术实现要素:

5.本发明解决的技术问题是如何快速选择芯片对应的固件进行烧录,以降低芯片的维护成本。
6.为解决上述技术问题,本发明实施例提供一种固件烧录方法,包括:获取通用固件包,所述通用固件包包括适用于多种芯片的多种固件,固件与芯片的标识号一一对应;在待烧录芯片的初始化程序上电运行时,获取所述初始化程序中所述待烧录芯片的标识号;在所述通用固件包中查找与所述待烧录芯片的标识号匹配的标识号对应的固件;将查找到的固件烧录至所述待烧录芯片。
7.可选的,通过以下方式形成所述通用固件包:对多种芯片的固件进行编译;将编译后的固件拼接形成所述通用固件包。
8.可选地,所述通用固件包还包括多个芯片的标识号及其对应的固件位置,所述在所述通用固件包中查找与所述待烧录芯片的标识号匹配的标识号对应的固件还包括:在所述通用固件包中查找与所述待烧录芯片的标识号匹配的标识号;确定与所述匹配的标识号对应的固件在通用固件包中的位置,并在所述位置提取所述固件。
9.可选地,所述固件位置包括固件的存放偏移地址以及固件的大小;所述确定与所述匹配的标识号对应的固件的位置包括:根据所述匹配的标识号对应的固件的存放偏移地址和固件的大小确定所述位置。
10.可选地,所述在所述位置提取所述固件之后还包括:对提取的固件进行数据完整性校验。
11.可选地,所述获取通用固件包之前还包括:加载兼容驱动,所述兼容驱动适用于多种芯片。
12.可选地,所述通用固件包还包括所述通用固件包的属性信息。
13.本发明实施例还公开一种固件烧录装置,所述装置包括:第一获取模块,用于获取通用固件包,所述通用固件包包括适用于多种芯片的多种固件,固件与芯片的标识号一一
对应;第二获取模块,用于在待烧录芯片的初始化程序上电运行时,获取所述初始化程序中所述待烧录芯片的标识号;固件查找模块,用于在所述通用固件包中查找与所述待烧录芯片的标识号匹配的标识号对应的固件;烧录模块,用于将查找到的固件烧录至所述待烧录芯片。
14.本发明实施例还公开一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行本发明任一项固件烧录方法的步骤。
15.本发明实施例还公开一种终端设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行本发明任一项固件烧录方法的步骤。
16.与现有技术相比,本发明实施例的技术方案具有以下有益效果:
17.本发明提出的一种固件烧录方法,通用固件包包括适用于多种芯片的多种固件,当待烧录芯片上电运行时,获取待烧录芯片的标识号,并在通用固件包中查找与芯片的标识号相匹配的固件,从通用固件包中提取出相匹配的固件,并烧录至待烧录芯片中。本发明技术方案在获取到芯片的标识号时,能够自动从通用固件包中获取对应的固件,并开始固件的烧录;使用一个通用固件包即可完成多种芯片的维护,节省了人工选择芯片的时间,大大降低了维护成本。
18.进一步地,通过将多种固件进行编译再拼接,形成通用固件包,固件与芯片的标识号一一对应,将多种芯片的固件先进行整合,以便之后进行固件的选择。通过提前将多种固件进行编译,并拼接为通用固件包,有助于后续对芯片进行固件选取的便捷性。
附图说明
19.图1是本发明实施例提供的一种固件烧录方法的整体流程图;
20.图2是本发明实施例提供的一种通用固件包拼接方式的示意图;
21.图3是本发明实施例提供的一种固件烧录方法的具体应用场景的示意图;
22.图4是本发明实施例提供的一种固件烧录装置的结构示意图。
具体实施方式
23.如背景技术中所述,为了使芯片能够以更佳的状态工作,芯片厂家需要对芯片的固件进行维护,通常情况下每种芯片都其特定的固件,现有技术在进行固件维护时,需要人工根据每种芯片的编号选择其对应的固件,再将其对应的固件烧录至芯片,当需要维护的芯片数量很多时,现有技术无法提供一种烧录方法,以缩短固件的选择时间,仍需要人工花费大量时间去选择每种芯片的编号对应的固件再进行烧录,费时费力,芯片维护成本高。
24.本发明实施例中,通用固件包包括适用于多种芯片的多种固件,当待烧录芯片上电运行时,获取待烧录芯片的标识号,并在通用固件包中查找与芯片的标识号相匹配的固件,从通用固件包中提取出相匹配的固件,并烧录至待烧录芯片中。本发明技术方案在获取到芯片的标识号时,能够自动从通用固件包中获取对应的固件,并开始固件的烧录;使用一个通用固件包即可完成多种芯片的维护,节省了人工选择芯片的时间,大大降低了维护成本。
25.进一步地,通过将多种固件进行编译再拼接,形成通用固件包,固件与芯片的标识
号一一对应,将多种芯片的固件先进行整合,以便之后进行固件的选择。通过提前将多种固件进行编译,并拼接为通用固件包,有助于后续对芯片进行固件选取的便捷性。
26.为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.本发明实施例所称芯片可以是无线通信整合芯片,或者其他任意可实施类型的芯片。
28.图1是本发明实施例一种固件烧录方法的整体流程图。
29.在具体实施中,下述步骤101至步骤104所记载的固件烧录方法可以用于终端设备中。上述步骤具体可以由终端设备来执行,也可以由终端设备中具有数据处理功能的芯片所执行,也可以由终端设备中包含有数据处理功能的芯片的芯片模组来执行,例如可以是移动终端的应用处理器。
30.具体地,如图1所示,固件烧录方法可以包括以下步骤:
31.在步骤101中,获取通用固件包。
32.在步骤102中,在待烧录芯片的初始化程序上电运行时,获取所述初始化程序中所述待烧录芯片的标识号。
33.在步骤103中,在所述通用固件包中查找与所述待烧录芯片的标识号匹配的标识号对应的固件。
34.在步骤104中,将查找到的固件烧录至所述待烧录芯片。
35.至此,固件已维护完毕,可以将维护好的芯片提供给用户进行使用。
36.需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
37.在步骤101的具体实施中,获取通用固件包,通用固件包包括适用于多种芯片的多种固件。通用固件包预先存储于终端设备中。
38.在一个具体实施例中,可以先将多种固件进行编译,将编译后的固件进行拼接,以得到通用固件包,固件与芯片的标识号一一对应。
39.具体地,将编译后的固件进行拼接是指将固件编译后形成的多个2进制代码进行拼接,形成二进制文件。
40.在一个非限制性的实施例中,通用固件包中可以包括属性信息、标签信息和固件。属性信息用于对所述通用固件包进行备注,属性信息可以包括固件包的发布时间、固件包的版本号和/或固件包的作者;标签信息包括芯片的标识号以及该标识号对应的固件的位置,用于获取提取固件时固件在所述通用固件包中的具体位置。
41.在一个具体实施例中,固件的位置可以利用固件的存放偏移地址和固件大小来表示。存放偏移地址表示通用固件包中某一位置相对于基地址的偏移,基地址是通用固件包中的特定位置,例如可以是通用固件包的起始位置,用于结合存放偏移地址计算实际地址。
42.例如,通用固件包的拼接方式可以如图2所示,图2是本发明实施例提供的一种通用固件包拼接方式的示意图。
43.通用固件包的基地址为通用固件包的起始位置0。为方便理解,本实施例的通用固
件包中属性信息的大小、各固件的标签信息的大小、各固件大小均为4位。则固件a的固件存放偏移地址为16位,固件大小为4位;固件b的固件存放偏移地址为20位,固件大小为4位;固件c的固件存放偏移地址为24位,固件大小为4位。
44.若需要提取固件a,根据固件a的固件存放偏移地址为16位,则固件a在通用固件包中的起始位置为基地址加上固件偏移地址,由此确定固件a的起始位置,再根据固件a的固件大小为4位,则固件a在通用固件包中的结束位置为固件a的起始位置加上固件a的固件大小,由此确定固件a的结束位置,根据固件a的起始位置与结束位置,从而确定固件a在通用固件包中的具体位置。
45.需要说明的是,固件的具体拼接方式可以根据实际的应用场景进行适应性的配置,本发明实施例对此不作限制。
46.在步骤102的具体实施中,待烧录芯片可以是需要进行固件维护的芯片。初始化程序用于初始化固件设置。待烧录芯片的标识号能够指示唯一芯片,例如待烧录芯片的标识号为sw001,指示芯片的标识号为sw001的芯片。待烧录芯片的标识号存储于寄存器中。
47.在一个具体实施例中,在步骤102之前,可以加载兼容驱动,所述兼容驱动可适用于多种芯片,兼容驱动加载时待烧录芯片上电,并运行待烧录芯片的初始化程序。兼容驱动与待烧录芯片的初始化程序进行数据交互,初始化程序将保存于寄存器中的待烧录芯片的标识号反馈至兼容驱动。
48.在步骤103的具体实施中,由于通用固件包固件与芯片的标识号是具有对应关系的,因此在获取到待烧录芯片的标识号之后,根据上述对应关系可以获取的待烧录芯片的标识号对应的固件,也即需要烧录至待烧录芯片的固件。
49.在一个具体实施例中,根据获取到的待烧录芯片的标识号,在通用固件包中查找与所述待烧录芯片的标识号匹配的标签信息,同时获取标签信息中的固件存放偏移和固件大小,以获得待烧录芯片对应的固件在通用固件包中的具体位置,并从通用固件包中的相应位置提取待烧录芯片对应的固件。
50.进一步地,还可以对提取出的固件进行完整性校验。完整性校验是指校验固件的数据完整性,确保数据未丢失或被篡改。
51.在步骤104的具体实施中,将通过校验的待烧录芯片对应的固件烧录至待烧录芯片。
52.本发明实施例在获取到芯片的标识时,能够自动从通用固件包中获取对应的固件,并开始固件的烧录;使用一个通用固件包即可完成多种芯片的维护,节省了人工选择芯片的时间,大大降低了维护成本。
53.图3为本发明实施例提供的一种固件烧录方法的具体应用场景的示意图。
54.在步骤301的具体实施中,将芯片1、芯片2、芯片3三种芯片的固件,也即固件a、固件b和固件c进行编译,并将编译后的固件拼接形成通用固件包。通用固件包中包括属性信息、固件a、固件b和固件c,以及芯片1、芯片2、芯片3三种芯片的标签信息,标签信息中包括芯片的标识号、固件存放偏移和固件大小,用于指示与所述芯片的标识号对应的固件在通用固件包中的位置。具体的拼接方式可以是将通用固件包的属性信息、各个固件的标签信息以及各个编译后的固件按顺序进行拼接。
55.在一个具体实施例中,通用固件包的属性信息为通用固件包的版本号v1.1,基地
址为通用固件包的起始位置0。为方便理解,本实施例的通用固件包中属性信息的大小、各固件的标签信息的大小、各固件大小均为4位。芯片1的标识号为sw001,对应的固件a的固件存放偏移为16位,固件大小为4位;芯片2的标识号为sw002,对应的固件b的固件存放偏移为20位,固件大小为4位;芯片3的标识号为sw003,对应的固件c的固件存放偏移为24位,固件大小为4位。现芯片1需要维护固件,芯片1为待烧录芯片。
56.在步骤302的具体实施中,加载兼容驱动,兼容驱动加载时待烧录芯片上电,并运行待烧录芯片的初始化程序。兼容驱动与待烧录芯片的初始化程序进行数据交互,初始化程序将保存于寄存器中的待烧录芯片的标识号反馈至兼容驱动,与待烧录芯片1的初始化程序进行数据交互后,获取到待烧录芯片1的芯片的标识号为sw001。
57.在步骤303的具体实施中,在通用固件包中查找与待烧录芯片的标识号sw001匹配的标签信息,获取固件a的芯片的标识号为sw001,与待烧录芯片的标识号sw001相匹配。根据固件a的固件存放偏移地址为16位,则固件a在通用固件包中的起始位置为基地址加上固件偏移地址,由此确定固件a的起始位置,再根据固件a的固件大小为4位,则固件a在通用固件包中的结束位置为固件a的起始位置加上固件a的固件大小,由此确定固件a的结束位置,根据固件a的起始位置与结束位置,从而确定固件a在通用固件包中的具体位置。提取固件a,对提取的固件a进行完整性校验。
58.在步骤304的具体实施中,将通过校验的固件a烧录至待烧录芯片。
59.本发明实施例通将芯片1、芯片2、芯片3三种芯片的固件,也即固件a、固件b和固件c进行编译,并将编译后的固件拼接形成通用固件包。芯片1需要进行固件维护,当待烧录芯片1上电运行时,获取待烧录芯片1的标识号sw001,并在通用固件包中查找与芯片的标识号sw001相匹配的固件a,从通用固件包中提取出与待烧录芯片1相匹配的固件a,并烧录至待烧录芯片中。使用该方法,可以自动从通用固件包中提取出对应的固件a,无需从固件a、b、c中查找芯片1对应的固件,节省了固件的查找时间,降低了维护成本,当通用固件包中的固件数量不断提升时,该方法的效果更加显著。
60.如图4所示,本发明实施例还公开了一种固件烧录装置。固件烧录装置40包括:
61.第一获取模块401,用于获取通用固件包,所述通用固件包包括适用于多种芯片的多种固件,固件与芯片的标识号一一对应;
62.第二获取模块402,用于在待烧录芯片的初始化程序上电运行时,获取所述初始化程序中所述待烧录芯片的标识号;
63.固件查找模块403,用于在所述通用固件包中查找与所述待烧录芯片的标识号匹配的标识号对应的固件;
64.烧录模块404,用于将查找到的固件烧录至所述待烧录芯片。
65.关于所述固件烧录装置40的工作原理、工作方式的更多内容,可以参照图1和图3中的相关描述,这里不再赘述。
66.在具体实施中,上述固件烧录装置可以对应于服务器中具有固件烧录功能的芯片,例如soc(system-on-a-chip,片上系统)、基带芯片等;或者对应于服务器中包括具有固件烧录功能的芯片模组;或者对应于具有数据处理功能芯片的芯片模组,或者对应于服务器。
67.关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模
块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
68.本发明实施例还公开了一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时可以执行图1和图3中所示方法的步骤。所述存储介质可以包括rom、ram、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
69.本发明实施例还公开了一种终端设备,所述终端设备可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序。所述处理器运行所述计算机程序时可以执行图1和图3中所示方法的步骤。
70.本技术实施例中出现的“多个”是指两个或两个以上。
71.应理解,本技术实施例中,所述处理器可以为中央处理单元(central processing unit,简称cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
72.还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,简称rom)、可编程只读存储器(programmable rom,简称prom)、可擦除可编程只读存储器(erasable prom,简称eprom)、电可擦除可编程只读存储器(electrically eprom,简称eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称ram)可用,例如静态随机存取存储器(static ram,简称sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,简称sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,简称ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,简称esdram)、同步连接动态随机存取存储器(synchlink dram,简称sldram)和直接内存总线随机存取存储器(direct rambus ram,简称dr ram)。
73.上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。
74.应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
75.在本技术所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
76.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
77.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
78.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。
79.虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1