CN105159727B - 固件升级处理方法、装置和系统 - Google Patents

固件升级处理方法、装置和系统 Download PDF

Info

Publication number
CN105159727B
CN105159727B CN201510608502.7A CN201510608502A CN105159727B CN 105159727 B CN105159727 B CN 105159727B CN 201510608502 A CN201510608502 A CN 201510608502A CN 105159727 B CN105159727 B CN 105159727B
Authority
CN
China
Prior art keywords
hardware
firmware
array
register
terminal device
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
Application number
CN201510608502.7A
Other languages
English (en)
Other versions
CN105159727A (zh
Inventor
田小华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201710848477.9A priority Critical patent/CN108334372B/zh
Priority to CN201510608502.7A priority patent/CN105159727B/zh
Publication of CN105159727A publication Critical patent/CN105159727A/zh
Application granted granted Critical
Publication of CN105159727B publication Critical patent/CN105159727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请提出一种固件升级处理方法、装置和系统,其中,该方法包括:从升级服务设备中获取携带硬件标识的升级固件;将所述升级固件转化为数组;在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。通过本申请提供的固件升级处理方法、装置和系统,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性。

Description

固件升级处理方法、装置和系统
技术领域
本申请涉及通信技术领域,尤其涉及一种固件升级处理方法、装置和系统。
背景技术
对终端设备中的硬件进行固件升级,可以完善设备功能、增强稳定性、修补漏洞。不同的终端设备具有不同的硬件,对应的固件升级场景很多,以对手机中的存储器固件升级为例说明目前的固件升级方式,具体如下:
方式一,内核调用请求到应用层,从应用层拷贝固件到内核层,也就是打开固件,并发送写命令到内核,内核将接收到的固件通过固有的协议写入存储器中;方式二,在内核层创建用于向存储器写固件的设备节点(文件),应用层主动发起向设备节点写固件的命令。
由此可见,目前的存储器固件升级方式都是在终端设备的内核加载之后进行,但是,终端设备中很多像存储器之类的硬件在内核没有加载运行的时候也会使用,此类硬件也需要在内核加载运行后方能对硬件固件加以升级。因此,现有技术的固件升级方式存在一定的局限性,降低了使用的有效性。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种固件升级处理方法,该方法实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性。
本申请的第二个目的在于提出一种固件升级处理装置。
本申请的第三个目的在于提出一种固件升级处理系统。
为达上述目的,本申请第一方面实施例提出了一种固件升级处理方法,包括:从升级服务设备中获取携带硬件标识的升级固件;将所述升级固件转化为数组;在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。
本申请实施例的固件升级处理方法,首先从升级服务设备中获取携带硬件标识的升级固件,并将所述升级固件转化为数组;然后在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性。
为达上述目的,本申请第二方面实施例提出了一种固件升级处理装置,包括:第一获取模块,用于从升级服务设备中获取携带硬件标识的升级固件;转换模块,用于将所述升级固件转化为数组;升级模块,用于在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。
本申请实施例的固件升级处理装置,通过第一获取模块从升级服务设备中获取携带硬件标识的升级固件;通过转换模块将所述升级固件转化为数组;通过升级模块在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性。
为达上述目的,本申请第三方面实施例提出了一种固件升级处理系统,包括:升级服务设备、终端设备,所述终端设备中包括至少一个硬件,以及如上所述的固件升级处理装置。
本申请实施例的固件升级处理系统,通过固件升级处理装置从升级服务设备中获取携带硬件标识的升级固件,将所述升级固件转化为数组,在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一个实施例的固件升级处理方法的流程图;
图2是本申请另一个实施例的固件升级处理方法的流程图;
图3是本申请另一个实施例的固件升级处理方法的流程图;
图4是本申请一个实施例的固件升级处理装置的结构示意图;
图5是本申请另一个实施例的固件升级处理装置的结构示意图;
图6是本申请另一个实施例的固件升级处理装置的结构示意图;
图7是本申请一个实施例的固件升级处理系统的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的固件升级处理方法及装置。
图1是本申请一个实施例的固件升级处理方法的流程图。
如图1所示,该固件升级处理方法包括:
步骤101,从升级服务设备中获取携带硬件标识的升级固件。
具体来说,本实施例提供的固件升级处理方法被配置在对终端设备中的硬件进行固件升级的应用场景。固件就是指最基础、最底层的软件,让终端设备得以运行的程序代码,比如计算机主板上的基本输入/输出系统(Basic Input/output System,BIOS)。固件包括很多模块:驱动、控制、解码、传送、检测等,只有在固件的控制下终端设备才能正常工作。
固件的实质是软件,容量并不一致,有的几百兆,有的只有几千字节,固件一般存储于设备中的电可擦除只读存储器或芯片中,固件升级是指把新的固件写入芯片中,代替原有的固件的过程。
需要说明的是,本实施例中的终端设备可以包括:手机、个人计算机、数码相机,以及打印机等设备,终端设备中的硬件包括:存储器、硬盘、基本输入输出系统,以及光驱等,这些硬件中都有固件,终端设备在这些固件的控制下才能进行正常工作。
随着信息时代的来临,硬件厂商最初的固件设计很难全面满足客户需求,为了解决之前固件中的问题、改善操作方式,为用户提供更加人性化的功能、或者提供更多的应用支持,会将升级固件发布到升级服务设备中,从而用户根据升级服务设备中的升级固件对终端设备中的硬件进行固件升级,提高终端设备的性能。
若需要应用升级服务设备中的升级固件,对终端设备中的硬件固件进行升级处理,首先从升级服务设备中获取携带硬件标识的升级固件。其中,升级服务设备包括:U盘、移动硬盘,以及应用服务器。需要说明的是,由于升级服务设备的不同,具体的获取方式也不同,比如:当升级服务设备为U盘时,可以通过USB接口获取升级固件;当升级服务设备为移动硬盘时,可以通过有线方式获取升级固件;当升级服务设备为应用服务器时,可以通过无线方式获取升级固件。
步骤102,将所述升级固件转化为数组。
步骤103,在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。
具体来说,由于现有的固件升级技术,是在终端设备的开机引导阶段和内核加载阶段之后,即终端设备完全启动起来,通过内核与应用层的交互配合,以文件的方式获取到升级固件,并将其写入内核,再从内核将升级固件写入到硬件中,从而完成对硬件的固件升级。
然而,硬件中的固件在内核没有加载运行的时候也会使用,也就是开机引导阶段就会使用,因此,在开机引导阶段完成对硬件的固件升级更为有效。但是,现有技术的固件升级过程必须涉及内核和应用层,而且,升级固件是以文件的形式进行写入的,写入的路径是通过内核的。由此可见,如果在开机引导阶段就要完成固件升级,是无法涉及内核和应用层,也无法以文件的形式获取升级固件。
因此,从升级服务设备中获取携带硬件标识的升级固件之后,将该升级固件转化为数组。单位数据包含预设的比特位数,比如每个单位数组是8比特,通过发送命令,将数组写入与硬件标识对应的硬件中。
由于固件的容量有大小之分,因此,为了进一步地提高写入效率,步骤102中,可以按以下方式将升级固件转化为数组,具体包括:
对所述升级固件进行编译生成字符;
根据预设的固件容量大小与单位数组的对应关系,将所述字符生成与当前升级固件容量大小匹配的数组。
具体地,首先将升级固件进行编译生成字符,然后根据预设的固件大小与单位数组的对应关系,将字符生成与当前升级固件大小匹配的数组。比如:若固件大小小于等于预设的第一阈值,则将编译后的字符生成多个与第一阈值对应的第一长度的数组;若固件大小大于所述第一阈值且小于预设的第二阈值,其中,第二阈值大于第一阈值,则将编译后的字符生成多个与第二阈值对应的第二长度的数组,其中,第二长度的数组大于第一长度的数组。从而可以根据固件大小生成匹配长度的数组,以更高的效率写入硬件中,进一步地提高固件升级的效率。
将升级固件转化为数组后,在终端设备的开机引导阶段,确定与该硬件标识对应的硬件后,进而将该数组写入对应的硬件中。
本申请实施例的固件升级处理方法,首先从升级服务设备中获取携带硬件标识的升级固件,并将所述升级固件转化为数组;进而在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性。
针对图1所示实施例中的步骤103,在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中的方式有很多,例如:通过独立的专用存储设备写入,或者通过寄存器写入等,可以根据实际应用需要进行选择,本实施例对此不作限制。
以显卡固件升级为例说明通过独立的专用存储设备的写入过程:专用存储设备的容量大小与升级固件的单位数组长度一致,并且是显卡中存储固件区域中数据块的整数倍,因此,在开机引导阶段先将升级固件数组用指令批量写入独立的专用存储设备中,再以显卡中固件升级地址为起始,将数组从专用存储设备中写入显卡中。为了更加清楚的介绍在开机引导阶段写入升级固件的方式,以图2为例介绍以寄存器方式在开机引导阶段,将升级固件数组写入硬件中的过程。
图2是本申请另一个实施例的固件升级处理方法的流程图。
如图2所示,本实施例介绍以寄存器方式在开机引导阶段,将升级固件数组写入硬件中的过程,针对步骤103,具体包括:
步骤201,判断与所述硬件标识对应的硬件中是否存在第一寄存器;
具体地,在将升级固件转换为数组后,判断与硬件标识对应的硬件中是否存在第一寄存器,从而确定是否通过硬件内部的寄存器来进行数据的传送。需要说明的是,本实施例中涉及的第一寄存器和第二寄存器的容量大小与升级固件的单位数组长度一致,并且是显卡中存储固件区域中数据块的整数倍,与上述的专用存储设备相比,寄存器一般是指由基本的RS触发器结构衍生出来的D触发,就是一些与非门构成的结构,处理速度更快。
若判断获知所述硬件中存在所述第一寄存器,则执行步骤202,若判断获知所述硬件中不存在所述第一寄存器,执行步骤206。
步骤202,若判断获知所述硬件中存在所述第一寄存器,则向所述第一寄存器发送升级使能指令。
步骤203,当接收所述第一寄存器返回的升级模式准备信号时,将所述数组写入所述第一寄存器中。
步骤204,以所述硬件中的固件升级地址为起始,将所述数组从所述第一寄存器写入所述硬件中。
步骤205,向所述第一寄存器发送升级退出指令。
具体地,步骤202至步骤205中,若判断获知所述硬件中存在所述第一寄存器,则向该第一寄存器发送升级使能指令,当第一寄存器接收到该升级使能指令后,设置对应的位置使能,即进入升级启动模式,然后返回升级模式准备信号。
当接收到第一寄存器返回的升级模式准备信号时,将数组批次写入第一寄存器中,然后以硬件中的固件升级地址为起始,将数组从第一寄存器写入硬件中,全部写入后,向第一寄存器发送升级退出指令,从而寄存器关闭使能,退出升级模式。
步骤206,若判断获知所述硬件中不存在所述第一寄存器,则向所述终端设备中的第二寄存器发送升级使能指令。
步骤207,当接收所述第二寄存器返回的升级模式准备信号时,将所述数组写入所述第二寄存器中。
步骤208,以所述硬件中的固件升级地址为起始,将所述数组从所述第二寄存器写入所述硬件中。
步骤209,向所述第二寄存器发送升级退出指令。
具体地,步骤206至步骤209中,若判断获知所述硬件中不存在所述第一寄存器,则向终端设备中的第二寄存器发送升级使能指令,比如位于终端设备主板上的寄存器。当第二寄存器接收到该升级使能指令后,设置对应的位置使能,即进入升级启动模式,然后返回升级模式准备信号。
当接收到第二寄存器返回的升级模式准备信号时,将数组批次写入第二寄存器中,然后以硬件中的固件升级地址为起始,将数组从第二寄存器写入硬件中,全部写入后,向第二寄存器发送升级退出指令,从而寄存器关闭使能,退出升级模式。
本申请实施例的固件升级处理方法,首先判断与所述硬件标识对应的硬件中是否存在第一寄存器,若是,则向所述第一寄存器发送升级使能指令,当接收所述第一寄存器返回的升级模式准备信号时,将所述数组写入所述第一寄存器中,以所述硬件中的固件升级地址为起始,将所述数组从所述第一寄存器写入所述硬件中,向所述第一寄存器发送升级退出指令。否则,向所述终端设备中的第二寄存器发送升级使能指令;当接收所述第二寄存器返回的升级模式准备信号时,将所述数组写入所述第二寄存器中;以所述硬件中的固件升级地址为起始,将所述数组从所述第二寄存器写入所述硬件中,向所述第二寄存器发送升级退出指令。由此,针对终端设备中内部具有寄存器的硬件,例如存储器,可以通过硬件内部的寄存器对其进行固件升级;针对终端设备中内部不具有寄存器的硬件,例如光驱,可以通过主板等其他部件上的寄存器对其进行固件升级,从而实现了在终端设备的开机引导阶段,根据待升级的硬件中是否具有寄存器选择对应的升级处理方式,提高了固件升级的实用性、有效性和灵活性。
图3是本申请另一个实施例的固件升级处理方法的流程图。
如图3所示,该固件升级处理方法包括:
步骤301,从升级服务设备中获取携带硬件标识的升级固件;
步骤302,判断与所述硬件标识对应的硬件是否支持升级;
步骤303,若判断获知支持升级,则判断所述硬件的当前固件标识是否为升级固件标识;
步骤304,若判断获知所述当前固件标识不为所述升级固件标识,则将所述升级固件转化为数组;
具体地,若需要应用升级服务设备中的升级固件,对终端设备中的硬件固件进行升级处理,首先从升级服务设备中获取携带硬件标识的升级固件。
然后判断与硬件标识对应的硬件是否支持升级,比如根据硬件标识获知该硬件版本是否支持升级,若判断获知支持升级,则将硬件的当前固件标识与升级固件标识进行比较,硬件的当前固件标识可以通过对硬件初始化的过程获取,若比较获知当前固件标识与升级固件标识相同,则说明不需要进行固件升级,若比较获知当前固件标识与升级固件标识不同,则说明需要进行固件升级。从而将升级固件转化为数组。
步骤305,将所述硬件中的当前固件进行备份,以便在固件升级失败时进行恢复;
为了进一步地提高固件升级的安全性,在写入新的升级固件之前,将硬件中的当前固件进行备份,以便在固件升级失败时用所备份的当前固件进行恢复。
步骤306,降低数据总线传输宽度和时钟频率;
为了进一步地提高固件升级的可靠性,在写入新的升级固件之前,降低数据总线传输宽度(如将每秒钟8比特降为每秒钟4比特),同时降低时钟频率,以让固件升级可靠的进行传输。
步骤307,在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。步骤307的具体实施例过程参见上述实施例中的相应步骤,此处不再赘述。
步骤308,对所述硬件进行初始化操作。
具体来说,将升级固件以数组的方式写入对应的硬件后,需要对该硬件进行初始化操作,从而就会运行升级固件。具体的初始化操作方式很多,可以根据实际应用需要进行选择,举例说明如下:
方式一,硬件下电方式,具体包括:
对所述硬件进行下电操作;
在预设的时间段之后对所述硬件重新上电进行初始化。
具体地,由于终端设备从按下电源开始,会先后给终端设备内不同的硬件供电,进行相应的初始化操作。因此,对具体的硬件进行固件升级后,可以控制对该硬件进行下电操作,在预设的时间段之后,比如100ms,再对该硬件重新上电进行初始化,从而就会运行硬件上升级后的固件。
方式二,终端设备重启方式,具体包括:
对所述终端设备执行重启操作;
在所述终端设备的开机引导阶段,对所述硬件进行初始化。
具体地,可以对终端设备执行重启操作,终端设备就会进入下电重启模式,在终端设备自动重新上电后,进入开机引导阶段时,对硬件进行初始化,从而就会运行硬件上升级后的固件。
步骤309,获取所述硬件的当前固件标识。
步骤310,判断所述当前固件标识是否为升级固件标识,若是,报告升级成功,否则,报告升级失败。
具体地,在对固件升级后的硬件进行重初始化操作之后,获取硬件的当前固件标识,将硬件的当前固件标识与升级固件标识进行比较,若比较获知当前固件标识为升级固件标识,则报告升级成功,若比较获知当前固件标识不为升级固件标识,则报告升级失败,以便保证固件升级成功的可靠性。
本申请实施例的固件升级处理方法,首先从升级服务设备中获取携带硬件标识的升级固件,当确定该硬件支持升级后将所述升级固件转化为数组,然后对当前固件版本进行备份,以及降低总线速率和时钟频率,进而在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中;然后对所述硬件进行初始化操作,并检验是否升级成功。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性,进一步地保证了固件升级的可靠性和安全性。
为了更加清楚的说明上述固件升级方法的实施过程,以对手机中存储器的存储固件进行升级为例,具体说明如下:
步骤一,开机引导阶段完成存储器的初始化,接下来获取存储器的标识,判断是否为需要升级的存储器标识,如匹配,继续下一步,如不匹配,则跳过固件升级流程。
步骤二,读取存储器寄存器,看是否支持升级,如支持,则读取其固件号,如其为最新固件号,则跳过固件升级流程,否则继续下一步。
步骤三,发送使能命令(CMD6),设置对应寄存器值让其使能,进入存储升级模式。
步骤四,降低总线传输宽度(如将8位降为4位),同时降低时钟频率,以让固件升级更好的进行。
步骤五,以固件升级地址为起始,向硬件设备写入升级固件数据,长度为其固件大小。
步骤六,发送退出命令(CMD6),设置对应寄存器让其关闭使能,退出升级模式。
步骤七,对存储器进行下电操作,延时一段时间(100ms),重新上电,对存储重新进行初始化;或者执行重启操作,以此重新初始化。
步骤八,获取存储固件号,是否为最新固件号,报告升级是否成功。
为了实现上述实施例,本申请还提出一种固件升级处理装置。
图4是本申请一个实施例的固件升级处理装置的结构示意图。
如图4所示,该固件升级处理装置包括:
第一获取模块11,用于从升级服务设备中获取携带硬件标识的升级固件;
转换模块12,用于将所述升级固件转化为数组;
升级模块13,用于在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。
需要说明的是,升级服务设备包括:U盘、移动硬盘,以及应用服务器。
所述硬件包括:存储器、硬盘、基本输入输出系统,以及光驱。
所述终端设备包括:手机、个人计算机、数码相机,以及打印机。
需要说明的是,前述对固件升级处理方法实施例的解释说明也适用于该实施例的固件升级处理装置,此处不再赘述。
本申请实施例的固件升级处理装置,通过第一获取模块从升级服务设备中获取携带硬件标识的升级固件;通过转换模块将所述升级固件转化为数组;通过升级模块在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性。
图5是本申请另一个实施例的固件升级处理装置的结构示意图,如图5所示,基于图4所示实施例,所述转换模块12,包括:
编译单元121,用于对所述升级固件进行编译以生成字符;
匹配单元122,用于根据预设的固件容量大小与单位数组的对应关系,将所述字符生成与当前升级固件容量大小匹配的数组。
进一步地,升级模块13,包括:
判断单元131,用于判断与所述硬件标识对应的硬件中是否存在第一寄存器;
第一发送单元132,用于若所述判断单元判断获知所述硬件中存在所述第一寄存器,则向所述第一寄存器发送升级使能指令;
第一写入单元133,用于当接收所述第一寄存器返回的升级模式准备信号时,将所述数组写入所述第一寄存器中;
第二写入单元134,用于以所述硬件中的固件升级地址为起始,将所述数组从所述第一寄存器写入所述硬件中;
第二发送单元135,用于向所述第一寄存器发送升级退出指令。
进一步地,所述升级模块13,还包括:
第三发送单元136,还用于若所述判断单元判断获知所述硬件中不存在所述第一寄存器,则向所述终端设备中的第二寄存器发送升级使能指令;
第三写入单元137,用于当接收所述第二寄存器返回的升级模式准备信号时,将所述数组写入所述第二寄存器中;
第四写入单元138,用于以所述硬件中的固件升级地址为起始,将所述数组从所述第二寄存器写入所述硬件中;
第四发送单元139,用于向所述第二寄存器发送升级退出指令。
需要说明的是,前述对固件升级处理方法实施例的解释说明也适用于该实施例的固件升级处理装置,此处不再赘述。
本申请实施例的固件升级处理装置,本申请实施例的固件升级处理装置,通过第一获取模块从升级服务设备中获取携带硬件标识的升级固件;通过转换模块将所述升级固件转化为数组;通过升级模块在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中;通过处理模块对所述硬件进行初始化操作。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性、有效性和灵活性。
图6是本申请另一个实施例的固件升级处理装置的结构示意图,如图6所示,基于上述实施例,以图4所示实施例为例,所述装置还包括:
进一步地,还包括:处理模块14,处理模块14,用于对所述硬件进行初始化操作,具体地:在一个实施例中,处理模块14包括:
第一控制单元141,用于对所述硬件进行下电操作;
第一初始化单元142,用于在预设的时间段之后对所述硬件重新上电进行初始化。
在另一个实施例中,处理模块14包括:
第二控制单元143,用于对所述终端设备执行重启操作;
第二初始化单元144,用于在所述终端设备的开机引导阶段,对所述硬件进行初始化。
备份模块15,用于在将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中之前,将所述硬件中的当前固件进行备份,以便在固件升级失败时进行恢复。
进一步地,还包括:
调整模块16,用于在将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中之前,降低数据总线传输宽度和时钟频率。
进一步地,还包括:
第一判断模块17,用于在将所述升级固件转化为数组之前,判断与所述硬件标识对应的硬件是否支持升级;
第二判断模块18,用于若所述第一判断模块判断获知支持升级,则判断所述硬件的当前固件标识是否为升级固件标识;
所述转换模块12,具体用于若所述第二判断模块判断获知所述当前固件标识不为所述升级固件标识,则将所述升级固件转化为数组。
进一步地,还包括:
第二获取模块19,用于在对所述硬件进行初始化操作之后,获取所述硬件的当前固件标识,
第三判断模块20,用于判断所述当前固件标识是否为升级固件标识;
反馈模块21,用于若判断获知所述当前固件标识为升级固件标识,则报告升级成功,若判断获知所述当前固件标识不为升级固件标识,报告升级失败。
需要说明的是,前述对固件升级处理方法实施例的解释说明也适用于该实施例的固件升级处理装置,此处不再赘述。
本申请实施例的固件升级处理装置,通过第一获取模块从升级服务设备中获取携带硬件标识的升级固件,当第二判断模块确定该硬件支持升级后将所述升级固件转化为数组,然后通过备份模块对当前固件版本进行备份,以及通过调整模块降低总线速率和时钟频率,进而通过升级模块在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中;然后通过处理模块对所述硬件进行初始化操作,并通过反馈模块检验是否升级成功。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性,进一步地保证了固件升级的可靠性和安全性。
为了实现上述实施例,本申请还提出一种固件升级处理系统。
图7是本申请一个实施例的固件升级处理系统的结构示意图。
如图7所示,该固件升级处理系统包括:升级服务设备1、终端设备2,所述终端设备2中包括至少一个硬件3,以及固件升级处理装置4。其中,升级服务设备1、终端设备2,以及硬件3可以为上述各实施例中涉及到的升级服务设备、终端设备,以及硬件,固件升级处理装置4可以为上述各实施例中提供的固件升级处理装置。
其中,所述升级服务设备1、所述固件升级处理装置4与所述终端设备2的部署可以根据实际应用需要进行选择,包括:
升级服务设备1、所述固件升级处理装置4与所述终端设备2集成部署;或者(未示出),
升级服务设备1、所述固件升级处理装置4与所述终端设备2各自独立部署(如图7所示);或者,
升级服务设备1与所述终端设备2独立部署,且所述固件升级处理装置4部署于所述终端设备2中(未示出)。
需要说明的是,升级服务设备包括:U盘、移动硬盘,以及应用服务器。
所述硬件包括:存储器、硬盘、基本输入输出系统,以及光驱。
所述终端设备包括:手机、个人计算机、数码相机,以及打印机。
需要说明的是,前述对固件升级处理方法实施例的解释说明也适用于该实施例的固件升级处理系统,此处不再赘述。
本申请实施例的固件升级处理系统,通过固件升级处理装置从升级服务设备中获取携带硬件标识的升级固件,将所述升级固件转化为数组,在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中,并对所述硬件进行初始化操作。由此,实现了在终端设备的开机引导阶段对其中硬件的固件升级,提高了固件升级的实用性和有效性。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个第一处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (17)

1.一种固件升级处理方法,其特征在于,包括以下步骤:
从升级服务设备中获取携带硬件标识的升级固件;
将所述升级固件转化为数组;
在终端设备的开机引导阶段,将所述数组写入所述终端设备里与所述硬件标识对应的硬件中;
其中,将所述数组写入所述终端设备里与所述硬件标识对应的硬件中包括:判断与所述硬件标识对应的硬件中是否存在第一寄存器;
其中,若判断获知所述硬件中不存在所述第一寄存器,则向所述终端设备中的第二寄存器发送升级使能指令;
当接收所述第二寄存器返回的升级模式准备信号时,将所述数组写入所述第二寄存器中;
以所述硬件中的固件升级地址为起始,将所述数组从所述第二寄存器写入所述硬件中;
向所述第二寄存器发送升级退出指令。
2.如权利要求1所述的固件升级处理方法,其特征在于,所述将所述升级固件转化为数组,包括:
对所述升级固件进行编译以生成字符;
根据预设的固件容量大小与单位数组的对应关系,将所述字符生成与当前升级固件容量大小匹配的数组。
3.如权利要求1所述的固件升级处理方法,其特征在于,在所述判断与所述硬件标识对应的硬件中是否存在第一寄存器之后,还包括:
若判断获知所述硬件中存在所述第一寄存器,则向所述第一寄存器发送升级使能指令;
当接收所述第一寄存器返回的升级模式准备信号时,将所述数组写入所述第一寄存器中;
以所述硬件中的固件升级地址为起始,将所述数组从所述第一寄存器写入所述硬件中;
向所述第一寄存器发送升级退出指令。
4.如权利要求1-3任一所述的固件升级处理方法,其特征在于,所述将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中之前,还包括:
将所述硬件中的当前固件进行备份,以便在固件升级失败时进行恢复。
5.如权利要求1-3任一所述的固件升级处理方法,其特征在于,所述将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中之前,还包括:
降低数据总线传输宽度和时钟频率。
6.如权利要求1-3任一所述的固件升级处理方法,其特征在于,所述将所述升级固件转化为数组之前,还包括:
判断与所述硬件标识对应的硬件是否支持升级;
若判断获知支持升级,则判断所述硬件的当前固件标识是否为升级固件标识;
若判断获知所述当前固件标识不为所述升级固件标识,则将所述升级固件转化为数组。
7.如权利要求1-3任一所述的固件升级处理方法,其特征在于,在所述写入所述终端设备里与所述硬件标识对应的硬件中之后,所述方法还包括:
对所述硬件进行初始化操作。
8.如权利要求7所述的固件升级处理方法,其特征在于,所述对所述硬件进行初始化操作,包括:
对所述硬件进行下电操作;
在预设的时间段之后对所述硬件重新上电进行初始化。
9.如权利要求7所述的固件升级处理方法,其特征在于,所述对所述硬件进行初始化操作,包括:
对所述终端设备执行重启操作;
在所述终端设备的开机引导阶段,对所述硬件进行初始化。
10.如权利要求7所述的固件升级处理方法,其特征在于,所述对所述硬件进行初始化操作之后,还包括:
获取所述硬件的当前固件标识,
判断所述当前固件标识是否为升级固件标识,若是,报告升级成功,否则,报告升级失败。
11.一种固件升级处理装置,其特征在于,包括:
第一获取模块,用于从升级服务设备中获取携带硬件标识的升级固件;
转换模块,用于将所述升级固件转化为数组;
升级模块,用于在终端设备的开机引导阶段,将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中;其中,所述升级模块包括:
判断单元,用于判断与所述硬件标识对应的硬件中是否存在第一寄存器;
其中,所述升级模块还包括:
第三发送单元,用于若所述判断单元判断获知所述硬件中不存在所述第一寄存器,则向所述终端设备中的第二寄存器发送升级使能指令;
第三写入单元,用于当接收所述第二寄存器返回的升级模式准备信号时,将所述数组写入所述第二寄存器中;
第四写入单元,用于以所述硬件中的固件升级地址为起始,将所述数组从所述第二寄存器写入所述硬件中;
第四发送单元,用于向所述第二寄存器发送升级退出指令。
12.如权利要求11所述的固件升级处理装置,其特征在于,所述转换模块,包括:
编译单元,用于对所述升级固件进行编译以生成字符;
匹配单元,用于根据预设的固件容量大小与单位数组的对应关系,将所述字符生成与当前升级固件容量大小匹配的数组。
13.如权利要求11所述的固件升级处理装置,其特征在于,所述升级模块,包括:
第一发送单元,用于若所述判断单元判断获知所述硬件中存在所述第一寄存器,则向所述第一寄存器发送升级使能指令;
第一写入单元,用于当接收所述第一寄存器返回的升级模式准备信号时,将所述数组写入所述第一寄存器中;
第二写入单元,用于以所述硬件中的固件升级地址为起始,将所述数组从所述第一寄存器写入所述硬件中;
第二发送单元,用于向所述第一寄存器发送升级退出指令。
14.如权利要求11-13任一所述的固件升级处理装置,其特征在于,还包括:
备份模块,用于在将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中之前,将所述硬件中的当前固件进行备份,以便在固件升级失败时进行恢复;
调整模块,用于在将所述数组写入所述终端设备里、与所述硬件标识对应的硬件中之前,降低数据总线传输宽度和时钟频率;
第一判断模块,用于在将所述升级固件转化为数组之前,判断与所述硬件标识对应的硬件是否支持升级;
第二判断模块,用于若所述第一判断模块判断获知支持升级,则判断所述硬件的当前固件标识是否为升级固件标识;
所述转换模块,具体用于若所述第二判断模块判断获知所述当前固件标识不为所述升级固件标识,则将所述升级固件转化为数组;
处理模块,用于对所述硬件进行初始化操作;
第二获取模块,用于在对所述硬件进行初始化操作之后,获取所述硬件的当前固件标识,
第三判断模块,用于判断所述当前固件标识是否为升级固件标识;
反馈模块,用于若判断获知所述当前固件标识为升级固件标识,则报告升级成功,若判断获知所述当前固件标识不为升级固件标识,报告升级失败。
15.如权利要求14所述的固件升级处理装置,其特征在于,所述处理模块,包括:
第一控制单元,用于对所述硬件进行下电操作;
第一初始化单元,用于在预设的时间段之后对所述硬件重新上电进行初始化,
或者,
所述处理模块,包括:
第二控制单元,用于对所述终端设备执行重启操作;
第二初始化单元,用于在所述终端设备的开机引导阶段,对所述硬件进行初始化。
16.一种固件升级处理系统,其特征在于,包括:升级服务设备、终端设备,所述终端设备中包括至少一个硬件,以及如权利要求11-15任一所述的固件升级处理装置。
17.如权利要求16所述的固件升级处理系统,其特征在于,
所述升级服务设备、所述固件升级处理装置与所述终端设备集成部署;或者,所述升级服务设备、所述固件升级处理装置与所述终端设备各自独立部署;或者,
所述升级服务设备与所述终端设备独立部署,且所述固件升级处理装置部署于所述终端设备中。
CN201510608502.7A 2015-09-22 2015-09-22 固件升级处理方法、装置和系统 Active CN105159727B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710848477.9A CN108334372B (zh) 2015-09-22 2015-09-22 固件升级处理方法、装置和系统
CN201510608502.7A CN105159727B (zh) 2015-09-22 2015-09-22 固件升级处理方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510608502.7A CN105159727B (zh) 2015-09-22 2015-09-22 固件升级处理方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710848477.9A Division CN108334372B (zh) 2015-09-22 2015-09-22 固件升级处理方法、装置和系统

Publications (2)

Publication Number Publication Date
CN105159727A CN105159727A (zh) 2015-12-16
CN105159727B true CN105159727B (zh) 2017-10-17

Family

ID=54800591

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710848477.9A Active CN108334372B (zh) 2015-09-22 2015-09-22 固件升级处理方法、装置和系统
CN201510608502.7A Active CN105159727B (zh) 2015-09-22 2015-09-22 固件升级处理方法、装置和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710848477.9A Active CN108334372B (zh) 2015-09-22 2015-09-22 固件升级处理方法、装置和系统

Country Status (1)

Country Link
CN (2) CN108334372B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170446B (zh) * 2016-12-07 2023-06-20 北京忆恒创源科技股份有限公司 固件确认命令处理方法及系统
CN107332589B (zh) * 2017-08-07 2023-02-03 深圳市升熙科技有限公司 一种基于蓝牙的固件升级装置
CN108446133A (zh) * 2018-03-29 2018-08-24 广东美的暖通设备有限公司 固件升级控制方法、固件升级控制系统及电器
CN110855462A (zh) * 2018-08-21 2020-02-28 深圳瑞利声学技术股份有限公司 一种蓝牙ota固件升级装置
CN109117168A (zh) * 2018-08-29 2019-01-01 拓攻(南京)机器人有限公司 无人机固件更新方法、装置、无人机及存储介质
CN109471641B (zh) * 2018-11-12 2022-05-03 中通客车股份有限公司 新能源客车多控制器程序自动批量刷写系统及方法
CN112214341B (zh) * 2020-09-11 2023-01-10 苏州浪潮智能科技有限公司 一种基于硬盘升级传输失败的处理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118198A (zh) * 2013-02-05 2013-05-22 惠州Tcl移动通信有限公司 移动终端的固件升级方法及系统
CN104202471A (zh) * 2014-08-22 2014-12-10 惠州Tcl移动通信有限公司 基于移动终端的固件升级处理方法、系统及移动终端

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1752933A (zh) * 2005-11-08 2006-03-29 北京中星微电子有限公司 一种支持固件在线升级的芯片系统及其在线升级方法
US9146726B2 (en) * 2010-12-16 2015-09-29 Netapp, Inc. System and method for firmware update for network connected storage subsystem components
CN102855151B (zh) * 2012-08-21 2016-06-08 武汉电信器件有限公司 不打断业务的光模块固件在应用升级方法
US8898654B2 (en) * 2012-08-29 2014-11-25 Microsoft Corporation Secure firmware updates
KR20140066535A (ko) * 2012-11-23 2014-06-02 삼성전자주식회사 전자 장치, 펌웨어 업데이트 방법 및 컴퓨터 판독가능 기록매체
US20140181799A1 (en) * 2012-12-21 2014-06-26 Emerson Network Power - Embedded Computing, Inc. Boot Bank Selection, Bios, Upgrades and Crisis Recovery In Intel Based Platforms
EP3063620B1 (en) * 2013-10-31 2019-12-11 Intel Corporation Selective power management for pre-boot firmware updates
US9256442B2 (en) * 2014-03-03 2016-02-09 International Business Machines Corporation Network updatable user trusted device
CN104573499B (zh) * 2014-09-10 2019-01-15 中电科技(北京)有限公司 一种基于uefi的可执行程序文件保护系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118198A (zh) * 2013-02-05 2013-05-22 惠州Tcl移动通信有限公司 移动终端的固件升级方法及系统
CN104202471A (zh) * 2014-08-22 2014-12-10 惠州Tcl移动通信有限公司 基于移动终端的固件升级处理方法、系统及移动终端

Also Published As

Publication number Publication date
CN105159727A (zh) 2015-12-16
CN108334372A (zh) 2018-07-27
CN108334372B (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
CN105159727B (zh) 固件升级处理方法、装置和系统
CN102200923B (zh) 从mmc/sd设备引导主机设备的方法及相关设备
CN105094927B (zh) 一种设备固件升级方法和装置
CN105183517A (zh) 在recovery模式下挂载外部存储设备的方法、装置及电子装置
CN101196819B (zh) 一种片上系统芯片自适应启动设备的方法
CN110442487A (zh) 一种智能卡通讯协议测试方法、装置、系统及可读介质
CN106484464A (zh) 调谐器芯片驱动方法和电子设备
CN105068834A (zh) 系统升级方法及装置
CN106101984A (zh) 一种nfc移动支付终端的安全模块管理方法及终端
CN110109716A (zh) 保证ssd固件稳定加载的方法、装置、计算机设备及存储介质
CN112732310A (zh) 基于嵌入式引导分区固件升级方法、系统、设备及介质
CN110209420A (zh) 一种更新引导加载程序的方法及装置
CN102880478B (zh) 软件更新方法
CN106569863A (zh) 基于资源和代码模块化的安卓app资源更新和修复的方法
CN115547395A (zh) 测试方法、系统及闪存设备
CN108984200A (zh) 一种定时更新固件的方法及装置
CN103455750B (zh) 一种嵌入式设备的高安验证方法及装置
CN110286852A (zh) 双控构架分布式存储系统、数据读取方法、装置和存储介质
US7725806B2 (en) Method and infrastructure for recognition of the resources of a defective hardware unit
CN111383704B (zh) 一种存储器内建自测试电路和对存储器的测试方法
CN105867938A (zh) 指纹模组的识别方法及装置
US7631127B2 (en) Methods and systems for varying bus frequencies
CN113672260B (zh) 一种处理器cpu初始化方法
CN110347444A (zh) 一种ssd多状态切换的启动方法及其系统
CN105912431A (zh) 服务器reboot测试方法、服务器、控制器和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., Ltd.

Address before: Changan town in Guangdong province Dongguan 523859 usha Beach Road No. 18

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., Ltd.