引导程序升级方法、嵌入式设备、控制设备及嵌入式系统与流程

文档序号:12484849阅读:501来源:国知局
引导程序升级方法、嵌入式设备、控制设备及嵌入式系统与流程

本发明涉及计算机技术,尤指一种引导程序(BOOT)升级方法、嵌入式设备、控制设备及嵌入式系统。



背景技术:

随着嵌入式系统(Embedded system,简称为:ES)在通信及工业控制领域的广泛应用,为了提高产品的生命周期以及适应新的业务需求,通常需要对嵌入式系统进行现场升级,其中一项重要的升级内容包括对嵌入式设备中引导程序的升级。

嵌入式设备的引导程序通常存放于非易失性存储器中,例如NOR FLASH和NAND FLASH等器件中,引导程序的主要功能包括初始化中央处理器(Central Processing Unit,简称为:CPU)和显示数据随机存储器(Display Data Random Access Memory,简称为:DDRAM)等器件,然后引导操作系统(Operating System,简称为:OS)或应用程序启动。引导程序是嵌入式设备上电后的运行的第一段程序,若该引导程序升级失败则会造成嵌入式设备无法启动,例如,在使用引导程序自身的命令实现自我更新进行升级的过程中,如果升级失败,则会造成嵌入式设备无法启动。基于上述问题,为了保证引导程序升级过程中的安全性和可靠性,目前通常使用的引导程序的升级方式中可以采用烧录器,具体通过烧录器将待升级版本的引导程序烧录到嵌入式设备的存储器中,同时需要借助附加的烧录软件。

然而,在采用烧录器对引导程序进行升级的过程中,由于嵌入式设备中与烧录器连接的接口通常设置于该嵌入式设备的内部,因此需要拆卸该嵌入式设备的外壳以实现升级,而导致升级引导程序的操作方式比较复杂,工作量大的问题。



技术实现要素:

为了解决上述技术问题,本发明提供了一种引导程序升级方法、嵌入式设备、控制设备及嵌入式系统,以解决采用烧录器对引导程序进行升级的过程中,由于需要拆卸嵌入式设备的外壳以实现升级,而导致升级引导程序的操作方式比较复杂,工作量大的问题。

第一方面,本发明提供一种引导程序升级方法,包括:

接收控制设备发送的升级指示消息,所述升级指示消息用于指示嵌入式设备监听所述嵌入式设备与所述控制设备之间的串口;

通过所述串口接收所述控制设备发送的升级文件,所述升级文件为所述控制设备根据用户选择的文件路径计算出的,所述升级文件包括文件长度、校验字段和文件数据;

将所述升级文件写入所述嵌入式设备的存储器中,以替换所述存储器中的当前引导程序。

在第一方面的第一种可能的实现方式中,所述通过所述串口接收所述控制设备发送的升级文件之后,还包括:

将通过所述串口接收到的升级文件写入所述嵌入式设备的内存中,并对所述升级文件进行校验;

当对所述升级文件校验成功后,将所述升级文件写入所述嵌入式设备的存储器中;

当对所述升级文件校验失败后,加载并启动所述当前引导程序。

根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述升级指示消息为所述控制设备在所述控制设备中的控制程序为升级模式下发送的,所述接收控制设备发送的升级指示消息之前,还包括:

通过处理器CPU执行所述存储器中的启动引导程序,并通过所述启动引导程序向所述控制设备发送第一问询消息;

当在预置的时间内接收到所述升级指示消息,根据所述升级指示消息开始监听所述串口;

当在预置的时间内没有接收到所述升级指示消息,加载并启动所述当前引导程序。

根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收控制设备发送的升级指示消息之前,还包括:

接收所述控制设备发送的备份指示消息,所述备份指示消息用于指示所述控制设备开始监听所述串口;

根据所述备份指示消息读取所述存储器中的所述当前引导程序,并计算所述当前引导程序的文件长度、校验字段和文件数据;

向所述控制设备发送备份文件,以使所述控制设备将接收到的所述备份文件写入所述控制设备的内存中,并对所述备份文件进行校验,在校验成功后,将所述备份文件保存到所述用户在所述控制设备中预先设置的存储位置中,其中,所述备份文件包括对所述当前引导程序的计算结果。

根据第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述备份指示消息为所述控制设备在所述控制程序为备份模式下发送的,所述接收所述控制设备发送的备份指示消息之前,还包括:

通过CPU执行所述存储器中的所述启动引导程序,并通过所述启动引导程序向所述控制设备发送第二问询消息;

当在预置的时间内接收到所述备份指示消息,根据所述备份指示消息指示所述控制设备开始监听所述串口;

当在预置的时间内没有接收到所述备份指示消息,加载并启动所述当前引导程序。

根据第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述向所述控制设备发送备份文件之后,还包括:

接收所述控制设备发送的备份失败消息,所述备份失败消息用于指示所述控制设备对所述备份文件校验失败。

根据第一方面的第三种到第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,在将所述升级文件写入所述嵌入式设备的存储器的过程中发生升级错误,所述方法还包括:

重新启动所述嵌入式设备,并通过所述CPU再次执行所述启动引导程序后,通过所述启动引导程序向所述控制设备发送所述第三问询消息;

接收所述控制设备发送的恢复指示消息,所述恢复指示消息用于指示所述嵌入式设备监听所述串口;

通过所述串口接收所述控制设备发送的恢复文件,所述恢复文件为所述控制设备根据所述用户选择的文件路径计算出的,所述恢复文件包括文件长度、校验字段和文件数据;

将所述恢复文件写入所述嵌入式设备的存储器中,以还原在写入所述升级文件前所述嵌入式设备的存储器中的引导程序。

根据第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述恢复文件为在所述控制设备中存储的所述备份文件中选择出的其中一个备份文件。

第二方面,本发明提供一种引导程序升级方法,包括:

向嵌入式设备发送升级指示消息,所述升级指示消息用于指示所述嵌入式设备监听所述嵌入式设备与所述控制设备之间的串口;

根据用户选择的文件路径计算升级文件的文件长度、校验字段和文件数据;

通过所述串口向所述嵌入式设备发送所述计算出的升级文件,使得所述嵌入式设备将所述升级文件写入所述嵌入式设备的存储器中,以替换所述存储器中的当前引导程序。

在第二方面的第一种可能的实现方式中,所述向嵌入式设备发送升级指示消息之前,还包括:

启动所述控制设备的控制程序,并在所述控制程序上选择升级模式;

通过所述控制程序接收所述嵌入式设备发送的第一问询消息,所述第一问询消息用于提示所述控制设备对所述嵌入式设备中的所述当前引导程序进行升级。

根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述向嵌入式设备发送升级指示消息之前,还包括:

向所述嵌入式设备发送备份指示消息,所述备份指示消息用于指示所述嵌入式设备向所述终端发送备份文件;

通过所述串口接收所述嵌入式设备发送的备份文件,所述备份文件包括所述嵌入式设备的存储器中的所述当前引导程序的文件长度、校验字段和文件数据;

将所述接收到的备份文件写入所述控制设备的内存中,并对所述备份文件进行校验;

当对所述备份文件校验成功后,将所述备份文件保存到所述用户在所述控制设备中预先设置的存储位置中;

当对所述备份文件校验失败后,向所述嵌入式设备发送备份失败消息。

根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述向所述嵌入式设备发送备份指示消息之前,还包括:

启动所述控制设备的控制程序,并在所述控制程序上选择备份模式;

通过所述控制程序接收所述嵌入式设备发送的第二问询消息,所述第二问询消息用于提示所述控制设备对所述嵌入式设备中的所述当前引导程序进行备份。

根据第二方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述通过所述串口向所述嵌入式设备发送所述计算出的升级文件之后,还包括:

通过所述控制程序接收所述嵌入式设备发送的第三问询消息,所述第三询问消息用于指示所述嵌入式设备对所述当前引导程序升级失败;

向所述嵌入式设备发送恢复指示消息,所述恢复指示消息用于指示所述嵌入式设备监听所述串口;

根据所述用户选择的文件路径计算恢复文件的文件长度、校验字段和文件数据;

通过所述串口向所述嵌入式设备发送所述恢复文件,使得所述嵌入式设备将所述恢复文件写入所述嵌入式设备的存储器中,以还原在写入所述升级文件前所述嵌入式设备的存储器中的引导程序。

根据第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述恢复文件为在所述控制设备中存储的所述备份文件中选择出的其中一个 备份文件。

第三方面,本发明提供一种嵌入式设备,包括:

接收模块,用于接收控制设备发送的升级指示消息,所述升级指示消息用于指示所述接收模块监听所述嵌入式设备与所述控制设备之间的串口;

所述接收模块,还用于通过所述串口接收所述控制设备发送的升级文件,所述升级文件为所述控制设备根据用户选择的文件路径计算出的,所述升级文件包括文件长度、校验字段和文件数据;

存储模块,用于将所述接收模块接收到的升级文件写入所述嵌入式设备的存储器中,以替换所述存储器中的当前引导程序。

在第三方面的第一种可能的实现方式中,所述存储模块包括:存储单元,用于在所述接收模块接收到所述控制设备发送的所述升级文件之后,将所述升级文件写入所述嵌入式设备的内存中;

校验单元,用于对所述存储单元写入所述嵌入式设备的内存中的升级文件进行校验;

所述存储单元,还用于在所述校验单元对所述升级文件校验成功后,将所述升级文件写入所述嵌入式设备的存储器中;

所述校验单元,还用于在对所述升级文件校验失败后,加载并启动所述当前引导程序。

根据第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述升级指示消息为所述控制设备在所述控制设备中的控制程序为升级模式下发送的,所述嵌入式设备还包括:处理模块,用于在所述接收模块接收控制设备发送的升级指示消息之前,通过处理器CPU执行所述存储器中的启动引导程序;

发送模块,用于通过所述启动引导程序向所述控制设备发送第一问询消息;

所述处理模块,还用于当所述接收模块在预置的时间内接收到所述升级指示消息,根据所述接收模块接收的升级指示消息开始监听所述串口;

所述处理模块,还用于当所述接收模块在预置的时间内没有接收到所述 升级指示消息,加载并启动所述当前引导程序。

根据第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收模块,还用于在接收所述控制设备发送的升级指示消息之前,接收所述控制设备发送的备份指示消息,所述备份指示消息用于指示所述控制设备开始监听所述串口;

所述嵌入式设备还包括:计算模块,用于根据所述接收模块接收的备份指示消息读取所述存储器中的所述当前引导程序,并计算所述当前引导程序的文件长度、校验字段和文件数据;

所述发送模块,还用于向所述控制设备发送备份文件,以使所述控制设备将接收到的所述备份文件写入所述控制设备的内存中,并对所述备份文件进行校验,在校验成功后,将所述备份文件保存到所述用户在所述控制设备中预先设置的存储位置中,其中,所述备份文件包括对所述当前引导程序的计算结果。

根据第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述备份指示消息为所述控制设备在所述控制程序为备份模式下发送的,所述处理模块,还用于在所述接收模块接收所述控制设备发送的备份指示消息之前,通过CPU执行所述存储器中的所述启动引导程序;

所述发送模块,还用于通过所述启动引导程序向所述控制设备发送第二问询消息;

所述处理模块,还用于当所述接收模块在预置的时间内接收到所述备份指示消息,根据所述接收模块接收的备份指示消息指示所述控制设备开始监听所述串口;

所述处理模块,还用于当所述接收模块在预置的时间内没有接收到所述备份指示消息,加载并启动所述当前引导程序。

根据第三方面的第三种可能的实现方式,在第五种可能的实现方式中,所述接收模块,还用于在所述发送模块向所述控制设备发送备份文件之后,接收所述控制设备发送的备份失败消息,所述备份失败消息用于指示所述控制设备对所述备份文件校验失败。

根据第三方面的第三种到第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,所述处理模块,还用于在所述存储模块将所述升级文件写入所述嵌入式设备的存储器的过程中发生升级错误时,重新启动所述嵌入式设备,并通过所述CPU再次执行所述启动引导程序;

所述发送模块,还用于通过所述启动引导程序向所述控制设备发送所述第三问询消息;

所述接收模块,还用于接收所述控制设备发送的恢复指示消息,所述恢复指示消息用于指示所述嵌入式设备监听所述串口,并通过所述串口接收所述控制设备发送的恢复文件,所述恢复文件为所述控制设备根据所述用户选择的文件路径计算出的,所述恢复文件包括文件长度、校验字段和文件数据;

存储模块,还用于将所述恢复文件写入所述嵌入式设备的存储器中,以还原在写入所述升级文件前所述嵌入式设备的存储器中的引导程序。

根据第三方面的第六种可能的实现方式,在第七种可能的实现方式中,所述恢复文件为在所述控制设备中存储的所述备份文件中选择出的其中一个备份文件。

第四方面,本发明提供一种控制设备,包括:

发送模块,用于向嵌入式设备发送升级指示消息,所述升级指示消息用于指示所述嵌入式设备监听所述嵌入式设备与所述控制设备之间的串口;

计算模块,用于根据用户选择的文件路径计算升级文件的文件长度、校验字段和文件数据;

所述发送模块,还用于通过所述串口向所述嵌入式设备发送所述计算模块计算出的升级文件,使得所述嵌入式设备将所述升级文件写入所述嵌入式设备的存储器中,以替换所述存储器中的当前引导程序。

在第四方面的第一种可能的实现方式中,所述控制设备还包括:启动模块,用于在所述发送模块向所述嵌入式设备发送升级指示消息之前,启动所述控制设备的控制程序,并在所述控制程序上选择升级模式;

接收模块,用于通过所述控制程序接收所述嵌入式设备发送的第一问询消息,所述第一问询消息用于提示所述控制设备对所述嵌入式设备中的所述 当前引导程序进行升级。

根据第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述发送模块,还用于在向所述嵌入式设备发送升级指示消息之前,向所述嵌入式设备发送备份指示消息,所述备份指示消息用于指示所述嵌入式设备向所述终端发送备份文件;

所述接收模块,还用于通过所述串口接收所述嵌入式设备发送的备份文件,所述备份文件包括所述嵌入式设备的存储器中的所述当前引导程序的文件长度、校验字段和文件数据;

所述控制设备还包括:存储模块,用于将所述接收模块接收到的备份文件写入所述控制设备的内存中;

校验模块,用于对所述存储模块写入所述控制设备的内存中的备份文件进行校验;

所述存储模块,还用于在所述校验模块对所述备份文件校验成功后,将所述备份文件保存到所述用户在所述控制设备中预先设置的存储位置中;

所述发送模块,还用于在所述校验模块对所述备份文件校验失败后,向所述嵌入式设备发送备份失败消息。

根据第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述启动模块,还用于在所述发送模块向所述嵌入式设备发送备份指示消息之前,启动所述控制设备的控制程序,并在所述控制设备的控制程序上选择备份模式;

所述接收模块,还用于通过所述控制程序接收所述嵌入式设备发送的第二问询消息,所述第二问询消息用于提示所述控制设备对所述嵌入式设备中的所述当前引导程序进行备份。

根据第四方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述接收模块,还用于在所述发送模块通过所述串口向所述嵌入式设备发送所述计算出的升级文件之后,通过所述控制程序接收所述嵌入式设备发送的第三问询消息,所述第三询问消息用于指示所述嵌入式设备对所述当前引导程序升级失败;

所述发送模块,还用于向所述嵌入式设备发送恢复指示消息,所述恢复指示消息用于指示所述嵌入式设备监听所述串口;

所述计算模块,还用于根据所述用户选择的文件路径计算恢复文件的文件长度、校验字段和文件数据;

所述发送模块,还用于通过所述串口向所述嵌入式设备发送所述计算模块计算出的恢复文件,使得所述嵌入式设备将所述恢复文件写入所述嵌入式设备的存储器中,以还原在写入所述升级文件前所述嵌入式设备的存储器中的引导程序。

根据第四方面的第四种可能的实现方式,在第五种可能的实现方式中,所述恢复文件为在所述控制设备中存储的所述备份文件中选择出的其中一个备份文件。

第五方面,本发明提供一种嵌入式系统,包括:如上述第三方面中任一项所述的嵌入式设备和上述第四方面中任一项所述的控制设备。

本发明提供的引导程序升级方法、嵌入式设备、控制设备及嵌入式系统,通过接收终端发送的升级指示消息监听嵌入式设备与该控制设备之前的串口,并通过该串口接收控制设备发送的升级文件,该升级文件为控制设备根据用户选择的文件路径计算出的,从而将该升级文件写入嵌入式设备的存储器,以替换存储器中的当前引导程序,本实施例通过将控制设备中的升级文件下载到嵌入式设备的存储器中,实现对该嵌入式设备中的引导程序进行升级的目标;本实施例提供的引导程序升级方法,解决了采用烧录器对引导程序进行升级的过程中,由于需要拆卸嵌入式设备的外壳来实现升级,而导致升级引导程序的操作方式比较复杂,工作量大的问题。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例提供的一种引导程序升级方法的流程图;

图2为执行图1所提供的引导程序升级方法的一种应用场景;

图3为本发明实施例提供的另一种引导程序升级方法的流程图;

图4为本发明实施例提供的又一种引导程序升级方法的流程图;

图5为本发明实施例提供的再一种引导程序升级方法的流程图;

图6为本发明实施例提供的还一种引导程序升级方法的流程图;

图7为本发明实施例提供的一种引导程序升级方法的交互执行的流程图;

图8为本发明实施例提供的一种嵌入式设备的结构示意图;

图9为本发明实施例提供的另一种嵌入式设备的结构示意图;

图10为本发明实施例提供的一种控制设备的结构示意图;

图11为本发明实施例提供的另一种控制设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1为本发明实施例提供的一种引导程序升级方法的流程图。本实施例提供的引导程序升级方法适用于对嵌入式系统中的引导程序进行升级的情况中,该方法可以由嵌入式设备执行,该嵌入式设备通常以硬件和软件的方法来实现,该嵌入式设备通过与嵌入式系统中的控制设备的消息交互和数据交互实现引导程序的升级。如图1所示,本实施例的方法可以包括:

S110,接收控制设备发送的升级指示消息,该升级指示消息用于指示嵌入式设备监听该嵌入式设备与控制设备之间的串口。

如图2所示,为执行图1所提供的引导程序升级方法的一种应用场景。本实施例提供的方法具体由嵌入式设备100和控制设备200执行,嵌入式设 备100例如可以为交换机,电视机顶盒等工业设备,控制设备200例如可以为一台个人计算机(Personal Computer,简称为:PC),可以通过串口线缆300连接嵌入式设备100与控制设备200之间的串口;其中,嵌入式设备100中包括通过总线相连接的CPU110和存储器120,存储器120中存储有当前引导程序121和启动引导程序122,控制设备200中具有控制程序210。在本实施例中,嵌入式设备上电后,也就是在S110之前还包括:S100,通过CPU执行存储器中的启动引导程序,并通过该启动引导程序向控制设备发送第一问询消息;该第一问询消息可以为一个问询握手信号,例如为0x5a5a5a5a,在其发送该第一问询消息后,等待控制设备返回的应答信号,即等待升级指示消息,例如为0x9a9a9a9a,该嵌入式设备在接收到升级指示消息前,并不明确是需要进行引导程序的升级操作。此时,控制设备在其控制程序设置为升级模式下接收到该第一问询消息,因此,该控制设备可以发起对嵌入式设备的引导程序的升级流程,从而通过用户的选择确定是否发送升级指示消息;具体地,当在预置的时间内接收到升级指示消息,嵌入式设备则根据该升级指示消息开始监听串口,即开始执行引导程序的升级操作;在另一种情况下,当在预置的时间内没有接收到升级指示消息,嵌入式设备加载并启动上述当前引导程序,此时,嵌入式设备进入正常启动程序,即说明没有对嵌入式设备的当前引导程序进行升级,例如嵌入式设备在发送第一问询消息后可以预留3秒(s)的等待时间,以确定是进入升级引导程序的流程,还是进入正常工作的流程。

需要说明的是,本实施例中嵌入式设备100的存储器120中可以划分有第一引导程序区域121a和第二引导程序区域122a,其中,当前引导程序121具体为待升级的引导程序,也就是引导OS或应用程序启动的主要程序,其设置于第一引导程序区域121a中,启动引导程序122为嵌入式设备100上电后,CPU110开始执行的程序,例如可以是进行预处理的程序,其设置于第二引导程序区域122a中;通过将不同功能的引导程序设置于存储器的不同区域中,明确待升级引导程序的具体位置,以提高升级引导程序的可靠性。

S120,通过串口接收控制设备发送的升级文件,该升级文件为控制设备根据用户选择的文件路径计算出的,该升级文件包括文件长度、校验字段和 文件数据。

在本实施例中,控制设备在发送升级指示消息后,通过用户预先指定的文件路径开始计算升级文件的文件长度、校验字段和文件数据,文件长度和,校验字段通常均为4个字节(byte),例如用户可以在开启控制设备的控制程序后,选择升级模式,并指定待升级引导文件的路径。在计算并获取到升级文件的内容后,为了保证嵌入式设备已经解析出当前为升级流程,并已进入监听状态,通常可以等待一定的时间后开始发送上述计算出的升级文件,从而保证嵌入式设备可以通过串口接收到该升级文件。

S130,将升级文件写入嵌入式设备的存储器中,以替换该存储器中的当前引导程序。

在本实施例中,嵌入式设备通过将其接收到的升级文件写入到存储器中,实现引导程序的升级,该升级文件实际上就是较高版本的引导程序,通过该较高版本的引导程序替换掉当前嵌入式设备中的引导程序,以完成引导程序的升级流程。

需要说明的是,专利申请号为“CN201210436671.3”,发明名称为“一种高效嵌入式系统调试方法”的专利也提供了一种升级引导程序的方法,上述专利提供的方法存在以下缺陷:一方面,利用预置在存储器(Flash)中的starter程序通过串口加载引导程序,然后手动输入命令对Flash中的引导程序进行更新,该方式的操作复杂,容易出错,并且不能对嵌入式设备内的引导程序进行备份,在升级失败的情况下无法回退,只能应用于开发和测试环节中,不适用于现场升级引导程序的场景中;另一方面、该专利提出的触发引导程序从串口加载的操作方式具体通过触发功能键来实现,具体在starter程序启动时通过检测功能键是否被触发来决定是否从串口加载,然后通过电脑软件发送引导程序的文件,该方法需要严格控制嵌入式设备及按键的触发时间,尤其在嵌入式设备与控制主机距离较远的情况下非常难以操作。

本实施例所提供的引导程序升级方法,通过接收终端发送的升级指示消息监听嵌入式设备与该控制设备之前的串口,并通过该串口接收控制设备发送的升级文件,该升级文件为控制设备根据用户选择的文件路径计算出的,从而将该升级文件写入嵌入式设备的存储器,以替换存储器中的当前引导程 序,本实施例通过将控制设备中的升级文件下载到嵌入式设备的存储器中,实现对该嵌入式设备中的引导程序进行升级的目标;本实施例提供的引导程序升级方法,解决了采用烧录器对引导程序进行升级的过程中,由于需要拆卸嵌入式设备的外壳来实现升级,而导致升级引导程序的操作方式比较复杂,工作量大的问题。

需要说明的是,本实施例中的嵌入式设备,仅在初始制作其存储器时,需要通过烧录器将当前引导程序和启动引导程序烧录到存储器中,在将该存储器安装于嵌入式设备之后,则不需要通过拆卸设备来实现升级引导程序的目的;本实施例提供的方法在现场升级引导程序时,可以直接通过对控制设备中控制程序的设置,在嵌入式设备上电后自动实现引导程序的升级操作,升级期间不需要操作人员的干预,与现有技术相比,操作过程更加安全、便捷,保证了引导程序升级过程中的可靠性和安全性。并且有些嵌入式设备中可能并没有预留与烧录器连接的接口,若采用通过烧录器的方式升级引导程序,则需要返厂更换嵌入式设备的存储器芯片。另外,本实施例中对控制设备中控制程序的设置,来实现升级引导程序的方式,显然比上述专利中手动输入命令对Flash中的引导程序进行更新的方式更加易于操作,同样比通过触发功能键来触发引导程序从串口加载的操作方式更好控制,易于实现。

进一步地,图3为本发明实施例提供的另一种引导程序升级方法的流程图。在上述图1所示实施例的基础上,本实施例提供的方法在S120之后还包括:S121,将通过串口接收到的升级文件写入嵌入式设备的内存中,并对该升级文件进行校验;相应地,该方法还包括:S122,判断对升级文件的校验是否成功;若成功,则执行S130,若失败,则执行S123。

S123,加载并启动当前引导程序。

本实施例中,在对升级文件校验成功后,继续执行升级流程,即将升级文件写入嵌入式设备的存储器中,在对升级文件校验失败后,也不会影响该嵌入式设备的使用,即若升级失败可以通过第一引导程序区域中的当前引导程序启动嵌入式设备,嵌入式设备进入正常工作流程中,进一步保证了升级引导程序的安全性和可靠性。

图4为本发明实施例提供的又一种引导程序升级方法的流程图。本实施 例提供的引导程序升级方法适用于对嵌入式系统中的引导程序进行备份和升级的情况中,该方法可以由嵌入式设备执行,该嵌入式设备通常以硬件和软件的方法来实现,该嵌入式设备通过与嵌入式系统中的控制设备的消息交互和数据交互实现引导程序的升级。如图4所示,本实施例的方法可以包括:

S210,接收控制设备发送的备份指示消息,该备份指示消息用于指示控制设备开始监听串口。

本实施例提供的方法同样可以应用于图2所示的应用场景中,与图1所示实例类似地,嵌入式设备上电后,也就是在S210之前还包括:S200,通过CPU执行存储器中的启动引导程序,并通过该启动引导程序向控制设备发送第二问询消息,该第二问询消息的内容和作用与上述实施例中的第一问询消息相同,故在此不再赘述。此时,控制设备在其控制程序设置为备份模式下接收到该第二问询消息,因此,该控制设备可以发起对嵌入式设备的引导程序的备份流程,从而通过用户的选择确定是否发送备份指示消息,该备份指示消息例如为0x95959595;具体地,当在预置的时间内接收到备份指示消息,根据该备份指示消息指示控制设备开始监听串口,即开始执行引导程序的备份操作;在另一种情况下,当在预置的时间内没有接收到备份指示消息,嵌入式设备加载并启动当前引导程序,此时,嵌入式设备进入正常启动程序,即说明没有对嵌入式设备的当前引导程序进行备份。

S220,根据备份指示消息读取存储器中的当前引导程序,并计算当前引导程序的文件长度、校验字段和文件数据。

S230,向控制设备发送备份文件,以使控制设备将接收到的备份文件写入控制设备的内存中,并对备份文件进行校验,在校验成功后,将备份文件保存到用户在控制设备中预先设置的存储位置中,其中,该备份文件包括对当前引导程序的计算结果。

在本实施中,嵌入式设备在解析该备份指示消息后,确定需要开始执行备份流程,则通过读取存储器中的第一引导程序区域,计算出当前引导程序的文件长度、校验字段和文件数据,从而向控制设备发送备份文件,该备份文件包括对当前引导程序的计算结果;类似地,控制设备在接收到该备份文件后同样可以对写入内存中备份文件进行校验,并将校验成功的备份文件保 存到用户在控制设备中预先设置的存储位置中,例如用户可以在开启控制设备的控制程序后,选择备份模式,并指定要保存的备份文件的路径,该备份文件例如可以保存到BOOT.bak中。

可选地,若控制设备对备份文件校验失败,则本实施例提供的方法还包括:S240,接收所述控制设备发送的备份失败消息。

本实施例提供的引导程序升级方法,在对嵌入式设备中的当前引导程序进行备份后,可以继续对嵌入式设备中的当前引导程序进行升级,在具体实现中,结束备份操作后,重新启动嵌入式设备开始执行升级操作,升级的具体方式包括:

S250,接收控制设备发送的升级指示消息,该升级指示消息用于指示嵌入式设备监听串口。

与上述实施例相同地,是在S250之前还包括:S231,重新启动嵌入式设备,通过CPU再次执行存储器中的启动引导程序,并通过该启动引导程序向控制设备发送第一问询消息。

S260,通过串口接收控制设备发送的升级文件,该升级文件为控制设备根据用户选择的文件路径计算出的,该升级文件包括文件长度、校验字段和文件数据。

S270,将升级文件写入嵌入式设备的存储器中,以替换该存储器中的当前引导程序。

具体地,S250~S270的实现方式可以参照图1所示实施例中S110~S130。

进一步地,本实施例提供的方法,在执行S270的过程中发生升级错误的情况下,还可以对嵌入式设备中第一引导程序区域中的内容进行恢复,即退回到升级前的状态,例如可以使用S230中保存到BOOT.bak中的备份文件,重新执行一次升级流程,本实施例的具体实现方式可以包括以下步骤:

1)、重新启动嵌入式设备,并通过CPU再次执行启动引导程序后,通过启动引导程序向控制设备发送第三问询消息。

2)、接收控制设备发送的恢复指示消息,恢复指示消息用于指示嵌入式设备监听串口。

3)、通过串口接收控制设备发送的恢复文件,恢复文件为控制设备根据用户选择的文件路径计算出的,恢复文件包括文件长度、校验字段和文件数据。

4)、将恢复文件写入嵌入式设备的存储器中,以还原在写入升级文件前嵌入式设备的存储器中的引导程序。

在本实施例中,在在升级失败后需要重启嵌入式设备,通过CPU再次执行启动引导程序,发送第三问询消息时控制设备的控制程序同样为升级模式,因此,嵌入式设备接收到恢复指示消息后的处理方式与图1所示实施例中接收到升级指示消息的处理方式类似,均是采用控制设备发送的文件内容替换存储器中现有的引导程序;不同的是,本实施例中用户在控制设备中选择的文件路径可以是上述通过备份流程存储到控制设备中的备份文件的路径,即该恢复文件为在控制设备中存储的备份文件中选择出的其中一个备份文件,例如可以是上述S230中保存到BOOT.bak中的备份文件。

本实施例提供的方法,在对嵌入式设备进行升级操作失败时,可以利用存储到控制设备中的备份文件,重新执行一次升级操作,即可将嵌入式设备中的引导程序恢复到执行升级操作之前,存储器中具有的引导程序。因此本实施例提供的方法,在执行升级操作前对嵌入式设备中的当前引导程序进行备份的方式,解决了升级失败无法退回的问题,从而实现了将引导程序升级方法应用于现场升级的场景中,在进一步提高了引导程序升级过程中的安全性的同时,保证该方法具有可回溯性,并增加了该方法的使用范围。

图5为本发明实施例提供的再一种引导程序升级方法的流程图。本实施例提供的引导程序升级方法适用于对嵌入式系统中的引导程序进行升级的情况中,该方法可以由控制设备执行,该控制设备通常以硬件和软件的方法来实现,该控制设备通过与嵌入式系统中的嵌入式设备的消息交互和数据交互实现引导程序的升级。如图5所示,本实施例的方法可以包括:

S310,向嵌入式设备发送升级指示消息,该升级指示消息用于指示嵌入式设备监听嵌入式设备与控制设备之间的串口。

本实施例提供的方法同样可以应用于图2所示的应用场景中,在S310之前还包括:S300,启动控制设备的控制程序,并在该控制程序上选择升级 模式;于此同时,嵌入式设备上电后,在CPU启动上述各实施例中所述的启动引导程序后,向控制设备发送第一问询信号,相应地,本实施例中还包括:S301,通过控制程序接收嵌入式设备发送的第一问询消息,第一问询消息用于提示控制设备对嵌入式设备中的当前引导程序进行升级。控制设备通过用户的选择确定是否发送升级指示消息,在其发送该升级指示消息的情况下,通过该消息向嵌入式设备指示控制设备已进入升级流程,指示嵌入式设备开始监听串口,以随时接收控制设备发送的升级文件。

S320,根据用户选择的文件路径计算升级文件的文件长度、校验字段和文件数据。

在本实施例中,用户可以在选择升级模式后,指定待升级引导文件的路径,从而嵌入式设备根据用户已指定的文件路径计算并获取升级文件的内容,该升级文件的内容与上述各实施例中相同。

S330,通过串口向嵌入式设备发送计算出的升级文件,使得嵌入式设备将升级文件写入嵌入式设备的存储器中,以替换存储器中的当前引导程序。

在本实施例中,为了保证嵌入式设备已经解析出当前为升级流程,并已进入监听状态,通常可以在计算出升级文件后等待一定的时间之后执行发送升级文件的操作,例如在S320到S330之间可以设定3s的延迟时间,从而保证嵌入式设备可以通过串口接收到该升级文件。

本实施例所提供的引导程序升级方法,通过向嵌入式设备发送升级指示消息,以指示嵌入式设备开始监听嵌入式设备与该控制设备之前的串口,于此同时,终端根据用户选择的文件路径计算出升级文件的内容,从而将该升级文件通过串口发送给嵌入式设备,使得该嵌入式设备将升级文件写入其存储器中,以替换存储器中的当前引导程序,本实施例通过将控制设备中的升级文件下载到嵌入式设备的存储器中,实现对该嵌入式设备中的引导程序进行升级的目标;本实施例提供的引导程序升级方法,解决了采用烧录器对引导程序进行升级的过程中,由于需要拆卸嵌入式设备的外壳来实现升级,而导致升级引导程序的操作方式比较复杂,工作量大的问题。

需要说明的是,本实施例提供的方法中,嵌入式设备发送第一问询消息后,根据在预置的时间内是否接收到升级指示消息执行的相应操作,以及在 接收到升级文件保存到内存后,对该升级文件进行验证,并且根据验证结果执行的相应操作,均与上述图1到图4所示实施例中的操作方式相同,并且具有相同的有益效果,故在此不再赘述。

图6为本发明实施例提供的还一种引导程序升级方法的流程图。与图4所示实施例类似地,本实施例提供的引导程序升级方法适用于对嵌入式系统中的引导程序进行备份和升级的情况中。如图6所示,本实施例的方法可以包括:

S410,向嵌入式设备发送备份指示消息,该备份指示消息用于指示嵌入式设备向终端发送备份文件。

在本实施例中,在S410之前同样还包括:S400,启动控制设备的控制程序,并在该控制程序上选择备份模式;S401,通过控制程序接收嵌入式设备发送的第二问询消息,第二问询消息用于提示控制设备对嵌入式设备中的当前引导程序进行备份。控制设备通过用户的选择确定是否发送备份指示消息,在其发送该备份指示消息的情况下,通过该消息向嵌入式设备指示控制设备已进入备份流程,指示嵌入式设备计算其存储器中的当期引导程序的文件长度、校验字段和文件数据,该计算结果的内容即是备份文件,并向控制设备发送该备份文件。

S420,通过串口接收嵌入式设备发送的备份文件,该备份文件包括嵌入式设备的存储器中的当前引导程序的文件长度、校验字段和文件数据。

S430,将接收到的备份文件写入控制设备的内存中,并对备份文件进行校验。

S431,判断对备份文件的校验是否成功;若成功,则执行S440,若失败,则执行S432。

S440,将备份文件保存到用户在控制设备中预先设置的存储位置中。

S432,向嵌入式设备发送备份失败消息。

在本实施例中,控制设备同样可以将接收到的备份文件先保存到内存中进行校验,在对备份文件校验成功后,完成备份流程,即将备份文件保存到用户在控制设备中预先设置的存储位置中,例如可以是控制程序上选择备份 模式后,在控制设备中指定要保存的备份文件的路径,该备份文件例如可以保存到BOOT.bak中;另外,在对备份文件校验失败后,可以发送备份失败消息以提示嵌入式设备。

本实施例提供的引导程序升级方法,在对嵌入式设备中的当前引导程序进行备份后,可以继续对嵌入式设备中的当前引导程序进行升级,在具体实现中,结束备份操作后,即在S440之后,重新启动嵌入式设备开始执行升级操作,升级的具体方式包括:

S450,向嵌入式设备发送升级指示消息,该升级指示消息用于指示嵌入式设备监听嵌入式设备与控制设备之间的串口。

类似地,在S450之前同样可以包括:S441,在该控制程序上选择升级模式;S442,通过控制程序接收嵌入式设备发送的第一问询消息,第一问询消息用于提示控制设备对嵌入式设备中的当前引导程序进行升级。

S460,根据用户选择的文件路径计算升级文件的文件长度、校验字段和文件数据。

S470,通过串口向嵌入式设备发送计算出的升级文件,使得嵌入式设备将升级文件写入嵌入式设备的存储器中,以替换存储器中的当前引导程序。

具体地,S441~S470的实现方式可以参照图5所示实施例中S300~S330。

进一步地,本实施例提供的方法,在嵌入式设备将升级文件写入存储器的过程中若发生升级错误的情况下,还可以对嵌入式设备中第一引导程序区域中的内容进行恢复,即退回到升级前的状态,例如可以使用S440中保存到BOOT.bak中的备份文件,重新执行一次升级流程,本实施例的具体实现方式可以包括以下步骤:

1)、通过控制程序接收嵌入式设备发送的第三问询消息,该第三询问消息用于指示嵌入式设备对当前引导程序升级失败。

2)、向嵌入式设备发送恢复指示消息,该恢复指示消息用于指示嵌入式设备监听串口。

3)、根据用户选择的文件路径计算恢复文件的文件长度、校验字段和文件数据。

4)、通过串口向嵌入式设备发送恢复文件,使得嵌入式设备将恢复文件写入嵌入式设备的存储器中,以还原在写入升级文件前嵌入式设备的存储器中的引导程序。

在本实施例中,在升级失败后同样需要重启嵌入式设备,通过CPU再次执行启动引导程序,发送第三问询消息时控制设备的控制程序同样为升级模式,因此,嵌入式设备接收到恢复指示消息后的处理方式与上述实施例中接收到升级指示消息的处理方式类似,均是采用控制设备发送的文件内容替换存储器中现有的引导程序;不同的是,本实施例中用户在控制设备中选择的文件路径可以是上述通过备份流程存储到控制设备中的备份文件的路径,即该恢复文件为在控制设备中存储的备份文件中选择出的其中一个备份文件,例如可以是上述S440中保存到BOOT.bak中的备份文件。

图7为本发明实施例提供的一种引导程序升级方法的交互执行的流程图。本实施例提供的引导程序升级方法适用于对嵌入式系统中的引导程序进行备份和升级的情况中,该方法可以由控制设备和嵌入式设备执行。如图7所示,本实施例的方法可以包括:

在控制设备中执行,S501,启动控制设备的控制程序,并在该控制程序上选择升级模式。

S502,通过用户的选择确定升级文件的路径。

随后对嵌入式设备上电,嵌入式设备开始执行,S503,通过CPU执行存储器中的启动引导程序。

S504,通过该启动引导程序向控制设备发送第一问询消息。

S505,等待预置的时间,并判断在该等待预置的时间内是否接收到升级指示消息;若接收到,则执行S506;若没有接收到,则执行S507,加载并启动当前引导程序。

此时,控制设备在接收到第一问询消息后,通过用户的选择确定是否发送应答响应,其中,若需要进入升级流程,控制设备执行S508,向嵌入式设备发送升级指示消息;相应地,S505中的判断为接收到,进而执行S506,开始监听串口。

控制设备在发送升级指示消息后,继续执行S509,根据用户选择的文件路径计算升级文件的文件长度、校验字段和文件数据,以获取出升级文件的内容。

S510,通过串口向嵌入式设备发送已计算出的升级文件。

嵌入式设备在此时处于监听状态,在通过串口接收到控制设备发送的升级文件后,执行S511,将通过串口接收到的升级文件写入嵌入式设备的内存中,并对升级文件进行校验。

S512,判断对升级文件的校验是否成功;若成功,则执行S513,若失败,则执行S514。

S513,将升级文件写入嵌入式设备的存储器中,以替换存储器中的当前引导程序。

S514,加载并启动当前引导程序。

本实施例提供的方法,同样可以在对嵌入式设备的当前引导程序进行升级前,对该当前引导程序先进行备份,具体实现方式为,控制设备在执行S501之前还可以执行S515,启动控制设备的控制程序,并在该控制程序上选择备份模式。

S516,通过用户的选择指定备份文件的保存路径。

随后对嵌入式设备上电,该嵌入式设备开始执行,S517,通过CPU执行存储器中的启动引导程序。

S518,通过该启动引导程序向控制设备发送第二问询消息。

S519,等待预置的时间,并判断在该等待预置的时间内是否接收到备份指示消息;若接收到,则执行S520;若没有接收到,则执行S521,加载并启动当前引导程序。

此时,控制设备在接收到第二问询消息后,通过用户的选择确定是否发送应答响应,其中,若需要进入备份流程,控制设备执行S522,向嵌入式设备发送备份指示消息;相应地,S519中的判断为接收到,进而执行S520,读取存储器中的当前引导程序,并计算该当前引导程序的文件长度、校验字段和文件数据。

S523,向所述控制设备发送备份文件,该备份文件包括嵌入式设备对当前引导程序的计算结果。

控制设备在此时处于监听状态,在通过串口接收到嵌入式设备发送的备份文件后,执行S524,将接收到的备份文件写入控制设备的内存中,并对备份文件进行校验。

S525,判断对备份文件的校验是否成功;若成功,则执行S526,若失败,则执行S527。

S526,将备份文件保存到用户在控制设备中预先设置的存储位置中。

S527,向嵌入式设备发送备份失败消息。

需要说明的是,本实施例提供的引导程序升级方法与上述实施例类似地,在嵌入式设备执行S513的过程中发生升级错误的情况时,还可以对嵌入式设备的存储器中的引导程序进行恢复,即退回到升级前的状态,例如可以使用S526中保存到控制设备中的备份文件,重新执行一次升级流程,即再次执行S501~S514,在本次执行过程中,用户的选择确定升级文件的路径具体为:用户将控制设备中存储的备份文件的路径确定为升级文件的路径,从而将S501~S514中的升级文件替换为控制设备中存储的备份文件。

图8为本发明实施例提供的一种嵌入式设备的结构示意图。本实施例提供的嵌入式设备适用于对嵌入式系统中的引导程序进行升级的情况中,该嵌入式设备通常以硬件和软件的方法来实现,通过与嵌入式系统中的控制设备的消息交互和数据交互实现引导程序的升级。如图8所示,本实施例的嵌入式设备具体包括接收模块11和存储模块12。

其中,接收模块11,用于接收控制设备发送的升级指示消息,升级指示消息用于指示接收模块11监听嵌入式设备与控制设备之间的串口。

通过本实施例提供的嵌入式设备进行引导程序升级时同样可以应用于图2所示的应用场景中,升级指示消息为控制设备在控制设备中的控制程序为升级模式下发送的,具体地,本实施例提供的嵌入式设备还包括:处理模块13,用于在接收模块11接收控制设备发送的升级指示消息之前,通过CPU执行存储器中的启动引导程序;发送模块14,用于通过启动引导程序向控制 设备发送第一问询消息;相应地,一方面,处理模块13,还用于当接收模块11在预置的时间内接收到升级指示消息,根据接收模块11接收的升级指示消息开始监听串口;另一方面,处理模块13,还用于当接收模块11在预置的时间内没有接收到升级指示消息,加载并启动当前引导程序。

接收模块11,还用于通过串口接收控制设备发送的升级文件,该升级文件为控制设备根据用户选择的文件路径计算出的,该升级文件包括文件长度、校验字段和文件数据。

存储模块12,用于将接收模块11接收到的升级文件写入嵌入式设备的存储器中,以替换存储器中的当前引导程序。

本发明实施例提供的嵌入式设备用于执行本发明图1所示实施例提供的引导程序升级方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

进一步地,图9为本发明实施例提供的另一种嵌入式设备的结构示意图。在上述图8所示实施例的基础上,本实施例中的存储模块12具体可以包括:存储单元15,用于在接收模块11接收到控制设备发送的升级文件之后,将该升级文件写入嵌入式设备的内存中;校验单元16,用于对存储单元15写入嵌入式设备的内存中的升级文件进行校验;相应地,存储单元15,还用于在校验单元16对升级文件校验成功后,将升级文件写入嵌入式设备的存储器中;在另一种可能的实现方式中,校验单元16,还用于在对升级文件校验失败后,加载并启动当前引导程序。

本发明实施例提供的嵌入式设备不仅可以对其引导程序进行升级,在升级前还可以将其存储器中的当前引导程序备份到控制设备中,具体实现方式为:接收模块11,还用于在接收控制设备发送的升级指示消息之前,接收控制设备发送的备份指示消息,该备份指示消息用于指示控制设备开始监听串口;相应地,该嵌入式设备还包括:计算模块17,用于根据接收模块11接收的备份指示消息读取存储器中的当前引导程序,并计算当前引导程序的文件长度、校验字段和文件数据;发送模块14,还用于向控制设备发送备份文件,以使控制设备将接收到的备份文件写入控制设备的内存中,并对备份文件进行校验,在校验成功后,将备份文件保存到用户在控制设备中预先设置 的存储位置中,其中,该备份文件包括对当前引导程序的计算结果。

与上述实施例类似地,备份指示消息为控制设备在控制程序为备份模式下发送的,则处理模块13,还用于在接收模块11接收控制设备发送的备份指示消息之前,通过CPU执行存储器中的启动引导程序;发送模块14,还用于通过启动引导程序向控制设备发送第二问询消息;相应地,一方面,处理模块13,还用于当接收模块11在预置的时间内接收到备份指示消息,根据接收模块11接收的备份指示消息指示控制设备开始监听串口;另一方面,处理模块13,还用于当接收模块11在预置的时间内没有接收到备份指示消息,加载并启动当前引导程序。

可选地,若控制设备对备份文件校验失败,还可以向嵌入式设备发送提示消息,则本实施例中的接收模块11,还用于在发送模块14向终端备发送备份文件之后,接收该控制设备发送的备份失败消息,备份失败消息用于指示所述控制设备对所述备份文件校验失败。

更进一步地,本实施例提供的嵌入式设备,在存储模块12将升级文件写入存储器的过程中发生升级错误的情况下,还可以对嵌入式设备的存储器中的引导程序进行恢复,即退回到升级前的状态,例如可以使用执行备份操作时保存到控制设备中的备份文件,重新执行一次升级操作,在本次执行升级操作过程中,升级文件的路径具体为控制设备中存储的备份文件的路径,从而在执行升级操作时,将上述升级文件替换为控制设备中存储的备份文件,其具体实现方式为:处理模块13,还用于在存储模块12将升级文件写入嵌入式设备的存储器的过程中发生升级错误时,重新启动嵌入式设备,并通过CPU再次执行启动引导程序;发送模块14,还用于通过启动引导程序向控制设备发送第三问询消息;接收模块11,还用于接收控制设备发送的恢复指示消息,该恢复指示消息用于指示该嵌入式设备监听串口,并通过串口接收控制设备发送的恢复文件,该恢复文件为控制设备根据用户选择的文件路径计算出的,该恢复文件包括文件长度、校验字段和文件数据;存储模块12,还用于将恢复文件写入嵌入式设备的存储器中,以还原在写入升级文件前嵌入式设备的存储器中的引导程序。上述恢复引导程序的操作方式与升级引导程序的操作方式类似,只是写入嵌入式设备的存储器中的文件内容不同,故在 此不再具体说明。

本发明实施例提供的嵌入式设备用于执行本发明图3和图4所示实施例提供的引导程序升级方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

图10为本发明实施例提供的一种控制设备的结构示意图。本实施例提供的控制设备适用于对嵌入式系统中的引导程序进行升级的情况中,该控制设备通常以硬件和软件的方法来实现,通过与嵌入式系统中的嵌入式设备的消息交互和数据交互实现引导程序的升级。如图10所示,本实施例的控制设备具体包括发送模块21和计算模块22。

其中,发送模块21,用于向嵌入式设备发送升级指示消息,升级指示消息用于指示嵌入式设备监听嵌入式设备与控制设备之间的串口。

通过本实施例提供的控制设备进行引导程序升级时同样可以应用于图2所示的应用场景中,在具体实现中,该控制设备还包括:启动模块23,用于在发送模块21向嵌入式设备发送升级指示消息之前,启动控制设备的控制程序,并在该控制程序上选择升级模式;于此同时,嵌入式设备上电后,在CPU启动上述各实施例中所述的启动引导程序后,向控制设备发送第一问询信号,相应地,控制设备还包括:接收模块24,用于通过控制程序接收嵌入式设备发送的第一问询消息,该第一问询消息用于提示控制设备对嵌入式设备中的当前引导程序进行升级。

计算模块22,用于根据用户选择的文件路径计算升级文件的文件长度、校验字段和文件数据;

发送模块21,还用于通过串口向嵌入式设备发送计算模块22计算出的升级文件,使得嵌入式设备将升级文件写入嵌入式设备的存储器中,以替换存储器中的当前引导程序。

本发明实施例提供的控制设备用于执行本发明图5所示实施例提供的引导程序升级方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

需要说明的是,本实施例提供的控制设备在执行引导程序升级方法中, 嵌入式设备发送第一问询消息后,根据在预置的时间内是否接收到升级指示消息执行的相应操作,以及在接收到升级文件保存到内存后,对该升级文件进行验证,并且根据验证结果执行的相应操作,均与上述各实施例中的操作方式相同,并且具有相同的有益效果,故在此不再赘述。

进一步地,图11为本发明实施例提供的另一种控制设备的结构示意图。本发明实施例提供的控制设备不仅可以对其引导程序进行升级,在升级前还可以将嵌入式设备的存储器中的当前引导程序备份到该控制设备中,具体实现方式为:发送模块21,还用于在向嵌入式设备发送升级指示消息之前,向嵌入式设备发送备份指示消息,该备份指示消息用于指示嵌入式设备向终端发送备份文件;相应地,接收模块24,还用于通过串口接收嵌入式设备发送的备份文件,备份文件包括嵌入式设备的存储器中的当前引导程序的文件长度、校验字段和文件数据;在上述图10所示实施例的基础上,本实施例提供的控制设备还包括:存储模块25,用于将接收模块24接收到的备份文件写入控制设备的内存中;校验模块26,用于对存储模块25写入控制设备的内存中的备份文件进行校验;相应地,存储模块25,还用于在校验模块26对备份文件校验成功后,将备份文件保存到用户在控制设备中预先设置的存储位置中;在另一种实现方式中,发送模块21,还用于在校验模块26对备份文件校验失败后,向嵌入式设备发送备份失败消息。

与上述实施例类似地,本实施例提供的控制设备,启动模块23,还用于在发送模块21向嵌入式设备发送备份指示消息之前,启动控制设备的控制程序,并在控制设备的控制程序上选择备份模式;于此同时,嵌入式设备上电后,在CPU启动上述各实施例中的启动引导程序后,向控制设备发送第二问询信号,相应地,接收模块24,还用于通过控制程序接收嵌入式设备发送的第二问询消息,第二问询消息用于提示控制设备对嵌入式设备中的当前引导程序进行备份。

更进一步地,本实施例提供的控制设备执行引导程序升级方式时,在嵌入式设备将升级文件写入其存储器的过程中发生升级错误的情况下,还可以对嵌入式设备的存储器中的引导程序进行恢复,即退回到升级前的状态,例如可以使用执行备份操作时保存到控制设备中的备份文件,重新执行一次升 级操作,在本次执行升级操作过程中,升级文件的路径具体为控制设备中存储的备份文件的路径,从而在执行升级操作时,将上述升级文件替换为控制设备中存储的备份文件,其具体实现方式为:接收模块24,还用于在发送模块21通过串口向嵌入式设备发送计算出的升级文件之后,通过控制程序接收嵌入式设备发送的第三问询消息,该第三询问消息用于指示嵌入式设备对当前引导程序升级失败;发送模块21,还用于向嵌入式设备发送恢复指示消息,该恢复指示消息用于指示嵌入式设备监听串口;计算模块22,还用于根据用户选择的文件路径计算恢复文件的文件长度、校验字段和文件数据;从而,发送模块21通过串口向嵌入式设备发送计算模块22计算出的恢复文件,使得入式设备将恢复文件写入嵌入式设备的存储器中,以还原在写入升级文件前嵌入式设备的存储器中的引导程序。上述恢复引导程序的操作方式与升级引导程序的操作方式类似,只是写入嵌入式设备的存储器中的文件内容不同,故在此不再具体说明。

图2为同样为本发明实施例提供的一种嵌入式系统的结构示意图。如图2所示,本实施例提供的嵌入式系统中可以包括嵌入式设备100和控制设备200,该嵌入式设备100可以为上述图8和图9任一实施例中所示的嵌入式设备,该控制设备200可以为上述图10和图11任一实施例中所示的控制设备,可以用于执行图1,图3到图7所示的引导程序升级方法,其实现的具体方式和实现的有益效果均与上述实施例相同,故在此不再赘述。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1