掌桥专利:专业的专利平台
掌桥专利
首页

固件升级方法、嵌入式装置及存储介质

文献发布时间:2023-06-19 10:57:17


固件升级方法、嵌入式装置及存储介质

技术领域

本发明涉及固件升级技术领域,具体地,涉及一种固件升级方法、嵌入式装置及存储介质。

背景技术

当前,汽车市场中的OBD(On Board Diagnostics,即车载自动诊断系统)技术得到不断地普及,各大汽车厂商也都遵守OBD相关的标准。汽车的OBD诊断接口是获取汽车数据的一个接口,在此形式下,诞生了各种各样的车载OBD终端,它们均是直接安装汽车OBD诊断接口上,利用汽车诊断技术,读取车辆的车况信息,如:是否存在故障,当前发动机的转速及水温等。

但是目前的各种各样的嵌入式设备,如车载OBD终端在进行远程升级时,会因为网络连接不稳定等各种因素而导致升级失败的问题产生,因此需要改进。

发明内容

本发明的主要目的是提供一种固件升级方法、嵌入式装置及存储介质,旨在解决现有技术中嵌入式终端远程升级易失败的问题。

为实现上述目的,本发明提供一种固件升级方法,其包括以下步骤:

将存储空间划分为多个分区,所述多个分区包括引导区、第一系统区和存储区,所述第一系统区设有第一系统;

接收到升级指令后,判断第一系统是否满足升级条件;

若第一系统满足升级条件,则根据所述升级指令将升级文件存入存储区;

调取存储区的升级文件对第一系统区的第一系统进行升级。

在本发明实施例中,当需要对固件进行升级时,在第一系统满足升级条件的情况下,可以将升级文件存入存储区,并调取存储区的升级文件对第一系统进行升级,从而完成对固件的升级。现有技术中的固件升级过程在遇到网络连接不稳定的情况时,不仅升级文件传输过程会中断,而且有时也会导致固件无法正常运行。而在本发明实施例的固件升级方法中,若出现网络连接不稳定等各种问题时,升级文件的传输过程将会中止,但是不会影响原始固件的正常运行。待网络连接恢复正常后,升级文件将会继续传输直至全部传输完成,此时将会调取存储区的升级文件对第一系统区的第一系统进行升级。因此,本发明实施例的固件升级方法避免了现有技术因网络连接不稳定而导致升级易失败和固件无法正常运行的问题。

在本发明的一个实施例中,所述判断第一系统是否满足升级条件的步骤具体为:根据第一系统的标志信息判断第一系统是否满足升级条件。

在本发明的一个实施例中,所述若第一系统满足升级条件,则第一系统根据所述升级指令将升级文件存入存储区的步骤具体为:若第一系统的标志信息为启动系统的标志信息,则根据所述升级指令将升级文件存入存储区。

在本发明的一个实施例中,所述多个分区还包括第二系统区,所述第二系统区设有第二系统;在所述接收到升级指令后,根据第一系统的标志信息判断第一系统是否满足升级条件的步骤之后还包括以下步骤:若第一系统的标志信息为升级成功或升级失败的标志信息,则向第二系统发送启动第二系统的指令,并停止运行第一系统。

在本发明的一个实施例中,在所述并停止运行第一系统之后还包括以下步骤:

接收第一系统发送的启动第二系统的指令后,启动第二系统;

根据所述启动第二系统的指令将升级文件存入存储区;

调取存储区的升级文件对第一系统区的第一系统进行升级。

在本发明的一个实施例中,所述多个分区还包括第三系统区,所述第三系统区设有第三系统;在所述接收到升级指令后,根据第一系统的标志信息判断第一系统是否满足升级条件的步骤之后还包括以下步骤:

若第一系统的标志信息为升级成功或升级失败的标志信息,则向第三系统发送启动第三系统的指令,并停止运行第一系统;

接收第一系统发送的启动第三系统的指令后,启动第三系统;

根据第三系统的标志信息判断第三系统是否满足升级条件。

在本发明的一个实施例中,在所述根据第三系统的标志信息判断第三系统是否满足升级条件之后还包括以下步骤:

若第三系统的标志信息为启动系统的标志信息,则根据所述启动第三系统的指令将升级文件存入存储区;

调取存储区的升级文件对第三系统区的第三系统进行升级。

在本发明的一个实施例中,所述多个分区还包括第四系统区,所述第四系统区设有第四系统;在所述根据第三系统的标志信息判断第三系统是否满足升级条件之后还包括以下步骤:若第三系统的标志信息为升级成功或升级失败的标志信息,则向第四系统发送启动第四系统的指令,并停止运行第三系统。

在本发明的一个实施例中,在所述并停止运行第三系统之后还包括以下步骤:

接收第三系统发送的启动第四系统的指令后,启动第四系统;

根据所述启动第四系统的指令将升级文件存入存储区;

调取存储区的升级文件对第一系统区的第一系统进行升级,或调取存储区的升级文件对第三系统区的第三系统进行升级。

在本发明的一个实施例中,在所述调取存储区的升级文件对第一系统区的第一系统进行升级之后还包括如下步骤:

判断第一系统是否升级完成;

若第一系统升级完成,第一系统的标志信息变更为升级成功的标志信息。

本发明的另一个目的在于提出一种嵌入式装置,其包括:

分区单元,所述分区单元将存储空间划分为多个分区,所述多个分区包括引导区、第一系统区和存储区,所述第一系统区设有第一系统;

第一判断单元,所述第一判断单元用于判断第一系统是否满足升级条件;

第一获取单元,若第一系统满足升级条件,所述第一获取单元根据所述升级指令将升级文件存入存储区;和

第一升级单元,所述第一升级单元用于接收升级指令;所述第一升级单元调取存储区的升级文件对第一系统区的第一系统进行升级。

本发明的又一个目的在于提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的固件升级方法。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明第一实施例的固件升级方法的一个流程示意图;

图2为本发明第一实施例的固件升级方法的另一个流程示意图;

图3为本发明第一实施例的固件升级方法的又一个流程示意图;

图4为本发明第一实施例的固件升级方法的再一个流程示意图;

图5为本发明第一实施例的固件升级方法的另一个流程示意图;

图6为本发明第一实施例的固件升级方法的又一个流程示意图;

图7为本发明第一实施例的固件升级方法的再一个流程示意图;

图8为本发明第一实施例的固件升级方法的一个存储空间组成示意图;

图9为本发明第一实施例的固件升级方法的另一个存储空间组成示意图;

图10为本发明第一实施例的固件升级方法的又一个存储空间组成示意图;

图11为本发明第二实施例的嵌入式装置的一个结构示意图;

图12为本发明第二实施例的嵌入式装置的另一个结构示意图;

图13为本发明第二实施例的嵌入式装置的又一个结构示意图;

图14为本发明第二实施例的嵌入式装置的再一个结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

如图1和图7所示,本发明第一实施例公开了一种固件升级方法,包括以下步骤:

S100:将存储空间划分为多个分区,所述多个分区包括引导区、第一系统区和存储区,所述第一系统区设有第一系统;

S101:接收到升级指令后,判断第一系统是否满足升级条件;

S102:若第一系统满足升级条件,则根据所述升级指令将升级文件存入存储区;

S103:调取存储区的升级文件对第一系统区的第一系统进行升级。

在本发明实施例中,固件可以在微处理器上运行,或者也可以在OBD终端或其他嵌入式装置上运行。引导区存放系统引导程序与系统参数。系统上电后,系统引导程序初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的环境中。第一系统区可以为主系统区,第一系统区内存储有第一系统文件,第一系统可以实现控制和运算等功能。存储区主要用于存储升级文件,升级文件可以由第一系统等调取。

在本发明实施例中,存储空间被划分为多个分区,各个分区的功能在一定程度上保持相对独立。如,第一系统区可以实现主要的控制和运算等功能,存储区主要用于存储升级文件,以由第一系统等调取。可以理解的是,多个分区的数量并没有做限制,只要分区的数量为至少两个均在本发明实施例的所要求保护的范围内。

根据本发明实施例的固件升级方法,当需要对固件进行升级时,在第一系统满足升级条件的情况下,可以将升级文件存入存储区,并调取存储区的升级文件对第一系统进行升级,从而完成对固件的升级。现有技术中的固件升级过程在遇到网络连接不稳定的情况时,不仅升级文件传输过程会中断,而且有时也会导致固件无法正常运行。而在本发明实施例的固件升级方法中,若出现网络连接不稳定等各种问题时,升级文件的传输过程将会中止,但是不会影响原始固件的正常运行。待网络连接恢复正常后,升级文件将会继续传输直至全部传输完成,此时将会调取存储区的升级文件对第一系统区的第一系统进行升级。因此,本发明实施例的固件升级方法避免了现有技术因网络连接不稳定而导致升级易失败和固件无法正常运行的问题。

在本发明的一个实施例中,在步骤S100之后,还可以包括以下步骤:

S115:启动第一系统;

S116:检测第一系统是否进入升级模式;

S117:若第一系统进入到升级模式,则判断是否接收到升级指令;

S118:若接收到升级指令,则执行步骤S101。

如图2所示,在本发明的一个实施例中,在步骤S103之后,还包括以下步骤:

S110:判断第一系统是否升级完成;

S111:若第一系统升级完成,第一系统的标志信息变更为升级成功的标志信息。

由此,在第一系统完成升级后,将第一系统的标志信息变更为升级成功的标志信息,可以便于下次再对第一系统升级时,能够根据第一系统上一次的升级状态准确判断第一系统是否能进行后续的升级操作。

如图3所示,在本发明的一个实施例中,S101步骤中的判断第一系统是否满足升级条件具体为:根据第一系统的标志信息判断第一系统是否满足升级条件。相应地,S101步骤具体为:

S104:接收到升级指令后,根据第一系统的标志信息判断第一系统是否满足升级条件。

在本发明实施例中,系统的标志信息可以用于指示系统的升级状态、启动和/或运行状态等,如,可以用“1”代表可以启动本系统,用“2”代表系统升级成功,用“3”代表系统升级失败。当然也可以用其他的二进制字符或者十六进制字符指示系统的升级状态、启动和/或运行状态等。

当接收到系统升级指令后,可以将第一系统的升级状态作为第一系统是否能升级的条件之一。例如,若读取或检测到第一系统的标志信息为系统升级成功的信息时,则说明第一系统已经完成升级,可以不需要对第一系统进行再次升级。若读取或检测到第一系统的标志信息为系统升级失败的信息时,则说明第一系统在最近一次的升级过程中,产生了升级失败的问题。

当接收到系统升级指令后,也可以将第一系统的运行状态作为第一系统是否能升级的条件之一。例如,若读取或检测到第一系统的标志信息为空闲状态的信息时,则说明第一系统可以进行升级。若读取或检测到第一系统的标志信息为非空闲状态的信息时,则说明第一系统不宜进行升级。

当接收到系统升级指令后,或者也可以将第一系统的启动状态作为第一系统是否能升级的条件之一。例如,若读取或检测到第一系统的标志信息为系统启动成功的信息时,则说明第一系统可以进行升级。若读取或检测到第一系统的标志信息为系统启动中或系统启动失败的信息时,则说明第一系统不宜进行升级。

由此,通过第一系统的标志信息,可以判断第一系统是否处于能稳定升级系统或固件的环境或条件,进而可以根据第一系统所处的不同状态、环境或条件,做出升级或不升级的操作。

如图4所示,在本发明的一个实施例中,在步骤S101中可以具体为:

S112:接收到网络服务器所发送的升级指令后,判断第一系统是否满足升级条件。

也就是说,外部的服务器可以向固件发送升级指令,以实现固件的远程升级。当然,固件自身也能发出升级指令,以实现自动升级。

如图5所示,在本发明的一个实施例中,步骤S102具体为:

S105:若第一系统的标志信息为启动系统的标志信息,则根据所述升级指令将升级文件存入存储区。

在本发明实施例中,若第一系统的标志信息为启动系统的标志信息,说明第一系统可以启动系统升级过程,则可以根据升级指令将系统升级文件存入存储区,以备第一系统升级时调取。

如图6和图8所示,在本发明的一个实施例中,多个分区还包括第二系统区,第二系统区设有第二系统。在步骤S101之后还包括以下步骤:

S106:若第一系统的标志信息为升级成功或升级失败的标志信息,则向第二系统发送启动第二系统的指令,并停止运行第一系统。

在本发明实施例中,第二系统主要为能实现系统能够正常运行所必需的精简系统,可以将其看作为最简系统、备份系统或者冗余系统,或可以将其作为远程升级时使用。在第一系统遇到网络连接不稳定、突然断电、接线断电等问题时,可能会导致第一系统升级失败、第一系统文件出现损坏导致启动失败等。若第一系统还能正常运行,可以再次对第一系统进行升级。或者,优选地,也可以使用第二系统完成固件或系统的升级操作,这能够避免第一系统再次进行升级时会遇到升级失败的可能,第二系统可以作为冗余系统,用来完成系统或固件的升级程序,增加了升级过程的可靠性,降低了升级过程的故障发生率。与此同时,停止运行第一系统,可以避免第一系统和第二系统同时运行而产生的相互干扰的问题,进一步提高了系统运行的稳定性和可靠性。

如图6所示,在本发明的一个实施例中,在上述的S106步骤之后还包括以下步骤:

S107:接收第一系统发送的启动第二系统的指令后,启动第二系统;

S108:根据所述启动第二系统的指令将升级文件存入存储区;

S109:调取存储区的升级文件对第一系统区的第一系统进行升级。

在本发明实施例中,第一系统在无法启动或无法升级时,可以启动第二系统,第二系统能够维持系统运行时所必不可少的基本功能,如本发明实施例中所涉及的升级功能。第二系统在接收到第一系统发送的启动第二系统的指令后,第二系统开始启动并运行。

可选地,在未接收到第一系统发送的启动第二系统的指令之前,第二系统并未运行,也就是第二系统处于未激活或休眠的状态。或者,可选地,第二系统与第一系统同时运行,只是第二系统和第一系统两者在同一时间所运行的程序或指令、实现的功能相互不重叠;或者第二系统与第一系统为异步运行;或者第二系统与第一系统形成主系统和备份系统组成的架构,第二系统和第一系统各自运行的程序、实现的功能不相同。

第二系统运行之后,升级文件会存入存储区。升级文件存储完成后,第二系统会用升级文件替换第一系统区的第一系统文件,完成第一系统的远程升级或恢复操作。由此,即使第一系统升级失败或启动失败,第二系统之后会用升级文件替换第一系统区的第一系统文件,完成第一系统区的远程升级或恢复操作,以使第一系统能够完成升级或者能够恢复正常运行,增强了固件升级过程的可靠性,实现固件的安全升级。

如图6所示,进一步地,在步骤S109之后,还包括以下步骤:

S113:判断第一系统是否升级完成;

S114:若第一系统升级完成,第一系统的标志信息变更为升级成功的标志信息。

由此,在第一系统完成升级后,将第一系统的标志信息变更为升级成功的标志信息,可以便于下次再对第一系统升级时,能够根据第一系统上一次的升级状态准确判断第一系统是否能进行后续的升级操作。

如图7和图10所示,在本发明的一个实施例中,多个分区还包括第三系统区,第三系统区设有第三系统。在步骤S101之后还包括以下步骤:

S200:若第一系统的标志信息为升级成功或升级失败的标志信息,则向第三系统发送启动第三系统的指令,并停止运行第一系统;

S201:接收第一系统发送的启动第三系统的指令后,启动第三系统;

S202:根据第三系统的标志信息判断第三系统是否满足升级条件。

在本发明实施例中,第三系统可以为副系统区,第三系统区内存储有第三系统文件,第三系统也可以实现控制和运算等功能。在第一系统升级失败的情况下,在向第三系统发送启动第三系统启动的指令后,第三系统开始启动并运行。

可选地,在未接收到第一系统发送的启动第三系统的指令之前,第三系统并未运行,也就是第三系统处于未激活或休眠的状态。或者,可选地,第三系统在未接收到第一系统发送的启动第三系统的指令之前,第三系统与第一系统同时运行,只是第三系统和第一系统两者在同一时间所运行的程序或指令、实现的功能相互不重叠;或者第三系统与第一系统为异步运行;或者第三系统与第一系统形成主系统和副系统组成的架构,第三系统和第一系统各自运行的程序、实现的功能不相同。

第三系统启动或运行之后,还需要判断第三系统是否具备升级条件,如果具备升级条件,可以升级第三系统,如果不具备升级条件,则不升级第三系统。在本发明实施例中,系统的标志信息可以用于指示系统的升级状态、启动和/或运行状态等,如,可以用“1”代表可以启动本系统,用“2”代表系统升级成功,用“3”代表系统升级失败。当然也可以用其他的二进制字符或者十六进制字符指示系统的升级状态、启动和/或运行状态等。

当接收到系统升级指令后,可以将第三系统的升级状态作为第三系统是否能升级的条件之一。例如,若读取或检测到第三系统的标志信息为系统升级成功的信息时,则说明第三系统已经完成升级,可以不需要对第三系统进行再次升级。若读取或检测到第三系统的标志信息为系统升级失败的信息时,则说明第三系统在最近一次的升级过程中,产生了升级失败的问题。

当接收到系统升级指令后,也可以将第三系统的运行状态作为第三系统是否能升级的条件之一。例如,若读取或检测到第三系统的标志信息为空闲状态的信息时,则说明第三系统可以进行升级。若读取或检测到第三系统的标志信息为非空闲状态的信息时,则说明第三系统不宜进行升级。

当接收到系统升级指令后,或者也可以将第三系统的启动状态作为第三系统是否能升级的条件之一。例如,若读取或检测到第三系统的标志信息为系统启动成功的信息时,则说明第三系统可以进行升级。若读取或检测到第三系统的标志信息为系统启动中或系统启动失败的信息时,则说明第三系统不宜进行升级。

由此,通过第三系统的标志信息,可以判断第三系统是否处于能稳定升级系统或固件的环境或条件,进而可以根据第三系统所处的不同状态、环境或条件,做出升级或不升级的操作。

如图7所示,在本发明的一个实施例中,在步骤S202之后还包括以下步骤:

S203:若第三系统的标志信息为启动系统的标志信息,则根据所述启动第三系统的指令将升级文件存入存储区;

S204:调取存储区的升级文件对第三系统区的第三系统进行升级。

在本发明实施例中,若第三系统的标志信息为启动系统的标志信息,则说明第三系统可以启动系统升级过程,第三系统根据升级指令将系统升级文件存入存储区,以备第三系统升级时调取。

第三系统运行之后,升级文件会存入存储区。升级文件存储完成后,第三系统区的第三系统文件将会被升级文件替换,完成第三系统的远程升级或恢复操作。由此,即使第一系统升级失败或启动失败,第三系统之后也会被升级文件替换完成第三系统区的远程升级或恢复操作,以使第三系统能够完成升级或者能够恢复正常运行,增强了固件升级过程的可靠性,实现固件的安全升级。

如图7所示,进一步地,在步骤S204之后,还包括以下步骤:

S209:判断第三系统是否升级完成;

S210:若第三系统升级完成,第三系统的标志信息变更为升级成功的标志信息。

由此,在第三系统完成升级后,将第三系统的标志信息变更为升级成功的标志信息,可以便于下次再对第三系统升级时,能够根据第三系统上一次的升级状态准确判断第三系统是否能进行后续的升级操作。

如图7所示,在本发明的一个实施例中,多个分区还包括第四系统区,第四系统区设有第四系统。在步骤S202之后还包括以下步骤:

S205:若第三系统的标志信息为升级成功或升级失败的标志信息,则向第四系统发送启动第四系统的指令,并停止运行第三系统。

在本发明实施例中,第四系统主要为能实现系统能够正常运行所必需的精简系统,可以将其看作为最简系统、备份系统或者冗余系统,或可以将其作为远程升级时使用。在第一系统或第三系统遇到网络连接不稳定、突然断电、接线断电等问题时,可能会导致第一系统或第三系统升级失败、第一系统文件或第三系统文件出现损坏导致启动失败等。若第一系统或第三系统还能正常运行,可以再次对第一系统或第三系统进行升级。或者,优选地,也可以使用第四系统完成固件或系统的升级操作,这能够避免第一系统或第三系统再次进行升级时遇到升级失败的可能,第四系统可以作为冗余系统,用来完成系统或固件的升级程序,增加了升级过程的可靠性,降低了升级过程的故障发生率。与此同时,停止运行第三系统,可以避免第一系统、第三系统和第四系统三者同时运行而产生的相互干扰的问题,进一步提高了系统运行的稳定性和可靠性。

如图7所示,在本发明的一个实施例中,在步骤S205之后还包括以下步骤:

S206:接收第三系统发送的启动第四系统的指令后,启动第四系统;

S207:根据所述启动第四系统的指令将升级文件存入存储区;

S208:调取存储区的升级文件对第一系统区的第一系统进行升级,或调取存储区的升级文件对第三系统区的第三系统进行升级。

在本发明实施例中,第三系统在无法启动或无法升级时,可以启动第四系统,第四系统能够维持系统运行时所必不可少的基本功能,如本发明实施例中所涉及的升级功能。在接收到第三系统发送的启动第四系统的指令后,第四系统开始启动并运行。

可选地,在未接收到第三系统发送的启动第四系统的指令之前,第四系统并未运行,也就是第四系统处于未激活或休眠的状态。或者,可选地,第四系统与第三系统同时运行,只是第四系统和第三系统两者在同一时间所运行的程序或指令、实现的功能相互不重叠;可选地,或者第三系统与第四系统为异步运行;或者第四系统与第三系统形成主系统和备份系统组成的架构,第四系统和第三系统各自运行的程序、实现的功能不相同。

第四系统运行之后,升级文件会存入存储区。升级文件存储完成后,第四系统会用升级文件替换第一系统区的第一系统文件,完成第一系统的远程升级或恢复操作。或者,第四系统会用升级文件替换第三系统区的第三系统文件,完成第三系统的远程升级或恢复操作。

由此,即使第一系统和第三系统升级失败或启动失败,第四系统之后会用升级文件替换第一系统区的第一系统文件或第三系统区的第三系统文件,完成第一系统区或第三系统区的远程升级或恢复操作,以使第一系统或第三系统能够完成升级或者能够恢复正常运行,增强了固件升级过程的可靠性,实现固件的安全升级。

如图7所示,进一步地,在步骤S208之后,还可以包括以下步骤:

S211:判断第一系统是否升级完成;

S212:若第一系统升级完成,第一系统的标志信息变更为升级成功的标志信息;

如图7所示,更进一步地,在步骤S212之后,还可以包括以下步骤:

S213:判断第三系统是否升级完成;

S214:若第三系统升级完成,第三系统的标志信息变更为升级成功的标志信息。

由此,在第一系统或第三系统完成升级后,将第一系统或第三系统的标志信息变更为升级成功的标志信息,可以便于下次再对第一系统或第三系统升级时,能够根据第一系统或第三系统的上一次升级状态准确判断是否需要对第一系统或第三系统进行后续的升级操作。

如图11和图8所示,本发明的第二实施例公开了一种嵌入式装置包括:分区单元、第一判断单元、第一获取单元和第一升级单元。分区单元将存储空间划分为多个分区,多个分区包括引导区、第一系统区和存储区,第一系统区设有第一系统。第一判断单元用于判断第一系统是否满足升级条件。若第一系统满足升级条件,第一获取单元根据升级指令将升级文件存入存储区;第一升级单元用于获取升级指令,第一升级单元调取存储区的升级文件对第一系统区的第一系统进行升级。可以理解的是,嵌入式装置可以为具有嵌入式系统的装置,嵌入式系统主要是嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。如,车载OBD终端也为嵌入式装置的一种。

由于本发明实施例的固件升级方法具有上述的有益效果,而且本发明实施例的嵌入式装置与本发明实施例的固件升级方法具有相同的技术构思,因此本发明实施例的嵌入式装置也具有相应的有益效果,即:当需要对固件进行升级时,在第一系统满足升级条件的情况下,第一系统可以将升级文件存入存储区,并调取存储区的升级文件对第一系统进行升级,从而完成对固件的升级。现有技术中的固件升级过程在遇到网络连接不稳定的情况时,不仅升级文件传输过程会中断,而且有时也会导致固件无法正常运行。而在本发明实施例的固件升级方法中,若出现网络连接不稳定等各种问题时,升级文件的传输过程将会中止,但是不会影响原始固件的正常运行。待网络连接恢复正常后,升级文件将会继续传输直至全部传输完成,此时第一系统将会调取存储区的升级文件对第一系统区的第一系统进行升级。因此,本发明实施例的固件升级方法避免了现有技术因网络连接不稳定而导致升级易失败和固件无法正常运行的问题。

如图12所示,在本发明的一个实施例中,嵌入式装置还包括第一子判断单元和第一设置单元。第一子判断单元用于判断第一系统是否升级完成。若第一系统升级完成,第一设置单元可以将第一系统的标志信息变更为升级成功的标志信息。由此,在第一系统完成升级后,将第一系统的标志信息变更为升级成功的标志信息,可以便于下次再对第一系统升级时,能够根据第一系统上一次的升级状态准确判断第一系统是否能进行后续的升级操作。

在本发明的一个实施例中,第一判断单元根据第一系统的标志信息判断第一系统是否满足升级条件。在本发明实施例中,系统的标志信息可以用于指示系统的升级状态、启动和/或运行状态等,如,可以用“1”代表可以启动本系统,用“2”代表系统升级成功,用“3”代表系统升级失败。当然也可以用其他的二进制字符或者十六进制字符指示系统的升级状态、启动和/或运行状态等。

当接收到系统升级指令后,可以将第一系统的升级状态作为第一系统是否能升级的条件之一。例如,若读取或检测到第一系统的标志信息为系统升级成功的信息时,则说明第一系统已经完成升级,可以不需要对第一系统进行再次升级。若读取或检测到第一系统的标志信息为系统升级失败的信息时,则说明第一系统在最近一次的升级过程中,产生了升级失败的问题。

当接收到系统升级指令后,也可以将第一系统的运行状态作为第一系统是否能升级的条件之一。例如,若读取或检测到第一系统的标志信息为空闲状态的信息时,则说明第一系统可以进行升级。若读取或检测到第一系统的标志信息为非空闲状态的信息时,则说明第一系统不宜进行升级。

当接收到系统升级指令后,或者也可以将第一系统的启动状态作为第一系统是否能升级的条件之一。例如,若读取或检测到第一系统的标志信息为系统启动成功的信息时,则说明第一系统可以进行升级。若读取或检测到第一系统的标志信息为系统启动中或系统启动失败的信息时,则说明第一系统不宜进行升级。

由此,通过第一系统的标志信息,可以判断第一系统是否处于能稳定升级系统或固件的环境或条件,进而可以根据第一系统所处的不同状态、环境或条件,做出升级或不升级的操作。

在本发明的一个实施例中,若第一系统的标志信息为启动系统的标志信息,第一获取单元根据升级指令将升级文件存入存储区。在本发明实施例中,若第一系统的标志信息为启动系统的标志信息,说明第一系统可以启动系统升级过程,则可以根据升级指令将系统升级文件存入存储区,以备第一系统升级时调取。

如图13所示,在本发明的一个实施例中,多个分区还包括第二系统区,第二系统区设有第二系统。嵌入式装置还包括第一切换单元。若第一系统的标志信息为升级成功或升级失败的标志信息,第一切换单元向第二系统发送启动第二系统的指令,并停止运行第一系统。在本发明实施例中,第二系统主要为能实现系统能够正常运行所必需的精简系统,可以将其看作为最简系统、备份系统或者冗余系统,或可以将其作为远程升级时使用。在第一系统遇到网络连接不稳定、突然断电、接线断电等问题时,可能会导致第一系统升级失败、第一系统文件出现损坏导致启动失败等。若第一系统还能正常运行,可以再次对第一系统进行升级。或者,优选地,也可以使用第二系统完成固件或系统的升级操作,这能够避免第一系统再次进行升级时会遇到升级失败的可能,第二系统可以作为冗余系统,用来完成系统或固件的升级程序,增加了升级过程的可靠性,降低了升级过程的故障发生率。与此同时,停止运行第一系统,可以避免第一系统和第二系统同时运行而产生的相互干扰的问题,进一步提高了系统运行的稳定性和可靠性。

如图13所示,在本发明的一个实施例中,嵌入式装置还包括第一启动单元、第二获取单元和第二升级单元。第一启动单元接收第一系统发送的启动第二系统的指令后,启动第二系统。第二获取单元根据所述启动第二系统的指令将升级文件存入存储区,第二升级单元调取存储区的升级文件对第一系统区的第一系统进行升级。在本发明实施例中,第一系统在无法启动或无法升级时,可以启动第二系统,第二系统能够维持系统运行时所必不可少的基本功能,如本发明实施例中所涉及的升级功能。第二系统在接收到第一系统发送的启动第二系统的指令后,第二系统开始启动并运行。

可选地,在未接收到第一系统发送的启动第二系统的指令之前,第二系统并未运行,也就是第二系统处于未激活或休眠的状态。或者,可选地,第二系统与第一系统同时运行,只是第二系统和第一系统两者在同一时间所运行的程序或指令、实现的功能相互不重叠;或者第二系统与第一系统为异步运行;或者第二系统与第一系统形成主系统和备份系统组成的架构,第二系统和第一系统各自运行的程序、实现的功能不相同。

第二系统运行之后,升级文件会存入存储区。升级文件存储完成后,第二系统会用升级文件替换第一系统区的第一系统文件,完成第一系统的远程升级或恢复操作。由此,即使第一系统升级失败或启动失败,第二系统之后会用升级文件替换第一系统区的第一系统文件,完成第一系统区的远程升级或恢复操作,以使第一系统能够完成升级或者能够恢复正常运行,增强了固件升级过程的可靠性,实现固件的安全升级。

如图13所示,进一步地,嵌入式装置还包括第二子判断单元和第二设置单元。第二子判断单元用于判断第一系统是否升级完成。若第一系统升级完成,第二设置单元将第一系统的标志信息变更为升级成功的标志信息。由此,在第一系统完成升级后,将第一系统的标志信息变更为升级成功的标志信息,可以便于下次再对第一系统升级时,能够根据第一系统上一次的升级状态准确判断第一系统是否能进行后续的升级操作。

如图14所示,在本发明的一个实施例中,多个分区还包括第三系统区,第三系统区设有第三系统。嵌入式装置还包括第二切换单元、第二启动单元、第二判断单元。若第一系统的标志信息为升级成功或升级失败的标志信息,第二切换单元则向第三系统发送启动第三系统的指令,并停止运行第一系统。第二启动单元接收第一系统发送的启动第三系统的指令后,启动第三系统。第二判断单元根据第三系统的标志信息判断第三系统是否满足升级条件。在本发明实施例中,第三系统可以为副系统区,第三系统区内存储有第三系统文件,第三系统也可以实现控制和运算等功能。在第一系统升级失败的情况下,在向第三系统发送启动第三系统启动的指令后,第三系统开始启动并运行。

可选地,在未接收到第一系统发送的启动第三系统的指令之前,第三系统并未运行,也就是第三系统处于未激活或休眠的状态。或者,可选地,第三系统在未接收到第一系统发送的启动第三系统的指令之前,第三系统与第一系统同时运行,只是第三系统和第一系统两者在同一时间所运行的程序或指令、实现的功能相互不重叠;或者第三系统与第一系统为异步运行;或者第三系统与第一系统形成主系统和副系统组成的架构,第三系统和第一系统各自运行的程序、实现的功能不相同。

第三系统启动或运行之后,还需要判断第三系统是否具备升级条件,如果具备升级条件,可以升级第三系统,如果不具备升级条件,则不升级第三系统。在本发明实施例中,系统的标志信息可以用于指示系统的升级状态、启动和/或运行状态等,如,可以用“1”代表可以启动本系统,用“2”代表系统升级成功,用“3”代表系统升级失败。当然也可以用其他的二进制字符或者十六进制字符指示系统的升级状态、启动和/或运行状态等。

当接收到系统升级指令后,可以将第三系统的升级状态作为第三系统是否能升级的条件之一。例如,若读取或检测到第三系统的标志信息为系统升级成功的信息时,则说明第三系统已经完成升级,可以不需要对第三系统进行再次升级。若读取或检测到第三系统的标志信息为系统升级失败的信息时,则说明第三系统在最近一次的升级过程中,产生了升级失败的问题。

当接收到系统升级指令后,也可以将第三系统的运行状态作为第三系统是否能升级的条件之一。例如,若读取或检测到第三系统的标志信息为空闲状态的信息时,则说明第三系统可以进行升级。若读取或检测到第三系统的标志信息为非空闲状态的信息时,则说明第三系统不宜进行升级。

当接收到系统升级指令后,或者也可以将第三系统的启动状态作为第三系统是否能升级的条件之一。例如,若读取或检测到第三系统的标志信息为系统启动成功的信息时,则说明第三系统可以进行升级。若读取或检测到第三系统的标志信息为系统启动中或系统启动失败的信息时,则说明第三系统不宜进行升级。

由此,通过第三系统的标志信息,可以判断第三系统是否处于能稳定升级系统或固件的环境或条件,进而可以根据第三系统所处的不同状态、环境或条件,做出升级或不升级的操作。

如图14所示,在本发明的一个实施例中,嵌入式装置还包括第三获取单元、第三升级单元。若第三系统的标志信息为启动系统的标志信息,第三获取单元则根据所述启动第三系统的指令将升级文件存入存储区。第三升级单元调取存储区的升级文件对第三系统区的第三系统进行升级。在本发明实施例中,若第三系统的标志信息为启动系统的标志信息,则说明第三系统可以启动系统升级过程,第三系统根据升级指令将系统升级文件存入存储区,以备第三系统升级时调取。

如图14所示,在本发明的一个实施例中,嵌入式装置还包括第三子判断单元和第三设置单元。第三子判断单元用于判断第三系统是否升级完成。若第三系统升级完成,第三设置单元将第三系统的标志信息变更为升级成功的标志信息。由此,在第三系统完成升级后,将第三系统的标志信息变更为升级成功的标志信息,可以便于下次再对第三系统升级时,能够根据第三系统上一次的升级状态准确判断第三系统是否能进行后续的升级操作。

如图14所示,在本发明的一个实施例中,多个分区还包括第四系统区,第四系统区设有第四系统。嵌入式装置还包括第三切换单元。若第三系统的标志信息为升级成功或升级失败的标志信息,第三切换单元则向第四系统发送启动第四系统的指令,并停止运行第三系统。在本发明实施例中,第四系统主要为能实现系统能够正常运行所必需的精简系统,可以将其看作为最简系统、备份系统或者冗余系统,或可以将其作为远程升级时使用。在第一系统或第三系统遇到网络连接不稳定、突然断电、接线断电等问题时,可能会导致第一系统或第三系统升级失败、第一系统文件或第三系统文件出现损坏导致启动失败等。若第一系统或第三系统还能正常运行,可以再次对第一系统或第三系统进行升级。或者,优选地,也可以使用第四系统完成固件或系统的升级操作,这能够避免第一系统或第三系统再次进行升级时遇到升级失败的可能,第四系统可以作为冗余系统,用来完成系统或固件的升级程序,增加了升级过程的可靠性,降低了升级过程的故障发生率。与此同时,停止运行第三系统,可以避免第一系统、第三系统和第四系统三者同时运行而产生的相互干扰的问题,进一步提高了系统运行的稳定性和可靠性。

如图14所示,在本发明的一个实施例中,嵌入式装置还包括第三启动单元、第四获取单元、第四升级单元。第三启动单元接收第三系统发送的启动第四系统的指令后,启动第四系统。第四获取单元根据所述启动第四系统的指令将升级文件存入存储区。第四升级单元调取存储区的升级文件对第一系统区的第一系统进行升级,或第四升级单元调取存储区的升级文件对第三系统区的第三系统进行升级。在本发明实施例中,第三系统在无法启动或无法升级时,可以启动第四系统,第四系统能够维持系统运行时所必不可少的基本功能,如本发明实施例中所涉及的升级功能。在接收到第三系统发送的启动第四系统的指令后,第四系统开始启动并运行。

可选地,在未接收到第三系统发送的启动第四系统的指令之前,第四系统并未运行,也就是第四系统处于未激活或休眠的状态。或者,可选地,第四系统与第三系统同时运行,只是第四系统和第三系统两者在同一时间所运行的程序或指令、实现的功能相互不重叠;可选地,或者第三系统与第四系统为异步运行;或者第四系统与第三系统形成主系统和备份系统组成的架构,第四系统和第三系统各自运行的程序、实现的功能不相同。

第四系统运行之后,升级文件会存入存储区。升级文件存储完成后,第四系统会用升级文件替换第一系统区的第一系统文件,完成第一系统的远程升级或恢复操作。或者,第四系统会用升级文件替换第三系统区的第三系统文件,完成第三系统的远程升级或恢复操作。

由此,即使第一系统和第三系统升级失败或启动失败,第四系统之后会用升级文件替换第一系统区的第一系统文件或第三系统区的第三系统文件,完成第一系统区或第三系统区的远程升级或恢复操作,以使第一系统或第三系统能够完成升级或者能够恢复正常运行,增强了固件升级过程的可靠性,实现固件的安全升级。

如图14所示,进一步地,嵌入式装置还包括第四子判断单元和第四设置单元。第四子判断单元用于判断第一系统或第二系统是否升级完成。若第一系统升级完成,第四设置单元将第一系统的标志信息变更为升级成功的标志信息;若第三系统升级完成,第四设置单元将第三系统的标志信息变更为升级成功的标志信息。由此,在第一系统或第三系统完成升级后,将第一系统或第三系统的标志信息变更为升级成功的标志信息,可以便于下次再对第一系统或第三系统升级时,能够根据第一系统或第三系统的上一次升级状态准确判断是否需要对第一系统或第三系统进行后续的升级操作。

本发明第三实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上所述的固件升级方法。由于本发明实施例的固件升级方法具有上述的有益效果,而且本发明实施例的计算机可读存储介质与本发明实施例的固件升级方法具有相同的技术构思,因此本发明实施例的计算机可读存储介质也具有相应的有益效果,即:当需要对固件进行升级时,在第一系统满足升级条件的情况下,可以将升级文件存入存储区,并调取存储区的升级文件对第一系统进行升级,从而完成对固件的升级。现有技术中的固件升级过程在遇到网络连接不稳定的情况时,不仅升级文件传输过程会中断,而且有时也会导致固件无法正常运行。而在本发明实施例的固件升级方法中,若出现网络连接不稳定等各种问题时,升级文件的传输过程将会中止,但是不会影响原始固件的正常运行。待网络连接恢复正常后,升级文件将会继续传输直至全部传输完成,此时将会调取存储区的升级文件对第一系统区的第一系统进行升级。因此,本发明实施例的固件升级方法避免了现有技术因网络连接不稳定而导致升级易失败和固件无法正常运行的问题。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。

以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

相关技术
  • 嵌入式系统的固件升级方法以及固件升级装置
  • 嵌入式设备的固件升级方法、装置、终端及存储介质
技术分类

06120112741044