CN109840106A - 一种嵌入式系统中固件的升级方法、系统及终端设备 - Google Patents
一种嵌入式系统中固件的升级方法、系统及终端设备 Download PDFInfo
- Publication number
- CN109840106A CN109840106A CN201711214933.0A CN201711214933A CN109840106A CN 109840106 A CN109840106 A CN 109840106A CN 201711214933 A CN201711214933 A CN 201711214933A CN 109840106 A CN109840106 A CN 109840106A
- Authority
- CN
- China
- Prior art keywords
- firmware
- upgrade
- embedded system
- upgraded
- upgrading
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明适用于电子技术领域,提供了一种嵌入式系统中固件的升级方法、系统及终端设备,包括:获取嵌入式系统中固件的状态信息,根据所述状态信息判断所述固件是否为待升级的固件;若所述固件为待升级的固件,则升级所述固件,得到升级结果;根据所述升级结果判断所述固件是否被正确升级,若否,则再次升级所述固件。这一过程中Bootloader程序根据嵌入式系统中固件的升级状态标志判断出固件需要升级时,即可对其进行升级,并且在出现错误升级时,可及时发现固件被升错,从而再次对其进行正确的升级;Bootloader程序能容忍升级错误,对固件进行反复升级;并在异常条件下及时对升错级的固件进行正确的升级。
Description
技术领域
本发明属于电子技术领域,尤其涉及一种嵌入式系统中固件的升级方法、系统及终端设备。
背景技术
嵌入式系统是指用于执行独立功能的专用计算机系统。嵌入式系统以应用为中心在其应用场景中,经常会有对微控制单元(Microcontroller Unit,MCU)进行固件升级的需求。在对嵌入式系统中固件进行升级时,若嵌入式系统本身不带系统启动前的启动装载(Bootloader)程序,则往往需要通过MCU进行程序烧录操作来实现。烧录操作时往往需要拆开嵌入式系统的外部保护结构找到PCBA(Printed Circuit Board Assembly),并配合专门的烧录设备,烧录接口电路及专业的人员一起才能完成,操作难度大。
现有携带Bootloader的嵌入式系统中,Bootloader程序自身体积较大,应用成本高,不适合广泛的应用,特别是对一些成本敏感型项目;另外,现有嵌入式系统不能及时发现固件升级时出现的错误升级情况,也不能及时的给予补救。
发明内容
有鉴于此,本申请的实施例中提供了一种嵌入式系统中固件的升级方法、系统及终端设备,以解决现有嵌入式系统固件升级过程中,出现错误升级时不能及时补救的问题。
本发明实施例的第一方面提供了一种嵌入式系统中固件的升级方法,所述嵌入式系统中固件的升级方法包括:
获取嵌入式系统中固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;
根据所述状态信息判断所述固件是否为待升级的固件;
若所述固件为待升级的固件,则升级所述固件,得到升级结果;
根据所述升级结果判断所述固件是否被正确升级,若否,则再次升级所述固件。
本发明实施例的第二方面提供了一种嵌入式系统中固件的升级系统,其特征在于,所述嵌入式系统中固件的升级系统包括:
获取单元,用于获取嵌入式系统中固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;
判断单元,用于根据所述状态信息判断所述固件是否为待升级的固件;
升级单元,用于在所述固件为待升级的固件时,升级所述固件,得到升级结果;还用于根据所述升级结果判断所述固件是否被正确升级,若否,则再次升级所述固件。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述嵌入式系统中固件的升级方法中任一项所述方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如所述嵌入式系统中固件的升级方法中任一项所述方法的步骤。
本申请提供的实施例中嵌入式系统的Bootloader程序获取固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;根据所述状态信息判断所述固件是否为待升级的固件;若所述固件为待升级的固件,则升级所述固件,并根据升级结果判断固件是否被正确升级;若出现错误升级的情况,则再次对所述固件进行升级。这一过程中Bootloader程序根据嵌入式系统中固件的升级状态标志判断出固件需要升级时,即可对其进行升级,并且在出现错误升级时,可及时发现固件被升错,从而再次对其进行正确的升级;Bootloader程序能容忍升级错误,对固件进行反复升级;并在异常条件下及时对升错级的固件进行正确的升级。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种嵌入式系统中固件的升级方法中嵌入式系统的程序空间的划分示意图;
图2是本发明实施例一提供的一种嵌入式系统中固件的升级方法的流程示意图;
图3是本发明实施例一提供的嵌入式系统中固件的升级方法的流程图;
图4是本发明实施例二提供的一种嵌入式系统中固件的升级系统结构框图;
图5是本发明实施例三提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
本申请提供的实施例中对嵌入式系统内程序空间进行重新规划,将嵌入式系统程序空间划分为启动装载(Bootloader)程序空间、固件空间和升级变量空间三块;其中,Bootloader程序空间用于存放所述Bootloader程序代码、固件空间用于存放所述嵌入式系统中实际的固件、升级变量空间用于存放一些升级状态标志,所述升级状态标志用于标识嵌入式系统中固件当前的升级状态,以便Bootloader程序根据所述升级状态标志判断是否需要对相应的固件进行升级,如图1所示。另外,Bootloader程序和固件均能对升级状态标志进行更改操作。所述嵌入式系统上电后首先运行Bootloader程序,然后根据所述升级状态标志执行相应操作,并最终运行所述嵌入式系统的固件。
图2示出了本申请实施例中提供的一种嵌入式系统中固件的升级方法的实现过程示意图,详述如下:
步骤S21,获取当前嵌入式系统中固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;
本申请提供的实施例中嵌入式系统上电后由其中预设的Bootloader程序读取进入其中的嵌入式系统中固件的状态信息,其中,所述状态信息包括固件的升级状态标志、固件的版本信息、固件的名称、属性、种类及存储的具体位置等信息。
优选地,所述升级状态标志用于标识所述固件是否为需要升级的固件;可以用一个变量作为升级状态标志,例如,固件的升级状态标志为1时,表示所述固件需要升级,当升级状态标志为0时,表示所述固件不需要升级。
优选地,所述升级状态标志存储在所述嵌入式系统的预设位置,并与对应的固件形成映射关系,以使固件与其升级状态标志所存储的位置一一对应。
步骤S22,根据所述状态信息判断所述固件是否为待升级的固件;
本申请提供的实施例中,Bootloader对获取到的固件的状态信息进行判断,以确定所述固件是否为待升级的固件。
在判断时调用所述状态信息中的升级状态标志,判断所述升级状态标志所标识的固件的状态,在以变量作为升级状态标志时,若所述固件对应的变量为1,则说明所述固件为待升级的固件,若为0,则说明所述固件为不需要升级的固件。
另外,也可调用所述状态信息中的相应固件的版本信息,若根据所述版本信息判断出固件不是最新版本,或,用户预设版本,则判定所述固件为待升级的固件,若是,则判定不需要升级所述嵌入式系统中的固件。
步骤S23,若所述固件为待升级的固件,则升级所述固件,得到升级结果;
本申请提供的实施例中根据嵌入式系统中的固件的状态信息判断出其为需要升级的固件时,调用固件的名称、种类等信息,判断是否存在用户预设的与所述固件对应的更高版本或适用于当前嵌入式系统的同类固件,若存在,则将当前的固件升级到与之对应的用户预设的固件。
优选地,预先存储所述用户预设的固件,并将其与嵌入式系统中已有的同属性或/和同作用的固件相对应。
优选地,在不存在用户预设的固件时,则获取固件的最新版本,更新当前版本的固件至最新版本,得到更行结果,即升级结果。
步骤S24,根据所述升级结果判断所述固件是否被正确升级,若否,则再次升级所述固件。
本申请提供的实施例中,在将所固件进行升级之后,根据升级结果判断固件是否被正确升级,若所述固件被错误升级(如升级成错误的版本等情况,或升级过程中出现突然断电等情况),则控制Bootloader程序再次对其进行升级。这一过程中,出现错误升级后,Bootloader程序可对嵌入式系统中的固件进行重复升级以最终保证固件可以准确的升级到相应的版本。
本申请提供的实施例中嵌入式系统的Bootloader程序获取固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;根据所述状态信息判断所述固件是否为待升级的固件;若所述固件为待升级的固件,则升级所述固件,并根据升级结果判断固件是否被正确升级;若出现错误升级的情况,则再次对所述固件进行升级。这一过程中Bootloader程序根据嵌入式系统中固件的升级状态标志判断出固件需要升级时,即可对其进行升级,并且在出现错误升级时,可及时发现固件被升错,从而再次对其进行正确的升级;Bootloader程序能容忍升级错误,对固件进行反复升级;并在异常条件下及时对升错级的固件记性正确的升级。
优选地,在本申请提供的另一实施例中,所述根据所述状态信息判断所述固件是否为待升级的固件,包括:
获取上电后嵌入式系统的启动装载的滞留时间;
判断在所述滞留时间内,所述状态信息是否被更改;
在所述状态信息未被更改时,根据所述状态信息判断所述固件是否为待升级的固件。
具体地,在嵌入式系统上电并进入Bootloader程序后,统计Bootloader程序的滞留时间。由于嵌入式系统中固件本身和Bootloader程序均可更改所述升级状态标志,因此,判断所述滞留时间内,嵌入式系统中的固件的状态信息是否被修改,若所述状态信息(如,所述升级状态标志)未被更改,则按照已获得的固件的状态信息判断固件是否为待升级的固件。
可选地,若在所述滞留时间内嵌入式系统的固件的状态信息被更改,则按照更改后的嵌入式系统的固件的状态信息判断固件是否为待升级的固件。如所述状态信息中的升级状态标志由原本的变量0被更改为1,说明在所述滞留时间固件由不需要升级转变为待升级的固件。
可选地,若所述固件为不需要升级的固件,则判断所述滞留时间是否大于预设停留时间;若所述滞留时间大于所述预设停留时间,则启动所述固件。
优选地,在本申请提供的另一实施例中,所述嵌入式系统中固件的升级方法还包括:
在所述滞留时间内接收操作指令,根据所述操作指令执行相应的程序。
具体地,若在Bootloader程序的滞留时间内接收到控制器发送的操作指令,则响应所述操作指令。其中,所述操作指令包括:程序运行指令或/和升级状态标志的更改指令。
在接收到控制器发送的程序运行指令后,执行相应的程序;如,若在所述滞留时间内接收到控制器发送的亮起指示灯的程序运行指令,则控制相应固件执行亮灯程序,开启对应的指示灯。
若在所述滞留时间内接收到更改固件的升级状态标志的更改指令,则更改固件的升级状态标志;如,固件的升级状态标志为变量0,根据控制器发送的更改指令将其更改为1。
优选地,在本申请提供的另一实施例中,所述若所述固件为待升级的固件,则升级所述固件包括:
在所述固件为待升级的固件时,获取升级信息,其中,所述升级信息包括:更新后的所述固件对应的版本信息或升级路径;
根据所述升级信息升级所述固件。
具体地,在确定所述固件为待升级的固件时,获取所要升级到的版本信息及升级路径,之后对其进行升级操作;如,所述固件的版本信息为6.0版,而所要升级到的版本为7.0版,则获取7.0版的固件的升级路径;所述升级路径包括通过网络获取要升级到的版本的相关信息,并进行升级,或,从用户预设位置获取将要升级到的版本的相关信息,并进行升级。
优选地,在本申请提供的另一实施例中,所述嵌入式系统中固件的升级方法还包括:
根据所述升级结果判断所述固件是否被正确升级,在所述固件正确升级后,更改所述固件的升级状态标志。
在将所固件进行升级之后,根据升级结果判断固件是否被正确升级,若是,则使所述滞留时间清零,并运行更新后的固件。并将固件的升级状态标志更改为不需要升级的标志。固件升级后清除滞留时间及更改升级状态标志,避免其对下次升级判断的影响。
如图3所示系统上电后,获取固件的升级状态标志,并统计Bootloader程序的滞留时间,在所述滞留时间内若接收到操作指令,则相应对应的操作指令,之后根据所述升级状态标志判断固件是否为待升级的固件,若是,则升级所述固件;若否,则在所述滞留时间大于预设停留时间后启动所述固件。
实施例二:
对应于上文实施例所述的嵌入式系统中固件的升级方法,图4示出了本发明实施例提供的一种嵌入式系统中固件的升级系统的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图4,该嵌入式系统中固件的升级系统包括:获取单元41、判断单元42、升级单元43,其中:
获取单元41,获取当前嵌入式系统中固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;
本申请提供的实施例中嵌入式系统上电后由其中预设的Bootloader程序读取进入其中的嵌入式系统中固件的状态信息,其中,所述状态信息包括固件的升级状态标志、固件的版本信息、固件的名称、属性、种类及存储的具体位置等信息。
优选地,所述升级状态标志用于标识所述固件是否为需要升级的固件;可以用一个变量作为升级状态标志,例如,固件的升级状态标志为1时,表示所述固件需要升级,当升级状态标志为0时,表示所述固件不需要升级。
优选地,所述升级状态标志存储在所述嵌入式系统的预设位置,并与对应的固件形成映射关系,以使固件与其升级状态标志所存储的位置一一对应。
判断单元42,用于根据所述状态信息判断所述固件是否为待升级的固件;
本申请提供的实施例中,Bootloader对获取到的固件的状态信息进行判断,以确定所述固件是否为待升级的固件。
在判断时调用所述状态信息中的升级状态标志,判断所述升级状态标志所标识的固件的状态,在以变量作为升级状态标志时,若所述固件对应的变量为1,则说明所述固件为待升级的固件,若为0,则说明所述固件为不需要升级的固件。
另外,也可调用所述状态信息中的相应固件的版本信息,若根据所述版本信息判断出固件不是最新版本,或,用户预设版本,则判定所述固件为待升级的固件,若是,则判定不需要升级所述嵌入式系统中的固件。
升级单元43,用于在所述固件为待升级的固件时,升级所述固件,得到升级结果;
本申请提供的实施例中根据嵌入式系统中的固件的状态信息判断出其为需要升级的固件时,调用固件的名称、种类等信息,判断是否存在用户预设的与所述固件对应的更高版本或适用于当前嵌入式系统的同类固件,若存在,则将当前的固件升级到与之对应的用户预设的固件。
优选地,预先存储所述用户预设的固件,并将其与嵌入式系统中已有的同属性或/和同作用的固件相对应。
优选地,在不存在用户预设的固件时,则获取固件的最新版本,更新当前版本的固件至最新版本,得到更行结果,即升级结果。
升级单元43,还用于根据所述升级结果判断所述固件是否被正确升级,若否,则再次升级所述固件。
本申请提供的实施例中,在将所固件进行升级之后,根据升级结果判断固件是否被正确升级,若所述固件被错误升级(如升级成错误的版本等情况,或升级过程中出现突然断电等情况),则控制Bootloader程序再次对其进行升级。这一过程中,出现错误升级后,Bootloader程序可对嵌入式系统中的固件进行重复升级以最终保证固件可以准确的升级到相应的版本。
本申请提供的实施例中嵌入式系统的Bootloader程序获取固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;根据所述状态信息判断所述固件是否为待升级的固件;若所述固件为待升级的固件,则升级所述固件,并根据升级结果判断固件是否被正确升级;若出现错误升级的情况,则再次对所述固件进行升级。这一过程中Bootloader程序根据嵌入式系统中固件的升级状态标志判断出固件需要升级时,即可对其进行升级,并且在出现错误升级时,可及时发现固件被升错,从而再次对其进行正确的升级;Bootloader程序能容忍升级错误,对固件进行反复升级;并在异常条件下及时对升错级的固件记性正确的升级。
优选地,所述判断单元包括:
滞留时间获取模块,用于获取上电后嵌入式系统的启动装载的滞留时间;
第一判断模块,用于判断在所述滞留时间内,所述状态信息是否被更改;
第二判断模块,用于在所述状态信息未被更改时,根据所述状态信息判断所述固件是否为待升级的固件。
具体地,在嵌入式系统上电并进入Bootloader程序后,统计Bootloader程序的滞留时间。由于嵌入式系统中固件本身和Bootloader程序均可更改所述升级状态标志,因此,判断所述滞留时间内,嵌入式系统中的固件的状态信息是否被修改,若所述状态信息(如,所述升级状态标志)未被更改,则按照已获得的固件的状态信息判断固件是否为待升级的固件。
可选地,若在所述滞留时间内嵌入式系统的固件的状态信息被更改,则按照更改后的嵌入式系统的固件的状态信息判断固件是否为待升级的固件。如所述状态信息中的升级状态标志由原本的变量0被更改为1,说明在所述滞留时间固件由不需要升级转变为待升级的固件。
可选地,若所述固件为不需要升级的固件,则判断所述滞留时间是否大于预设停留时间;若所述滞留时间大于所述预设停留时间,则启动所述固件。
优选地,所述嵌入式系统中固件的升级系统还包括:
操作指令执行单元,用于在所述滞留时间内接收操作指令,根据所述操作指令执行相应的程序。
具体地,若在Bootloader程序的滞留时间内接收到控制器发送的操作指令,则响应所述操作指令。其中,所述操作指令包括:程序运行指令或/和升级状态标的志更改指令。
在接收到控制器发送的程序运行指令后,执行相应的程序;如,若在所述滞留时间内接收到控制器发送的亮起指示灯的程序运行指令,则控制相应固件执行亮灯程序,开启对应的指示灯。
若在所述滞留时间内接收到更改固件的升级状态标志的更改指令,则更改固件的升级状态标志;如,固件的升级状态标志为变量0,根据控制器发送的更改指令将其更改为1。
优选地,所述升级单元,包括:
升级信息获取模块,用于在所述固件为待升级的固件时,获取升级信息,其中,所述升级信息包括:更新后的所述固件对应的版本信息或升级路径;
执行模块,用于根据所述升级信息升级所述固件。
具体地,在确定所述固件为待升级的固件时,获取所要升级到的版本信息及升级路径,之后对其进行升级操作;如,所述固件的版本信息为6.0版,而所要升级到的版本为7.0版,则获取7.0版的固件的升级路径;所述升级路径包括通过网络获取要升级到的版本的相关信息,并进行升级,或,从用户预设位置获取将要升级到的版本的相关信息,并进行升级。
优选地,所述嵌入式系统中固件的升级系统还包括:
标志更改单元,用于根据所述升级结果判断所述固件是否被正确升级,在所述固件正确升级后,更改所述固件的升级状态标志。
在将所固件进行升级之后,根据升级结果判断固件是否被正确升级,若是,则使所述滞留时间清零,并运行更新后的固件。并将固件的升级状态标志更改为不需要升级的标志。固件升级后清除滞留时间及更改升级状态标志,避免其对下次升级判断的影响。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例三:
图5是本发明一实施例提供的一种终端设备的示意图。如图5所示,该实施例的终端设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个嵌入式系统中固件的升级方法实施例中的步骤,例如图1所示的步骤S21至S24。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示单元41至43的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。例如,所述计算机程序52可以被分割成:获取单元、判断单元、升级单元,各单元具体功能如下:
获取单元,获取当前嵌入式系统中固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;
判断单元,用于根据所述状态信息判断所述固件是否为待升级的固件;
升级单元,用于在所述固件为待升级的固件时,升级所述固件,得到升级结果;还用于根据所述升级结果判断所述固件是否被正确升级,若否,则再次升级所述固件。
优选地,所述判断单元包括:
滞留时间获取模块,用于获取上电后嵌入式系统的启动装载的滞留时间;
第一判断模块,用于判断在所述滞留时间内,所述状态信息是否被更改;
第二判断模块,用于在所述状态信息未被更改时,根据所述状态信息判断所述固件是否为待升级的固件。
优选地,所述嵌入式系统中固件的升级系统还包括:
操作指令执行单元,用于在所述滞留时间内接收操作指令,根据所述操作指令执行相应的程序。
优选地,所述升级单元,包括:
升级信息获取模块,用于在所述固件为待升级的固件时,获取升级信息,其中,所述升级信息包括:更新后的所述固件对应的版本信息或升级路径;
执行模块,用于根据所述升级信息升级所述固件。
优选地,所述嵌入式系统中固件的升级系统还包括:
标志更改单元,用于根据所述升级结果判断所述固件是否被正确升级,在所述固件正确升级后,更改所述固件的升级状态标志。
所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种嵌入式系统中固件的升级方法,其特征在于,所述嵌入式系统中固件的升级方法包括:
获取嵌入式系统中固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;
根据所述状态信息判断所述固件是否为待升级的固件;
若所述固件为待升级的固件,则升级所述固件,得到升级结果;
根据所述升级结果判断所述固件是否被正确升级,若否,则再次升级所述固件。
2.如权利要求1所述的嵌入式系统中固件的升级方法,其特征在于,所述根据所述状态信息判断所述固件是否为待升级的固件,包括:
获取上电后嵌入式系统的启动装载的滞留时间;
判断在所述滞留时间内,所述状态信息是否被更改;
在所述状态信息未被更改时,根据所述状态信息判断所述固件是否为待升级的固件。
3.如权利要求2所述的嵌入式系统中固件的升级方法,其特征在于,所述嵌入式系统中固件的升级方法还包括:
在所述滞留时间内接收操作指令,根据所述操作指令执行相应的程序。
4.如权利要求1所述的嵌入式系统中固件的升级方法,其特征在于,所述若所述固件为待升级的固件,则升级所述固件包括:
在所述固件为待升级的固件时,获取升级信息,其中,所述升级信息包括:更新后的所述固件对应的版本信息或升级路径;
根据所述升级信息升级所述固件。
5.如权利要求1所述的嵌入式系统中固件的升级方法,其特征在于,所述嵌入式系统中固件的升级方法还包括:
根据所述升级结果判断所述固件是否被正确升级,在所述固件正确升级后,更改所述固件的升级状态标志。
6.一种嵌入式系统中固件的升级系统,其特征在于,所述嵌入式系统中固件的升级系统包括:
获取单元,用于获取嵌入式系统中固件的状态信息,其中,所述状态信息包括所述固件的升级状态标志;
判断单元,用于根据所述状态信息判断所述固件是否为待升级的固件;
升级单元,用于在所述固件为待升级的固件时,升级所述固件,得到升级结果;还用于根据所述升级结果判断所述固件是否被正确升级,若否,则再次升级所述固件。
7.如权利要求6所述的嵌入式系统中固件的升级系统,其特征在于,所述判断单元包括:
滞留时间获取模块,用于获取上电后嵌入式系统的启动装载的滞留时间;
第一判断模块,用于判断在所述滞留时间内,所述状态信息是否被更改;
第二判断模块,用于在所述状态信息未被更改时,根据所述状态信息判断所述固件是否为待升级的固件。
8.如权利要求6所述的嵌入式系统中固件的升级系统,其特征在于,所述嵌入式系统中固件的升级系统还包括:
升级状态标志更改单元,用于根据所述升级结果判断所述固件是否被正确升级,在所述固件正确升级后,更改所述固件的升级状态标志。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711214933.0A CN109840106A (zh) | 2017-11-28 | 2017-11-28 | 一种嵌入式系统中固件的升级方法、系统及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711214933.0A CN109840106A (zh) | 2017-11-28 | 2017-11-28 | 一种嵌入式系统中固件的升级方法、系统及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109840106A true CN109840106A (zh) | 2019-06-04 |
Family
ID=66880844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711214933.0A Pending CN109840106A (zh) | 2017-11-28 | 2017-11-28 | 一种嵌入式系统中固件的升级方法、系统及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840106A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111610995A (zh) * | 2020-05-21 | 2020-09-01 | 昆腾微电子股份有限公司 | 一种设备固件升级方法、装置、电子设备和存储介质 |
CN113254053A (zh) * | 2021-06-11 | 2021-08-13 | 季华实验室 | 一种双cpu系统的固件升级方法、系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120117557A1 (en) * | 2009-07-13 | 2012-05-10 | Zte Corporation | Method and system for upgrading wireless data card |
CN102945177A (zh) * | 2012-11-16 | 2013-02-27 | 深圳市汇川控制技术有限公司 | Plc固件升级系统及方法 |
CN105094903A (zh) * | 2015-07-16 | 2015-11-25 | 广州飞米电子科技有限公司 | 对固件进行升级的方法及装置 |
CN106873943A (zh) * | 2017-01-12 | 2017-06-20 | 深圳市优必选科技有限公司 | 嵌入式系统的固件升级方法 |
CN107102871A (zh) * | 2017-03-30 | 2017-08-29 | 建荣半导体(深圳)有限公司 | 嵌入式系统升级的方法和装置 |
-
2017
- 2017-11-28 CN CN201711214933.0A patent/CN109840106A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120117557A1 (en) * | 2009-07-13 | 2012-05-10 | Zte Corporation | Method and system for upgrading wireless data card |
CN102945177A (zh) * | 2012-11-16 | 2013-02-27 | 深圳市汇川控制技术有限公司 | Plc固件升级系统及方法 |
CN105094903A (zh) * | 2015-07-16 | 2015-11-25 | 广州飞米电子科技有限公司 | 对固件进行升级的方法及装置 |
CN106873943A (zh) * | 2017-01-12 | 2017-06-20 | 深圳市优必选科技有限公司 | 嵌入式系统的固件升级方法 |
CN107102871A (zh) * | 2017-03-30 | 2017-08-29 | 建荣半导体(深圳)有限公司 | 嵌入式系统升级的方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111610995A (zh) * | 2020-05-21 | 2020-09-01 | 昆腾微电子股份有限公司 | 一种设备固件升级方法、装置、电子设备和存储介质 |
CN111610995B (zh) * | 2020-05-21 | 2023-04-28 | 昆腾微电子股份有限公司 | 一种设备固件升级方法、装置、电子设备和存储介质 |
CN113254053A (zh) * | 2021-06-11 | 2021-08-13 | 季华实验室 | 一种双cpu系统的固件升级方法、系统 |
CN113254053B (zh) * | 2021-06-11 | 2021-11-02 | 季华实验室 | 一种双cpu系统的固件升级方法、系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11966675B2 (en) | Systems and methods for co-simulation | |
CN105159718B (zh) | 固件升级方法及装置 | |
CN109582325A (zh) | 机器人的软件升级方法、机器人及计算机可读存储介质 | |
CN109814524A (zh) | 一种车辆诊断方法、装置及系统 | |
CN110517138A (zh) | 智能合约处理方法、装置、计算机设备及存储介质 | |
CN107643904B (zh) | 代码提交日志的检测方法、装置、介质及电子设备 | |
CN109976779A (zh) | 机器人软件在线升级发布方法、装置、设备及存储介质 | |
CN102308280A (zh) | 基本输入/输出系统bios配置数据管理方法及系统 | |
CN109840106A (zh) | 一种嵌入式系统中固件的升级方法、系统及终端设备 | |
CN109086065A (zh) | 一种软件升级方法、系统及终端设备 | |
CN106843984A (zh) | 应用数据库的更新方法及装置 | |
US20150006736A1 (en) | Method and System for Deploying and Modifying a Service-Oriented Architecture Deployment Environment | |
CN109542462A (zh) | 一种系统环境部署方法、存储介质和服务器 | |
CN107169230A (zh) | 配筋方法、装置、终端及计算机可读存储介质 | |
US9716625B2 (en) | Identifying compatible system configurations | |
CN109542432A (zh) | 风控规则编辑方法及终端设备 | |
CN107341074B (zh) | 一种升级异常修复方法、升级异常修复装置及智能终端 | |
CN110083375A (zh) | 一种设备间交互进行ota升级的方法及装置 | |
CN110192178A (zh) | 程序打补丁的方法、装置、微控制单元和终端设备 | |
CN110413310A (zh) | 程序升级方法及终端设备 | |
CN108932134A (zh) | 服务器bios远程更新方法 | |
CN109859038B (zh) | 一种区块链智能合约的生效方法及装置 | |
CN112034819A (zh) | 一种车辆诊断方法、车辆诊断装置及诊断设备 | |
CN110390463A (zh) | 风控数据处理方法、装置及终端设备 | |
CN105975322A (zh) | 一种用于程序更新的装置、方法及微控制器 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190604 |