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

程序升级方法、装置、计算机设备和存储介质

文献发布时间:2023-06-19 10:35:20


程序升级方法、装置、计算机设备和存储介质

技术领域

本申请涉及计算机技术领域,特别是涉及一种程序升级方法、装置、计算机设备和存储介质。

背景技术

随着软件升级技术的发展,出现了程序升级技术,程序升级技术可以对低版本的程序进行更新,以升级到高版本程序。一般情况下,高版本常常会修复低版本的部分缺陷,经过程序升级,可以使程序性能更好、更优化。程序升级可以更好的满足用户的需求,也可以更好地完善、稳定软件系统。

然而,目前的程序升级方法,经常存在程序升级过程中失败,导致程序无法使用,即存在升级可靠性低的问题。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高升级可靠性的程序升级方法、装置、计算机设备和存储介质。

一种程序升级方法,所述方法包括:接收对目标应用程序对应的引导程序的升级操作;确定所述引导程序对应的存储区集合,所述存储区集合包括多个存储区,所述存储区用于存储所述引导程序;根据升级区筛选规则从所述存储区集合中筛选所述引导程序对应的待升级区;对所述待升级区中的引导程序进行程序升级;当程序升级失败时,根据程序启动规则从所述存储区集合中筛选得到启动区,利用所述启动区的程序数据启动所述引导程序,以利用所述启动的引导程序引导所述目标应用程序启动;所述程序启动规则与所述升级区升级规则相反。

在其中一个实施例中,所述根据升级区筛选规则从所述存储区集合中筛选所述引导程序对应的待升级区包括:将所述存储区集合中各个存储区存储的所述引导程序的第一有效性信息与校验地址对应的校验区存储的第二有效性信息进行对比;当存在与所述第二有效性信息不一致的第一有效性信息时,将不一致的第一有效性信息所对应的存储区,作为待升级区。

在其中一个实施例中,所述根据升级区筛选规则从所述存储区集合中筛选所述引导程序对应的待升级区还包括:当不存在与所述第二有效性信息不一致的第一有效性信息时,根据校验地址对应的校验区所存储的存储区优先级,获取存储区优先级满足第一预设优先级条件的存储区,作为所述引导程序对应的待升级区,所述第一预设优先级条件包括优先级在预设优先级之后。

在其中一个实施例中,所述根据升级区筛选规则从所述存储区集合中筛选所述引导程序对应的待升级区还包括:当所述存储区集合中的所述第一有效性信息与所述第二有效性信息均不一致时,从所述存储区集合中获取满足第一地址条件的存储区,作为所述引导程序对应的待升级区;其中,所述第一地址条件包括所述存储区集合中,存储区地址与所述引导程序的固件地址的距离大于预设距离或者距离排序在预设排序之后的至少一个,所述距离排序是按照从小到大的顺序进行排序的。

在其中一个实施例中,所述当程序升级失败时,根据程序启动规则从所述存储区集合中筛选得到启动区包括:当程序升级失败时,将所述存储区集合中各个存储区存储的所述引导程序的第三有效性信息与校验地址对应的校验区存储的第四有效性信息进行对比;当存在与所述第四有效性信息一致的第三有效性信息时,将一致的第三有效性信息所对应的存储区,作为启动区。

在其中一个实施例中,所述当程序升级失败时,根据程序启动规则从所述存储区集合中筛选得到启动区还包括:当所述存储区集合中的所述第三有效性信息与所述第四有效性信息均不一致时,从所述存储区集合中获取满足第二地址条件的存储区,作为启动区;其中,所述第二地址条件包括所述存储区集合中,存储区地址与所述引导程序的固件地址的距离小于预设距离或者距离排序在预设排序之前的至少一个,所述距离排序是按照从小到大的顺序进行排序的。

在其中一个实施例中,所述对所述待升级区中的引导程序进行程序升级包括:接收所述引导程序提供端发送的待升级的引导程序;将所述待升级的引导程序写入所述待升级区,以进行升级;根据所述待升级的引导程序对应的优先级相关信息得到待升级区对应的优先级信息,将所述待升级的引导程序对应的程序校验信息和所述待升级区的优先级信息存储于校验区。

一种程序升级装置,所述装置包括:升级操作接收模块,用于接收对目标应用程序对应的引导程序的升级操作;存储区集合确定模块,用于确定所述引导程序对应的存储区集合,所述存储区集合包括多个存储区,所述存储区用于存储所述引导程序;待升级区筛选模块,用于根据升级区筛选规则从所述存储区集合中筛选所述引导程序对应的待升级区;程序升级模块,用于对所述待升级区中的引导程序进行程序升级;引导程序启动模块,用于当程序升级失败时,根据程序启动规则从所述存储区集合中筛选得到启动区,利用所述启动区的程序数据启动所述引导程序,以利用所述启动的引导程序引导所述目标应用程序启动。

在其中一个实施例中,待升级区筛选模块还用于:将存储区集合中各个存储区存储的引导程序的第一有效性信息与校验地址对应的校验区存储的第二有效性信息进行对比;当存在与第二有效性信息不一致的第一有效性信息时,将不一致的第一有效性信息所对应的存储区,作为待升级区。

在其中一个实施例中,待升级区筛选模块还用于:当存储区集合中的第一有效性信息与第二有效性信息均不一致时,从存储区集合中获取满足第一地址条件的存储区,作为引导程序对应的待升级区;其中,第一地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离大于预设距离或者距离排序在预设排序之后的至少一个,距离排序是按照从小到大的顺序进行排序的。

在其中一个实施例中,引导程序启动模块还用于:当程序升级失败时,将存储区集合中各个存储区存储的引导程序的第三有效性信息与校验地址对应的校验区存储的第四有效性信息进行对比;当存在与第四有效性信息一致的第三有效性信息时,将一致的第三有效性信息所对应的存储区,作为启动区。

在其中一个实施例中,引导程序启动模块还用于:当存储区集合中的第三有效性信息与第四有效性信息均不一致时,从存储区集合中获取满足第二地址条件的存储区,作为启动区;其中,第二地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离小于预设距离或者距离排序在预设排序之前的至少一个,距离排序是按照从小到大的顺序进行排序的。

在其中一个实施例中,程序升级模块还用于:接收引导程序提供端发送的待升级的引导程序;将待升级的引导程序写入待升级区,以进行升级;根据待升级的引导程序对应的优先级相关信息得到待升级区对应的优先级信息,将待升级的引导程序对应的程序校验信息和待升级区的优先级信息存储于校验区。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:接收对目标应用程序对应的引导程序的升级操作;确定所述引导程序对应的存储区集合,所述存储区集合包括多个存储区,所述存储区用于存储所述引导程序;根据升级区筛选规则从所述存储区集合中筛选所述引导程序对应的待升级区;对所述待升级区中的引导程序进行程序升级;当程序升级失败时,根据程序启动规则从所述存储区集合中筛选得到启动区,利用所述启动区的程序数据启动所述引导程序,以利用所述启动的引导程序引导所述目标应用程序启动;所述程序启动规则与所述升级区升级规则相反。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收对目标应用程序对应的引导程序的升级操作;确定所述引导程序对应的存储区集合,所述存储区集合包括多个存储区,所述存储区用于存储所述引导程序;根据升级区筛选规则从所述存储区集合中筛选所述引导程序对应的待升级区;对所述待升级区中的引导程序进行程序升级;当程序升级失败时,根据程序启动规则从所述存储区集合中筛选得到启动区,利用所述启动区的程序数据启动所述引导程序,以利用所述启动的引导程序引导所述目标应用程序启动;所述程序启动规则与所述升级区升级规则相反。

上述程序升级方法、装置、计算机设备和存储介质,通过接收目标应用程序对应的引导程序的升级操作,对存储有引导程序的存储区进行分块形成多个存储区组成的存储区集合,按照升级区筛选规则从存储区集合中筛选出待升级区,对待升级区中的引导程序进行程序升级,当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,以利用启动的引导程序引导目标应用程序启动;其中,程序启动规则与升级区升级规则相反。可以实现即使在升级失败时,也能够在存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,进而利用启动的引导程序引导目标应用程序启动,完成正常目标应用程序启动过程,避免程序升级失败导致程序无法正常启动的问题,从而提高了程序升级的可靠性。

附图说明

图1为一个实施例中程序升级方法的应用环境图;

图2为一个实施例中程序升级方法的流程示意图;

图3为一个实施例中根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区的流程示意图;

图4为一个实施例中当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区的流程示意图;

图5为一个实施例中对待升级区中的引导程序进行程序升级的流程示意图;

图6为一个实施例中程序升级装置的结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的程序升级方法,可以应用于如图1所示的应用环境中。包括终端102和服务器104。其中,终端102与服务器104进行通信。在程序升级过程中,终端102可以从服务器104上获取到待升级的程序,并在终端102本端利用程序升级方法完成升级。具体的,终端102接收对目标应用程序对应的引导程序的升级操作,确定引导程序对应的存储区集合;其中,存储区集合包括多个存储区,存储区用于存储上述引导程序;根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区;通过网络从服务器104上将待升级的下载到待升级区,对待升级区中的引导程序进行程序升级;当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,以利用启动的引导程序引导目标应用程序启动,从而完成终端102本端的目标应用程序启动。其中,终端102可以但不限于是各种控制器、以及利用各种控制器及外围部件或设备组装成的控制板、个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种程序升级方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

步骤202,接收对目标应用程序对应的引导程序的升级操作。

其中,引导程序是指在目标应用程序启动之前运行的程序,引导程序启动之后会引导目标应用程序启动。例如,常用引导程序包括bootloader程序。目标应用程序是指需要利用引导程序启动之后才能够启动的应用程序。应用程序可以是能够通过编译在终端运行的应用程序。例如,常用的APP(Application)应用程序。

在一个实施例中,用户可以通过终端上的实体或者虚拟升级按键发送对目标应用程序对应的引导程序的升级操作,终端相应地接收对目标应用程序对应的引导程序的升级操作。

步骤204,确定引导程序对应的存储区集合,其中,存储区集合包括多个存储区,存储区用于存储引导程序。

其中,存储区是指有存储功能的,并且有存储容量的区域。例如,容量为512KB大小的存储区或者容量为256KB大小的存储区等。

具体的,终端第一次启动时,将存储区分成多个存储区组成的存储区集合,在存储区集合中的每个存储区内存储有引导程序。

在一个实施例中,终端第一次启动时,将存储区分成至少一个存储区,这些存储区用于存储引导程序。例如,将存储区分成主用区和备用区,在主用区和备用区均可存储引导程序,在主用区存储的引导程序和备用区存储的引导程序可以相同也可以不同。在实际应用中,在出厂设置时,主用区存储的引导程序和备用区存储的引导程序相同,但是在多次运行或者进行升级后主用区存储的引导程序和备用区存储的引导程序会存在不同的情况。

步骤206,根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区。

其中,升级区筛选规则是指能够筛选出引导程序对应的待升级区的规则,按照升级区筛选规则可以筛选出至少一个待升级区。

具体的,升级区筛选规则包括根据引导程序的校验信息或者存储引导程序的存储区的优先级筛选出待升级区。

在一个实施例中,根据引导程序的校验信息进行待升级区的确定,在存储区集合中筛选出引导程序的校验信息不正确的,将该引导程序对应的存储区作为待升级区。例如,存储区集合中包括存储区A、存储区B和存储区C,其中存储区A中存储的引导程序的校验信息与终端本地保存的校验信息不一致,则将存储区A作为待升级区。

在一个实施例中,在存储区集合中的存储区的校验信息均正确时,根据存储引导程序的存储区的优先级筛选出待升级区,将优先级低的存储区筛选出来,作为待升级区。可以理解的,优先级的高低是相对的,例如存储区集合中包括存储区A、存储区B和存储区C,存储区A相对应的优先级为100、存储区B相对应的优先级为50、存储区C相对应的优先级为25,假设优先级数值越大,优先级越高,如果选出一个存储区作为待升级区,则选择优先级最低的存储区C作为待升级区。如果选出两个存储区作为待升级区,则会选择存储区优先级相对低的存储区B和存储区C作为待升级区。

在一个实施例中,校验信息和优先级存储在不同于存储引导程序的存储区的存储区里面,每个存储区所对应的存储地址不同。例如,存储校验信息和优先级的存储地址为0X000000FF,存储引导程序的存储区存储地址为0X000001CF。

步骤208,对待升级区中的引导程序进行程序升级。

具体的,在待升级区确定之后,会对待升级区中的引导程序进行程序升级。

在一个实施例中,终端可以通过从终端所连接的服务器或者上位机上获取到用作升级的引导程序,并将此引导程序存储到待升级区中,对待升级区中的引导程序进行程序升级。

步骤210,当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,以利用启动的引导程序引导目标应用程序启动;

其中,启动区是指能够通过其中存储的程序数据启动引导程序的存储区。程序启动规则是指能够使程序启动而设置的规则。

具体的,当程序升级失败时,需要按照程序启动规则得到启动区,利用启动区的程序数据启动引导程序,以利用启动的引导程序引导目标应用程序启动。

在一个实施例中,程序启动规则与升级区升级规则相反的,例如,程序启动规则是选择存储区集合中优先级较高的存储区中存储的引导程序进行运行启动,而升级区升级规则相反,是选择存储区集合中优先级较低的存储区作为待升级区,利用待升级区中的引导程序完成升级。

上述程序升级方法中,上述程序升级方法、装置、计算机设备和存储介质,通过接收对目标应用程序对应的引导程序的升级操作,对存储有引导程序的存储区进行分块形成多个存储区组成的存储区集合,按照升级区筛选规则从存储区集合中筛选出待升级区,对待升级区中的引导程序进行程序升级,当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,以利用启动的引导程序引导目标应用程序启动;其中,程序启动规则与升级区升级规则相反。可以实现即使在升级失败时,也能够在存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,进而利用启动的引导程序引导目标应用程序启动,完成正常目标应用程序启动过程,避免程序升级失败导致程序无法正常启动的问题,从而提高了程序升级的可靠性。

在一个实施例中,如图3所示,根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区包括:

步骤302,将存储区集合中各个存储区存储的引导程序的第一有效性信息与校验地址对应的校验区存储的第二有效性信息进行对比。

其中,有效性信息是指能够验证引导程序正确与否的信息。校验地址是指存放校验信息的存储地址。校验区是指校验地址对应的存储区。

在一个实施例中,可以通过引导程序的第一校验码与校验区存储的第二校验码进行对比。例如,可以使用引导程序的MD5校验码,与存储区存储的验证该引导程序有效性的MD5校验码进行对比。

步骤304,当存在与第二有效性信息不一致的第一有效性信息时,将不一致的第一有效性信息所对应的存储区,作为待升级区。

在一个实施例中,对存储区集合中各个存储区存储的引导程序的第一有效性信息与校验地址对应的校验区存储的第二有效性信息进行对比之后,确定第一有效性信息与第二有效性信息不一致时,通过第一有效性信息确定对应的存储区,将此存储区作为待升级区。

本实施例中,通过对比存储区集合中各个存储区存储的引导程序的第一有效性信息与校验地址对应的校验区存储的第二有效性信息,能够达到准确确定待升级区的目的。

在一个实施例中,根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区还包括:

当不存在与第二有效性信息不一致的第一有效性信息时,根据校验地址对应的校验区所存储的存储区优先级,获取存储区优先级满足第一预设优先级条件的存储区,作为引导程序对应的待升级区,第一预设优先级条件包括优先级在预设优先级之后。

具体的,当存储区集合中的各个存储区存放的引导程序相对应的第一有效性信息和终端中校验地址对应的校验区所存储第二有效性信息一致时,证明存储区集合中的各个存储区中存放的引导程序都是正确有效的引导程序。这时,使用引导程序的有效性判断待升级区已经没有参考价值,可以通过判断存储区优先级的方式进行待升级区的确定。

在一个实施例中,存储区集合中各个存储区的优先级存储在校验地址对应的校验区中,并且在校验区中存储的优先级从高到低形成排序序列,预设优先级条件设置为某个优先级阈值,大于此优先级阈值的认为是高优先级,小于此优先级阈值的认为是低优先级,将低优先级的存储区作为待升级区。例如,校验区所存储的存储区优先级分别为200、150、100、50、25,第一预设优先级条件为设置优先级阈值为60,则优先级为200、150、100分别对应三个存储区为高优先级存储区,优先级为50、25对应的两个存储区为低优先级存储区,将低优先级存储区作为待升级区。可以理解的,待升级区可以为至少一个存储区。

本实施例中,通过预设优先级的方式对存储区优先级进行区分,能够达到快速准确确定待升级区的目的。

在一个实施例中,根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区还包括:

当存储区集合中的第一有效性信息与第二有效性信息均不一致时,从存储区集合中获取满足第一地址条件的存储区,作为引导程序对应的待升级区;其中,第一地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离大于预设距离或者距离排序在预设排序之后的至少一个。

其中,固件地址是指能够确定存储区地址的参考地址。

在一个实施例中,当存储区集合中的第一有效性信息与第二有效性信息均不一致时,获取存储区集合中存储区地址与引导程序的固件地址的距离大于预设距离排序在预设排序之后的至少一个。例如,存储区与固件地址的固定地址为0x0000,固件大小为1KB,存储区集合中存储区包括容量为1KB的存储区A,容量为2KB的存储区B,容量为3KB的存储区C,存储区A的存储地址为0x0400,存储区B的存储地址为0x0800,存储区C的存储地址为0x1000,存储区B和存储区C与固件地址的距离是大于存储区A与固件地址的距离,如果以0x0600处的存储地址为与固件地址的预设距离,则存储区B和存储区C为大于预设距离的存储区,会筛选出来作为待升级区。可以理解的,距离排序是按照从小到大的顺序进行排序的,待升级区可以筛选出满足上述待升级区判断条件至少一个。

在一个实施例中,当存储区集合中的第一有效性信息与第二有效性信息均不一致时,从存储区集合中获取满足第一地址条件的存储区,第一地址条件可以分别计算存储区集合中的各个存储区与固件地址之间的距离,并对各个存储区与固件地址之间的距离进行排序,选择在预设排序之后的至少一个存储区作为待升级区。例如,存储区集合中的距离从小到大排序分别是存储区A、存储区B、存储区C和存储区D,预设排序为2,则在预设排序之后的存储区A和存储区B作为待升级区。

本实施例中,通过从存储区集合中获取满足第一地址条件的存储区,能够达到准确确定待升级区的目的。

在一个实施例中,如图4所示,当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区包括:

步骤402,当程序升级失败时,将存储区集合中各个存储区存储的引导程序的第三有效性信息与校验地址对应的校验区存储的第四有效性信息进行对比。

在一个实施例中,当在程序升级过程中,仪器出现故障或者终端断电后导致升级失败,当程序升级失败时,终端会通过对比存储区集合中各个存储区存储的引导程序的第三有效性信息与校验地址对应的校验区存储的第四有效性信息进行启动区的筛选,以便于利用筛选出来的启动区进行启动,进而可以继续完成升级。

步骤404,当存在与第四有效性信息一致的第三有效性信息时,将一致的第三有效性信息所对应的存储区,作为启动区。

在一个实施例中,当存储区集合中各个存储区存储的引导程序的第三有效性信息和校验地址对应的校验区存储的第四有效性信息对比一致时,证明存储区集合中各个存储区存储的引导程序是正确有效的,存储区集合中各个存储区都可以作为启动区,为了缩短启动时间和节省启动资源,可以选择一个存储区作为启动区,需要对有效性信息都符合的存储区集合中各个存储区进行优先级的排序,选取优先级排序在首位的作为启动区。

本实施例中,当程序升级失败时,通过将存储区集合中各个存储区存储的引导程序的第三有效性信息与校验地址对应的校验区存储的第四有效性信息进行对比,当第三有效性信息与第四有效性信息一致时,将第三有效性信息对应的存储区作为启动区。能够达到在升级失败时,同样可以获得到至少一个启动区,并使用此启动区中的引导程序完成启动。

在一个实施例中,当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区还包括:

当存储区集合中的第三有效性信息与第四有效性信息均不一致时,从存储区集合中获取满足第二地址条件的存储区,作为启动区;

其中,第二地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离小于预设距离或者距离排序在预设排序之前的至少一个,距离排序是按照从小到大的顺序进行排序的。

在一个实施例中,当存储区集合中的第三有效性信息与第四有效性信息均不一致时,获取存储区集合中存储区地址与引导程序的固件地址的距离小于预设距离。例如,存储区与固件地址的固定地址为0x0000,固件大小为1KB,存储区集合中包括容量为1KB的存储区A,容量为2KB的存储区B,容量为3KB的存储区C,存储区A的存储地址为0x0400,存储区B的存储地址为0x0800,存储区C的存储地址为0x1000,存储区A与固件地址的距离是小于存储区B和存储区C与固件地址的距离,如果以0x0600处的存储地址为与固件地址的预设距离,则存储区A为小于预设距离的存储区,会筛选出来作为启动区。可以理解的,距离排序是按照从小到大的顺序进行排序的,可以筛选出满足上述启动区判断条件至少一个存储区作为启动区。

在一个实施例中,当存储区集合中的第三有效性信息与第四有效性信息均不一致时,从存储区集合中获取满足第二地址条件的存储区,第一地址条件可以分别计算存储区集合中的各个存储区与固件地址之间的距离,并对各个存储区与固件地址之间的距离进行排序,选择在预设排序之前的至少一个存储区作为启动区。例如,存储区集合中的距离从小到大排序分别是存储区A、存储区B、存储区C和存储区D,预设排序为2,则在预设排序之前的存储区C和存储区D作为启动区。可以理解的,启动区为满足第二地址条件的至少一个存储区。

本实施例中,通过设置第二地址条件,当存储区集合中的第三有效性信息与第四有效性信息均不一致时,从存储区集合中获取满足第二地址条件的存储区作为启动区,能够达到准确确定启动区的目的。

在一个实施例中,如图5所示,对待升级区中的引导程序进行程序升级包括:

步骤502,接收引导程序提供端发送的待升级的引导程序。

其中,引导程序提供端是指能够提供引导程序的服务器或终端等。

具体的,当待升级区确定之后,终端本端会通过从引导程序提供端接收引导程序提供端发送的待升级的引导程序。终端本端和引导程序提供端可以通过网线通信、串口通信或者无线通信中的至少一种通信方式进行通信。

步骤504,将待升级的引导程序写入待升级区,以进行升级。

在一个实施例中,在待升级区确定后,当终端本端接收到待升级的引导程序时,会将待升级的引导程序存放到待升级区,以进行升级。

步骤506,根据待升级的引导程序对应的优先级相关信息得到待升级区对应的优先级信息,将待升级的引导程序对应的程序校验信息和待升级区的优先级信息存储于校验区。

具体的,待升级的引导程序在写入待升级区时,会相应的确定待升级区的优先级信息,使得待升级区成为带有优先级的存储区,但是待升级的引导程序的程序校验信息和待升级区是存储于另一块存储区域,可以用校验区来表示。

本实施例中,通过接收待升级的引导程序,并将待升级的引导程序放入待升级区,同时将待升级的引导程序的校验信息以及待升级区的优先级信息存储于校验区,能够达到完成待升级区中的引导程序进行程序升级的目的。

在一个实施例中,本实施例以单片机或者其他嵌入式系统中的Boot(Bootloader)程序升级为例进行阐述,在单片机或者其他嵌入式系统启动时,将Boot存储区分为两个存储区主用区和备用区,主用区和备用区分别存储有Boot程序,Boot程序可以对硬件设备进行初始化。单片机或者的嵌入式系统中的软件系统分为Firmware(固件)、Boot程序、应用程序三部分。单片机启动时,从固件部分启动,单片机或者其他嵌入式系统在上电或复位时通常都从固件地址0x00000000处开始执行,固件通过与存储区的距离判断Boot程序所存储的区域是主用区还是备用区。再通过判断主用区存储的Boot程序和备用区存储的Boot程序的有效性以及判断主用区和备用区的优先级来确定使用哪个存储区的Boot程序进行启动,如果主用区和备用区中存储的Boot程序均有效,选择主用区和备用区中优先级高的存储区中的Boot程序进行启动;如果有效性都不符合,则选择默认主用区作为启动区,利用主用区内存储的Boot程序进行启动,并通过Boot程序的启动,启动相应的应用程序。在用户进行升级Boot程序时,由应用程序判断主用区中存储的Boot程序和备用区中存储的Boot程序的有效性以及主用区的优先级和备用区的优先级,擦除掉Boot有效性不符合的存储区;当有效性均符合时,擦除掉优先级较低的存储区以及存储区中存储的Boot程序;如果两个存储区中的Boot程序有效性均不符合,则擦除掉备用区。擦除掉相应的存储区之后,通过通信链路将待升级的Boot程序写入被擦除的区域,并且将写入的待升级的Boot程序的有效性信息及对应的存储区的优先级存储到另一存储区域内,完成Boot程序升级流程。如果出现Boot升级失败的情况,重新启动系统固件仍然会选择优先级较高的存储区中存储的Boot程序启动,避免升级失败后系统无法启动的问题。其中的有效性信息为Boot程序的校验信息。

本实施例通过判断主用区中存储的Boot程序和备用区中存储的Boot程序的有效性以及主用区和备用区的优先级,在升级或者启动过程中会始终保留有一个存储区及存储区中的Boot程序,能够在用户升级Boot程序中,如果仪器出现故障导致板卡断电,只需要重新上电再次进行升级即可,不需要额外的其他设备和操作也可以完成升级的目的,保证了升级的可靠性。

应该理解的是,虽然图1-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种程序升级装置600,包括:升级操作接收模块602、存储区集合确定模块604、待升级区筛选模块606、程序升级模块608和引导程序启动模块610,其中:升级操作接收模块602,用于接收对目标应用程序对应的引导程序的升级操作;存储区集合确定模块604,用于确定引导程序对应的存储区集合,存储区集合包括多个存储区,存储区用于存储引导程序;待升级区筛选模块606,用于根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区;程序升级模块608,用于对待升级区中的引导程序进行程序升级;引导程序启动模块610,用于当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,以利用启动的引导程序引导目标应用程序启动。

在一个实施例中,待升级区筛选模块606还用于:将存储区集合中各个存储区存储的引导程序的第一有效性信息与校验地址对应的校验区存储的第二有效性信息进行对比;当存在与第二有效性信息不一致的第一有效性信息时,将不一致的第一有效性信息所对应的存储区,作为待升级区。

在一个实施例中,待升级区筛选模块606还用于:当不存在与第二有效性信息不一致的第一有效性信息时,根据校验地址对应的校验区所存储的存储区优先级,获取存储区优先级满足第一预设优先级条件的存储区,作为引导程序对应的待升级区,第一预设优先级条件包括优先级在预设优先级之后。

在一个实施例中,待升级区筛选模块606还用于:当存储区集合中的第一有效性信息与第二有效性信息均不一致时,从存储区集合中获取满足第一地址条件的存储区,作为引导程序对应的待升级区;其中,第一地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离大于预设距离或者距离排序在预设排序之后的至少一个,距离排序是按照从小到大的顺序进行排序的。

在一个实施例中,引导程序启动模块610还用于:当程序升级失败时,将存储区集合中各个存储区存储的引导程序的第三有效性信息与校验地址对应的校验区存储的第四有效性信息进行对比;当存在与第四有效性信息一致的第三有效性信息时,将一致的第三有效性信息所对应的存储区,作为启动区。

在一个实施例中,引导程序启动模块610还用于:当存储区集合中的第三有效性信息与第四有效性信息均不一致时,从存储区集合中获取满足第二地址条件的存储区,作为启动区;其中,第二地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离小于预设距离或者距离排序在预设排序之前的至少一个,距离排序是按照从小到大的顺序进行排序的。

在一个实施例中,程序升级模块608还用于:接收引导程序提供端发送的待升级的引导程序;将待升级的引导程序写入待升级区,以进行升级;根据待升级的引导程序对应的优先级相关信息得到待升级区对应的优先级信息,将待升级的引导程序对应的程序校验信息和待升级区的优先级信息存储于校验区。

关于程序升级装置的具体限定可以参见上文中对于程序升级方法的限定,在此不再赘述。上述程序升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种程序升级方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收对目标应用程序对应的引导程序的升级操作;确定引导程序对应的存储区集合,存储区集合包括多个存储区,存储区用于存储引导程序;根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区;对待升级区中的引导程序进行程序升级;当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,以利用启动的引导程序引导目标应用程序启动;程序启动规则与升级区升级规则相反。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将存储区集合中各个存储区存储的引导程序的第一有效性信息与校验地址对应的校验区存储的第二有效性信息进行对比;当存在与第二有效性信息不一致的第一有效性信息时,将不一致的第一有效性信息所对应的存储区,作为待升级区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当不存在与第二有效性信息不一致的第一有效性信息时,根据校验地址对应的校验区所存储的存储区优先级,获取存储区优先级满足第一预设优先级条件的存储区,作为引导程序对应的待升级区,第一预设优先级条件包括优先级在预设优先级之后。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当存储区集合中的所述第一有效性信息与所述第二有效性信息均不一致时,从所述存储区集合中获取满足第一地址条件的存储区,作为所述引导程序对应的待升级区;其中,所述第一地址条件包括所述存储区集合中,存储区地址与所述引导程序的固件地址的距离大于预设距离或者距离排序在预设排序之后的至少一个,所述距离排序是按照从小到大的顺序进行排序的。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当程序升级失败时,将存储区集合中各个存储区存储的引导程序的第三有效性信息与校验地址对应的校验区存储的第四有效性信息进行对比;当存在与第四有效性信息一致的第三有效性信息时,将一致的第三有效性信息所对应的存储区,作为启动区。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当存储区集合中的第三有效性信息与第四有效性信息均不一致时,从存储区集合中获取满足第二地址条件的存储区,作为启动区;其中,第二地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离小于预设距离或者距离排序在预设排序之前的至少一个,距离排序是按照从小到大的顺序进行排序的。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收引导程序提供端发送的待升级的引导程序;将待升级的引导程序写入待升级区,以进行升级;根据待升级的引导程序对应的优先级相关信息得到待升级区对应的优先级信息,将待升级的引导程序对应的程序校验信息和待升级区的优先级信息存储于校验区。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收对目标应用程序对应的引导程序的升级操作;确定引导程序对应的存储区集合,存储区集合包括多个存储区,存储区用于存储引导程序;根据升级区筛选规则从存储区集合中筛选引导程序对应的待升级区;对待升级区中的引导程序进行程序升级;当程序升级失败时,根据程序启动规则从存储区集合中筛选得到启动区,利用启动区的程序数据启动引导程序,以利用启动的引导程序引导目标应用程序启动;程序启动规则与升级区升级规则相反。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将存储区集合中各个存储区存储的引导程序的第一有效性信息与校验地址对应的校验区存储的第二有效性信息进行对比;当存在与第二有效性信息不一致的第一有效性信息时,将不一致的第一有效性信息所对应的存储区,作为待升级区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当不存在与第二有效性信息不一致的第一有效性信息时,根据校验地址对应的校验区所存储的存储区优先级,获取存储区优先级满足第一预设优先级条件的存储区,作为引导程序对应的待升级区,第一预设优先级条件包括优先级在预设优先级之后。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当存储区集合中的第一有效性信息与第二有效性信息均不一致时,从存储区集合中获取满足第一地址条件的存储区,作为引导程序对应的待升级区;其中,第一地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离大于预设距离或者距离排序在预设排序之后的至少一个,距离排序是按照从小到大的顺序进行排序的。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当程序升级失败时,将存储区集合中各个存储区存储的引导程序的第三有效性信息与校验地址对应的校验区存储的第四有效性信息进行对比;当存在与第四有效性信息一致的第三有效性信息时,将一致的第三有效性信息所对应的存储区,作为启动区。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当存储区集合中的第三有效性信息与第四有效性信息均不一致时,从存储区集合中获取满足第二地址条件的存储区,作为启动区;其中,第二地址条件包括存储区集合中,存储区地址与引导程序的固件地址的距离小于预设距离或者距离排序在预设排序之前的至少一个,距离排序是按照从小到大的顺序进行排序的。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收引导程序提供端发送的待升级的引导程序;将待升级的引导程序写入待升级区,以进行升级;根据待升级的引导程序对应的优先级相关信息得到待升级区对应的优先级信息,将待升级的引导程序对应的程序校验信息和待升级区的优先级信息存储于校验区。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 传感器应用程序升级方法、装置、计算机设备和存储介质
  • 系统程序升级方法、装置、计算机设备及存储介质
技术分类

06120112607967