CN110908701A - 固件版本切换方法、装置、存储介质及电子设备 - Google Patents
固件版本切换方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN110908701A CN110908701A CN201811076646.2A CN201811076646A CN110908701A CN 110908701 A CN110908701 A CN 110908701A CN 201811076646 A CN201811076646 A CN 201811076646A CN 110908701 A CN110908701 A CN 110908701A
- Authority
- CN
- China
- Prior art keywords
- target
- firmware
- file
- nvram
- information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000001514 detection method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 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/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
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)
Abstract
本公开涉及一种固件版本切换方法、装置、存储介质及电子设备,用以解决现有电子设备进行固件切换时可能发生工作异常的技术问题。上述固件版本切换方法应用于电子设备,所述电子设备存储至少两个固件版本的信息,该方法包括:通过检查电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件;根据配置项文件将待切换的目标固件以及目标固件的目标NVRAM文件从文件系统读取到内存中;判断目标固件以及目标NVRAM文件是否匹配;若目标固件以及目标NVRAM文件匹配,则加载目标固件以及目标NVRAM文件,以将当前固件切换为目标固件。
Description
技术领域
本公开涉及固件管理技术领域,具体地,涉及一种固件版本切换方法、装置、存储介质及电子设备。
背景技术
固件(Firmware)是保存于设备内部的程序,如保存在EROM(可擦写只读存储器)或EEPROM(电可擦可编程只读存储器)中,决定着硬件设备的功能及性能。随着通信技术的发展,电子设备在定制需求方面呈现多样化的趋势,因而产生了多种软件配置以及功能上具有差异化的固件版本,用户可以根据需要在固件版本之间进行切换使用。相应地,操作系统需要加载与固件版本匹配的NVRAM(Nonvolatile Random Access Memory,非易失性随机访问存储器)文件,该NVRAM文件保存了电子设备(例如手机)的IMEI、校准参数、网络配置等信息。然而现有电子设备进行固件切换时,可能会因固件版本与NVRAM文件不匹配导致电子设备工作异常。
发明内容
本公开的目的是提供一种固件版本切换方法、装置、存储介质及电子设备,用以解决现有电子设备进行固件切换时可能发生工作异常的技术问题。
为了实现上述目的,本公开第一方面提供一种固件版本切换方法,应用于电子设备,所述电子设备存储至少两个固件版本的信息,所述方法包括:
通过检查所述电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件;
根据所述配置项文件将待切换的目标固件以及所述目标固件的目标NVRAM文件从文件系统读取到内存中;
判断所述目标固件以及所述目标NVRAM文件是否匹配;
若所述目标固件以及所述目标NVRAM文件匹配,则加载所述目标固件以及所述目标NVRAM文件,以将当前固件切换为所述目标固件。
可选地,所述配置项文件包括所述目标固件和所述目标NVRAM文件的配置,所述根据所述配置项文件将待切换的目标固件以及所述目标固件的目标NVRAM文件从文件系统读取到内存中,包括:
通过所述配置项文件确定所述目标固件的第一读取路径以及所述目标NVRAM文件的第二读取路径;
按照所述第一读取路径以及所述第二读取路径从文件系统中分别读取所述目标固件以及所述目标NVRAM文件。
可选地,所述通过检查所述电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件,包括:
在所述电子设备首次开机时,通过检查所述电子设备当前的硬件使用环境确定待切换的配置项文件;
在所述电子设备运行过程中,根据用户动态切换配置项的信息确定待切换的配置项文件。
可选地,所述电子设备包括检测模块以及动态切换模块,所述方法还包括:
在所述电子设备首次开机时,通过所述检测模块自动检查所述电子设备当前的硬件使用环境,并在所述电子设备运动过程中,通过所述检测模块实时监测用户是否下发固件切换指令;
并且,在执行固件切换时,通过所述动态切换模块在无需重启所述电子设备的情况下动态的加载目标固件与目标NVRAM文件。
可选地,所述目标NVRAM文件包括所述目标NVRAM文件的标识信息,以及加载所述目标NVRAM文件所需的存储空间大小信息,所述目标固件包括至少一个引导信息,所述引导信息包括与所述目标固件匹配的NVRAM文件的标识信息以及存储空间大小信息;
所述判断所述目标固件以及所述目标NVRAM文件是否匹配,包括:
判断所述目标固件中的所有引导信息中,是否存在标识信息与所述目标NVRAM文件的标识信息一致且存储空间大小信息与所述目标NVRAM文件的存储空间大小信息一致的目标引导信息;
其中,若所述目标固件中的所有引导信息中存在所述目标引导信息,则确定所述目标固件以及所述目标NVRAM文件匹配。
可选地,所述目标固件包括引导信息,所述引导信息包括所述目标固件的第一加载地址以及所述目标NVRAM文件的第二加载地址;
所述若所述目标固件以及所述目标NVRAM文件匹配,则加载所述目标固件以及所述目标NVRAM文件,包括:
将所述目标固件去除所述引导信息后加载到所述第一加载地址,以及将所述目标NVRAM文件加载到所述第二加载地址。
可选地,所述方法还包括:
若所述目标固件以及所述目标NVRAM文件不匹配,则不执行固件版本切换,或者,不执行固件版本切换且向所述电子设备发送提示指令,所述提示指令用于提示固件版本切换失败。
本公开第二方面提供一种固件版本切换装置,应用于电子设备,所述电子设备存储至少两个固件版本的信息,所述装置包括:
确定模块,用于通过检查所述电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件;
读取模块,用于根据所述配置项文件将待切换的目标固件以及所述目标固件的目标NVRAM文件从文件系统读取到内存中;
判断模块,用于判断所述目标固件以及所述目标NVRAM文件是否匹配;
加载模块,用于在所述目标固件以及所述目标NVRAM文件匹配时,加载所述目标固件以及所述目标NVRAM文件,以将当前固件切换为所述目标固件。
可选地,所述配置项文件包括所述目标固件和所述目标NVRAM文件的配置,所述读取模块包括:
确定子模块,用于通过所述配置项文件确定所述目标固件的第一读取路径以及所述目标NVRAM文件的第二读取路径;
读取子模块,用于按照所述第一读取路径以及所述第二读取路径从文件系统中分别读取所述目标固件以及所述目标NVRAM文件。
可选地,所述确定模块用于:
在所述电子设备首次开机时,通过检查所述电子设备当前的硬件使用环境确定待切换的配置项文件;
在所述电子设备运行过程中,根据用户动态切换配置项的信息确定待切换的配置项文件。
可选地,所述电子设备包括检测模块以及动态切换模块,在所述电子设备首次开机时,通过所述检测模块自动检查所述电子设备当前的硬件使用环境,并在所述电子设备运动过程中,通过所述检测模块实时监测用户是否下发固件切换指令;
并且,在执行固件切换时,通过所述动态切换模块在无需重启所述电子设备的情况下动态的加载目标固件与目标NVRAM文件。
可选地,所述目标NVRAM文件包括所述目标NVRAM文件的标识信息,以及加载所述目标NVRAM文件所需的存储空间大小信息,所述目标固件包括至少一个引导信息,所述引导信息包括与所述目标固件匹配的NVRAM文件的标识信息以及存储空间大小信息;
所述判断模块用于判断所述目标固件中的所有引导信息中,是否存在标识信息与所述目标NVRAM文件的标识信息一致且存储空间大小信息与所述目标NVRAM文件的存储空间大小信息一致的目标引导信息;
其中,若所述目标固件中的所有引导信息中存在所述目标引导信息,则确定所述目标固件以及所述目标NVRAM文件匹配。
可选地,所述目标固件包括引导信息,所述引导信息包括所述目标固件的第一加载地址以及所述目标NVRAM文件的第二加载地址;
所述加载模块用于在所述目标固件以及所述目标NVRAM文件匹配时,将所述目标固件去除所述引导信息后加载到所述第一加载地址,以及将所述目标NVRAM文件加载到所述第二加载地址。
可选地,在所述目标固件以及所述目标NVRAM文件不匹配时,则不执行固件版本切换;或者,
所述装置还包括提示模块,用于在所述目标固件以及所述目标NVRAM文件不匹配时,不执行固件版本切换且向所述电子设备发送提示指令,所述提示指令用于提示固件版本切换失败。
本公开第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面提供的固件版本切换方法的步骤。
本公开第四方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面提供的固件版本切换方法的步骤。
通过上述技术方案,在进行固件版本切换之前,通过检查电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件,根据该配置项文件将待切换的目标固件以及目标固件的目标NVRAM文件从文件系统读取到内存中,并判断待切换的目标固件与目标NVRAM文件是否匹配,在确定上述目标固件与目标NVRAM文件匹配的情况下,加载该目标固件以及目标NVRAM文件,以完成固件的切换过程。这样,在确定固件与NVRAM文件匹配的情况下再执行固件切换操作,可以避免切换到的固件与NVRAM不匹配,保证切换固件版本后电子设备能够正常工作,提升了电子设备工作的灵活性与稳定性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开实施例提供的一种应用场景的示意图;
图2是本公开实施例提供的一种固件版本切换方法的流程图;
图3是本公开实施例提供的另一种固件版本切换方法的流程图;
图4是本公开实施例提供的一种固件版本切换装置的框图;
图5是本公开实施例提供的一种固件版本切换装置的读取模块的框图;
图6是本公开实施例提供的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
首先对本公开所涉及应用场景进行介绍,如图1所示,本公开各个实施例所涉及的实施环境可以包括电子设备100,该电子设备100可以是手机,还可以是平板电脑、台式电脑、以及PDA(Personal Digital Assistant,个人数字助理)等其它设备。图1中以电子设备100是手机来示意,手机的文件系统中存储至少两个固件版本以及至少两个不同的NVRAM文件,手机的移动通信处理模块具有差异化配置的能力,可以根据用户或者开发者的配置需求进行固件版本的切换。
为了解决现有电子设备进行固件切换时可能发生工作异常的技术问题,本公开实施例提供一种固件版本切换方法、装置、存储介质及电子设备,下面结合具体实施例对本公开提供的技术方案进行详细说明。
图2是本公开实施例提供的一种固件版本切换方法的流程图,该方法可以应用于如图1所示的电子设备100,如图2所示,该方法包括以下步骤:
S21、通过检查电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件。
具体地,在电子设备发生用于切换固件版本的触发事件时,通过检查电子设备当前的硬件使用环境确定待切换的配置项文件,或者在电子设备运行过程中,根据用户动态切换配置项的信息,确定待切换的配置项文件,该配置项文件内容包括固件版本信息以及NVRAM文件版本信息。示例地,在电子设备首次开机时,通过检查电子设备当前的硬件使用环境确定待切换的配置项文件,判断文件系统中是否存在符合电子设备当前硬件环境的配置项文件,若存在,则根据配置项文件确定目标固件版本信息以及目标NVRAM文件版本信息。其中,用于切换固件版本的触发事件包括检测到用户在电子设备上点击固件切换按键,或者检测到电子设备当前硬件环境发生变化,或者检测到电子设备进入特殊工作模式,例如特殊工作模式可以是工厂生产测试模式或AMT校准模式等。
S22、根据配置项文件将待切换的目标固件以及目标固件的目标NVRAM文件从文件系统读取到内存中。
其中,配置项文件为执行固件版本切换程序时所需的文件的各类配置参数、版本等信息的集合,该配置项文件可在开发过程中由开发者创建或者由电子设备的软件系统自动生成。示例地,不同版本的固件以及具有差异化的NVRAM文件,可以通过文件名和/或路径不同的形式加以区分,以上定义的文件名与路径作为相应文件的属性信息保存在配置项文件中。在确定待切换的固件版本信息以及NVRAM文件版本信息后,根据配置项文件可以获得待切换固件及NVRAM文件的名称和/或路径信息,然后根据上述信息到文件系统中查找目标文件,并分别读取固件版本信息对应的目标固件以及NVRAM文件版本信息对应的目标NVRAM文件。
S23、判断目标固件以及目标NVRAM文件是否匹配。
在电子设备进行固件版本切换的过程中,若加载的NVRAM文件与固件版本不匹配,则可能发生不可预期的结果,例如电子设备的基带处理器启动失败或整机无法工作。在步骤S23中,判断目标固件以及目标NVRAM文件是否匹配,并在两者匹配的情况下,执行步骤S24进行固件版本的切换,以保证电子设备的正常工作。
S24、若目标固件以及目标NVRAM文件匹配,则加载目标固件以及目标NVRAM文件,以将当前固件切换为目标固件。
采用上述方法,在进行固件版本切换之前,先通过检查电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件,然后根据配置项文件将待切换的目标固件以及目标固件的目标NVRAM文件从文件系统读取到内存中,并判断待切换的目标固件与目标NVRAM文件是否匹配,在确定上述目标固件与目标NVRAM文件匹配的情况下,加载该目标固件以及目标NVRAM文件,以完成固件的切换过程。这样,在确定固件与NVRAM文件匹配的情况下再执行固件切换操作,可以避免切换到的固件与NVRAM不匹配,保证切换固件版本后电子设备能够正常工作,提升了电子设备工作的灵活性与稳定性。
图3是本公开实施例提供的另一种固件版本切换方法的流程图,如图3所示,该方法包括以下步骤:
S31、通过检查电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件。
S32、通过配置项文件确定目标固件的第一读取路径以及目标NVRAM文件的第二读取路径。
配置项文件包括目标固件和目标NVRAM文件的配置,在确定待切换的配置项文件之后,基于不同版本的固件以及具有差异化的NVRAM文件可以通过文件名和/或路径不同的形式加以区分这一条件,通过配置项文件即可确定目标固件的第一读取路径以及目标NVRAM文件的第二读取路径。示例地,固件的配置项文件中存储了多个固件的配置信息,包括固件的版本、路径、文件大小等属性,例如目标固件版本信息为“固件V1.0”,该目标固件的相关配置信息为“V1.0、根目录/、64K”,则可确定目标固件的第一读取路径为“根目录/”;示例地,NVRAM文件的配置项文件中存储了多个NVRAM文件的配置信息,包括NVRAM文件的版本、路径、存储空间大小等属性,例如目标NVRAM文件版本信息为“NVRAM文件A.B.1”,该目标NVRAM文件的相关配置信息为“A.B.1、根目录/etc/、64K”,则可确定目标NVRAM文件的第二读取路径为“根目录/etc/”。
S33、按照第一读取路径以及第二读取路径从文件系统中分别读取目标固件以及目标NVRAM文件。
根据获取到的目标固件的第一读取路径以及目标NVRAM的第二读取路径,将目标固件以及目标NVRAM文件读取到内存中。
S34、判断目标固件以及目标NVRAM文件是否匹配。
在本公开实施例中,读取到的目标NVRAM文件包括目标NVRAM文件的标识信息,以及加载目标NVRAM文件所需的存储空间大小信息,目标固件包括引导信息,该引导信息包括与目标固件匹配的NVRAM文件的标识信息以及存储空间大小信息。例如,目标固件的引导信息包括与之匹配的NVRAM文件的版本号,以及加载该NVRAM文件所需的存储空间大小信息,目标NVRAM文件包括该目标NVRAM文件的版本号,以及加载目标NVRAM文件所需的存储空间大小信息。
值得说明的是,当目标固件存在多个与该目标固件匹配的NVRAM文件时,目标固件可以包括多个引导信息。例如,引导信息中与目标固件匹配的NVRAM文件的版本号可以是A.B.x,其中x为任意数,对应多个NVRAM文件,可以根据配置项文件从文件系统中读取多个版本号为A.B.x系列的NVRAM文件,但每次只能加载其中一个NVRAM文件。
在上述情况下,判断目标固件中的所有引导信息中,是否存在标识信息与目标NVRAM文件的标识信息一致且存储空间大小信息与目标NVRAM文件的存储空间大小信息一致的目标引导信息,若目标固件中的所有引导信息中存在目标引导信息,则确定目标固件与目标NVRAM文件匹配,接下来执行步骤S35。
S35、加载目标固件以及目标NVRAM文件,以将当前固件切换为目标固件。
在一种可能的实施方式中,目标固件包括引导信息,该引导信息包括目标固件的第一加载地址以及目标NVRAM文件的第二加载地址,在确定目标固件以及目标NVRAM文件匹配时,可以按照目标固件的引导信息中的加载地址将目标固件去除引导信息后加载到第一加载地址,以及将目标NVRAM文件加载到第二加载地址,以将当前固件切换为目标固件。
在目标固件以及目标NVRAM文件不匹配时,则执行步骤S36:
S36、不执行固件版本切换,或者,不执行固件版本切换且向电子设备发送提示指令,该提示指令用于提示固件版本切换失败。
示例地,该提示指令用于指示电子设备以弹窗的形式在屏幕上显示固件版本切换失败信息,以提示用户或者开发人员固件版本切换失败。
可选地,电子设备包括检测模块以及动态切换模块,在电子设备首次开机时,通过检测模块自动检查电子设备当前的硬件使用环境,并在电子设备运动过程中,通过检测模块实时监测用户是否下发固件切换指令,若接收到固件切换指令,在执行固件切换时,通过动态切换模块在无需重启电子设备的情况下即可实现动态加载目标固件与目标NVRAM文件,使固件版本切换过程简单高效。
采用上述方法,在目标固件增加引导信息,通过多重条件判断目标固件与目标NVRAM文件是否匹配,并在确定固件与NVRAM文件匹配的情况下加载目标固件与目标NVRAM文件,以完成切换固件版本的操作。这样,可以避免切换到的固件与NVRAM储存空间大小不匹配,或者因加载地址错误而造成电子设备工作异常,保证切换固件版本后电子设备能够正常工作,提升了电子设备工作的灵活性与稳定性。
图4是本公开实施例提供的一种固件版本切换装置的框图,应用于电子设备,该电子设备存储至少两个固件版本的信息,装置400可以通过软件、硬件或者两者结合实现成为电子设备的部分或者全部。如图4所示,该装置400包括:
确定模块41,用于通过检查电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件;读取模块42,用于根据配置项文件将待切换的目标固件以及目标固件的目标NVRAM文件从文件系统读取到内存中;判断模块43,用于判断目标固件以及目标NVRAM文件是否匹配;加载模块44,用于在目标固件以及目标NVRAM文件匹配时,加载目标固件以及目标NVRAM文件,以将当前固件切换为目标固件。
采用上述装置,在进行固件版本切换之前,先通过检查电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件,然后根据配置项文件将待切换的目标固件以及目标固件的目标NVRAM文件从文件系统读取到内存中,并判断待切换的目标固件与目标NVRAM文件是否匹配,在确定上述目标固件与目标NVRAM文件匹配的情况下,加载该目标固件以及目标NVRAM文件,以完成固件的切换过程。这样,在确定固件与NVRAM文件匹配的情况下再执行固件切换操作,可以避免切换到的固件与NVRAM不匹配,保证切换固件版本后电子设备能够正常工作,提升了电子设备工作的灵活性与稳定性。
图5是本公开实施例提供的一种固件版本切换装置的读取模块的框图,如图5所示,读取模块42包括:
确定子模块421,用于通过配置项文件确定目标固件的第一读取路径以及目标NVRAM文件的第二读取路径;读取子模块422,用于按照第一读取路径以及第二读取路径从文件系统中分别读取目标固件以及目标NVRAM文件。
可选地,确定模块用于,在电子设备首次开机时,通过检查电子设备当前的硬件使用环境确定待切换的配置项文件;在电子设备运行过程中,根据用户动态切换配置项的信息确定待切换的配置项文件。
可选地,电子设备包括检测模块以及动态切换模块,在电子设备首次开机时,通过检测模块自动检查电子设备当前的硬件使用环境,并在电子设备运动过程中,通过检测模块实时监测用户是否下发固件切换指令;并且,在执行固件切换时,通过动态切换模块在无需重启电子设备的情况下动态的加载目标固件与目标NVRAM文件。
可选地,目标NVRAM文件包括目标NVRAM文件的标识信息,以及加载目标NVRAM文件所需的存储空间大小信息,目标固件包括至少一个引导信息,引导信息包括与目标固件匹配的NVRAM文件的标识信息以及存储空间大小信息。判断模块43用于判断目标固件中的所有引导信息中,是否存在标识信息与目标NVRAM文件的标识信息一致且存储空间大小信息与目标NVRAM文件的存储空间大小信息一致的目标引导信息。其中,若目标固件中的所有引导信息中存在目标引导信息,则确定目标固件以及目标NVRAM文件匹配。
可选地,目标固件包括引导信息,引导信息包括目标固件的第一加载地址以及目标NVRAM文件的第二加载地址。加载模块44用于在目标固件以及目标NVRAM文件匹配时,将目标固件去除引导信息后加载到第一加载地址,以及将目标NVRAM文件加载到第二加载地址。
可选地,在目标固件以及目标NVRAM文件不匹配时,则不执行固件版本切换;或者,装置400还包括提示模块,用于在目标固件以及目标NVRAM文件不匹配时,不执行固件版本切换且向电子设备发送提示指令,提示指令用于提示固件版本切换失败。
采用上述装置,在目标固件增加引导信息,通过多重条件判断目标固件与目标NVRAM文件是否匹配,并在确定固件与NVRAM文件匹配的情况下加载目标固件与目标NVRAM文件,以完成切换固件版本的操作。这样,可以避免切换到的固件与NVRAM储存空间大小不匹配,或者因加载地址错误而造成电子设备工作异常,保证切换固件版本后电子设备能够正常工作,提升了电子设备工作的灵活性与稳定性。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种电子设备600的框图。如图6所示,该电子设备600可以包括:处理器601,存储器602。该电子设备600还可以包括多媒体组件603,输入/输出(I/O)接口604,以及通信组件605中的一者或多者。
其中,处理器601用于控制固件版本切换装置400的整体操作,以完成上述的固件版本切换方法中的全部或部分步骤。存储器602用于存储各种类型的数据以支持在固件版本切换装置400的操作,这些数据例如可以包括用于在固件版本切换装置400上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如存储的数据可以包括多个固件版本信息、NVRAM文件版本信息、配置项文件等等。该存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random AccessMemory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable ProgrammableRead-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,用于供用户触控点击固件切换按键、显示固件版本列表以及固件版本切换失败信息,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或通过通信组件605发送,音频组件还包括至少一个扬声器,用于在目标固件与目标NVRAM文件不匹配时输出音频信号以提示用户或者开发人员固件版本切换失败。I/O接口604为处理器601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件605用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件605可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的固件版本切换方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的固件版本切换方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器602,上述程序指令可由电子设备600的处理器601执行以完成上述的固件版本切换方法。
值得说明的是,本公开的说明书和权利要求书以及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必理解为特定的顺序或先后次序。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (16)
1.一种固件版本切换方法,应用于电子设备,所述电子设备存储至少两个固件版本的信息,其特征在于,所述方法包括:
通过检查所述电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件;
根据所述配置项文件将待切换的目标固件以及所述目标固件的目标NVRAM文件从文件系统读取到内存中;
判断所述目标固件以及所述目标NVRAM文件是否匹配;
若所述目标固件以及所述目标NVRAM文件匹配,则加载所述目标固件以及所述目标NVRAM文件,以将当前固件切换为所述目标固件。
2.根据权利要求1所述的方法,其特征在于,所述配置项文件包括所述目标固件和所述目标NVRAM文件的配置,所述根据所述配置项文件将待切换的目标固件以及所述目标固件的目标NVRAM文件从文件系统读取到内存中,包括:
通过所述配置项文件确定所述目标固件的第一读取路径以及所述目标NVRAM文件的第二读取路径;
按照所述第一读取路径以及所述第二读取路径从文件系统中分别读取所述目标固件以及所述目标NVRAM文件。
3.根据权利要求1所述的方法,其特征在于,所述通过检查所述电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件,包括:
在所述电子设备首次开机时,通过检查所述电子设备当前的硬件使用环境确定待切换的配置项文件;
在所述电子设备运行过程中,根据用户动态切换配置项的信息确定待切换的配置项文件。
4.根据权利要求1所述的方法,其特征在于,所述电子设备包括检测模块以及动态切换模块,所述方法还包括:
在所述电子设备首次开机时,通过所述检测模块自动检查所述电子设备当前的硬件使用环境,并在所述电子设备运动过程中,通过所述检测模块实时监测用户是否下发固件切换指令;
并且,在执行固件切换时,通过所述动态切换模块在无需重启所述电子设备的情况下动态的加载目标固件与目标NVRAM文件。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述目标NVRAM文件包括所述目标NVRAM文件的标识信息,以及加载所述目标NVRAM文件所需的存储空间大小信息,所述目标固件包括至少一个引导信息,所述引导信息包括与所述目标固件匹配的NVRAM文件的标识信息以及存储空间大小信息;
所述判断所述目标固件以及所述目标NVRAM文件是否匹配,包括:
判断所述目标固件中的所有引导信息中,是否存在标识信息与所述目标NVRAM文件的标识信息一致且存储空间大小信息与所述目标NVRAM文件的存储空间大小信息一致的目标引导信息;
其中,若所述目标固件中的所有引导信息中存在所述目标引导信息,则确定所述目标固件以及所述目标NVRAM文件匹配。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述目标固件包括引导信息,所述引导信息包括所述目标固件的第一加载地址以及所述目标NVRAM文件的第二加载地址;
所述若所述目标固件以及所述目标NVRAM文件匹配,则加载所述目标固件以及所述目标NVRAM文件,包括:
将所述目标固件去除所述引导信息后加载到所述第一加载地址,以及将所述目标NVRAM文件加载到所述第二加载地址。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标固件以及所述目标NVRAM文件不匹配,则不执行固件版本切换,或者,不执行固件版本切换且向所述电子设备发送提示指令,所述提示指令用于提示固件版本切换失败。
8.一种固件版本切换装置,应用于电子设备,所述电子设备存储至少两个固件版本的信息,其特征在于,所述装置包括:
确定模块,用于通过检查所述电子设备当前的硬件使用环境,或者根据用户动态切换配置项的信息,确定待切换的配置项文件;
读取模块,用于根据所述配置项文件将待切换的目标固件以及所述目标固件的目标NVRAM文件从文件系统读取到内存中;
判断模块,用于判断所述目标固件以及所述目标NVRAM文件是否匹配;
加载模块,用于在所述目标固件以及所述目标NVRAM文件匹配时,加载所述目标固件以及所述目标NVRAM文件,以将当前固件切换为所述目标固件。
9.根据权利要求8所述的装置,其特征在于,所述配置项文件包括所述目标固件和所述目标NVRAM文件的配置,所述读取模块包括:
确定子模块,用于通过所述配置项文件确定所述目标固件的第一读取路径以及所述目标NVRAM文件的第二读取路径;
读取子模块,用于按照所述第一读取路径以及所述第二读取路径从文件系统中分别读取所述目标固件以及所述目标NVRAM文件。
10.根据权利要求8所述的装置,其特征在于,所述确定模块用于:
在所述电子设备首次开机时,通过检查所述电子设备当前的硬件使用环境确定待切换的配置项文件;
在所述电子设备运行过程中,根据用户动态切换配置项的信息确定待切换的配置项文件。
11.根据权利要求8所述的装置,其特征在于,所述电子设备包括检测模块以及动态切换模块,在所述电子设备首次开机时,通过所述检测模块自动检查所述电子设备当前的硬件使用环境,并在所述电子设备运动过程中,通过所述检测模块实时监测用户是否下发固件切换指令;
并且,在执行固件切换时,通过所述动态切换模块在无需重启所述电子设备的情况下动态的加载目标固件与目标NVRAM文件。
12.根据权利要求8至11中任一项所述的装置,其特征在于,所述目标NVRAM文件包括所述目标NVRAM文件的标识信息,以及加载所述目标NVRAM文件所需的存储空间大小信息,所述目标固件包括至少一个引导信息,所述引导信息包括与所述目标固件匹配的NVRAM文件的标识信息以及存储空间大小信息;
所述判断模块用于判断所述目标固件中的所有引导信息中,是否存在标识信息与所述目标NVRAM文件的标识信息一致且存储空间大小信息与所述目标NVRAM文件的存储空间大小信息一致的目标引导信息;
其中,若所述目标固件中的所有引导信息中存在所述目标引导信息,则确定所述目标固件以及所述目标NVRAM文件匹配。
13.根据权利要求8至11中任一项所述的装置,其特征在于,所述目标固件包括引导信息,所述引导信息包括所述目标固件的第一加载地址以及所述目标NVRAM文件的第二加载地址;
所述加载模块用于在所述目标固件以及所述目标NVRAM文件匹配时,将所述目标固件去除所述引导信息后加载到所述第一加载地址,以及将所述目标NVRAM文件加载到所述第二加载地址。
14.根据权利要求8所述的装置,其特征在于,在所述目标固件以及所述目标NVRAM文件不匹配时,则不执行固件版本切换;或者,
所述装置还包括提示模块,用于在所述目标固件以及所述目标NVRAM文件不匹配时,不执行固件版本切换且向所述电子设备发送提示指令,所述提示指令用于提示固件版本切换失败。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
16.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811076646.2A CN110908701B (zh) | 2018-09-14 | 2018-09-14 | 固件版本切换方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811076646.2A CN110908701B (zh) | 2018-09-14 | 2018-09-14 | 固件版本切换方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908701A true CN110908701A (zh) | 2020-03-24 |
CN110908701B CN110908701B (zh) | 2024-01-30 |
Family
ID=69812427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811076646.2A Active CN110908701B (zh) | 2018-09-14 | 2018-09-14 | 固件版本切换方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908701B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986288A (zh) * | 2021-10-25 | 2022-01-28 | 康佳集团股份有限公司 | 一种固件切换方法、装置、通信模组、终端及存储介质 |
CN114422356A (zh) * | 2022-01-19 | 2022-04-29 | 中国电子科技集团公司第五十四研究所 | 一种天通模块固件切换的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212695A1 (en) * | 2005-03-17 | 2006-09-21 | Fujitsu Limited | Remote boot method and mechanism, and computer-readable storage medium |
CN103685391A (zh) * | 2012-09-13 | 2014-03-26 | 北京大唐高鸿软件技术有限公司 | 一种使用静态网络地址的终端设备的自动升级方法 |
CN104683594A (zh) * | 2015-03-16 | 2015-06-03 | 诚迈科技(南京)股份有限公司 | 一种由sim卡主导的手机操作系统加载方法 |
CN106843915A (zh) * | 2015-12-03 | 2017-06-13 | 比亚迪股份有限公司 | 一种固件切换方法和装置 |
-
2018
- 2018-09-14 CN CN201811076646.2A patent/CN110908701B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212695A1 (en) * | 2005-03-17 | 2006-09-21 | Fujitsu Limited | Remote boot method and mechanism, and computer-readable storage medium |
CN103685391A (zh) * | 2012-09-13 | 2014-03-26 | 北京大唐高鸿软件技术有限公司 | 一种使用静态网络地址的终端设备的自动升级方法 |
CN104683594A (zh) * | 2015-03-16 | 2015-06-03 | 诚迈科技(南京)股份有限公司 | 一种由sim卡主导的手机操作系统加载方法 |
CN106843915A (zh) * | 2015-12-03 | 2017-06-13 | 比亚迪股份有限公司 | 一种固件切换方法和装置 |
Non-Patent Citations (1)
Title |
---|
夏昀;: "基于FAT32文件系统的安全存储方案", 信息技术 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986288A (zh) * | 2021-10-25 | 2022-01-28 | 康佳集团股份有限公司 | 一种固件切换方法、装置、通信模组、终端及存储介质 |
CN114422356A (zh) * | 2022-01-19 | 2022-04-29 | 中国电子科技集团公司第五十四研究所 | 一种天通模块固件切换的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110908701B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026645B (zh) | 用户界面自动化测试方法、装置、存储介质及电子设备 | |
US10592237B2 (en) | Efficient detection of architecture related bugs during the porting process | |
CN109508198B (zh) | 应用程序安装方法、装置、存储介质及终端 | |
US9280451B2 (en) | Testing device | |
CN105404585A (zh) | 获取代码覆盖率的方法及装置 | |
CN110928770B (zh) | 软件测试的方法、装置、系统、存储介质和电子设备 | |
US20120204160A1 (en) | Managing Non-Common Features for Program Code Translation | |
US9348491B2 (en) | Method and system to layout applications on multiple platforms | |
CN112015665B (zh) | 测试验证的回溯方法、装置、电子设备及存储介质 | |
CN111488163B (zh) | 一种固件更新方法、装置及电子设备和存储介质 | |
CN110908701B (zh) | 固件版本切换方法、装置、存储介质及电子设备 | |
CN109684112B (zh) | 程序文件运行方法、装置、终端及存储介质 | |
KR20150003651A (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템의 제어방법 | |
CN114168463A (zh) | 切换项目环境的方法、装置、存储介质及电子设备 | |
CN113986270A (zh) | 分布式应用部署方法、装置、存储介质及电子设备 | |
CN117271374A (zh) | 芯片的仿真测试方法、装置、设备及存储介质 | |
CN117520195A (zh) | 测试接口的方法、装置、设备、存储介质及程序产品 | |
CN108984238B (zh) | 应用程序的手势处理方法、装置及电子设备 | |
CN108563578B (zh) | Sdk兼容性检测方法、装置、设备及可读存储介质 | |
CN116521533A (zh) | 一种生成方法、装置、设备及存储介质 | |
CN111190761A (zh) | 日志输出方法、装置、存储介质及电子设备 | |
CN110677643A (zh) | 触摸屏电视机、触摸屏电视机测试方法、装置及介质 | |
CN111026651A (zh) | 测试方法、装置、存储介质及电子设备 | |
CN110580221A (zh) | 控件测试方法、装置、存储介质及电子设备 | |
JP7230951B2 (ja) | 携帯端末、情報処理システム、制御方法、及びプログラム |
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 | ||
CB02 | Change of applicant information |
Address after: 100085 unit C, building C, lin66, Zhufang Road, Qinghe, Haidian District, Beijing Applicant after: Beijing Xiaomi pinecone Electronic Co.,Ltd. Address before: 100085 Beijing city Haidian District Qinghe Shun Yip things Park Building 3 unit A Applicant before: BEIJING PINECONE ELECTRONICS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TG01 | Patent term adjustment | ||
TG01 | Patent term adjustment |