CN103106089B - 一种智能平台管理控制器的升级方法和系统 - Google Patents

一种智能平台管理控制器的升级方法和系统 Download PDF

Info

Publication number
CN103106089B
CN103106089B CN201310030383.2A CN201310030383A CN103106089B CN 103106089 B CN103106089 B CN 103106089B CN 201310030383 A CN201310030383 A CN 201310030383A CN 103106089 B CN103106089 B CN 103106089B
Authority
CN
China
Prior art keywords
application program
mark
upgrading
run
routine
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.)
Active
Application number
CN201310030383.2A
Other languages
English (en)
Other versions
CN103106089A (zh
Inventor
李照丹
张义
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN201310030383.2A priority Critical patent/CN103106089B/zh
Publication of CN103106089A publication Critical patent/CN103106089A/zh
Application granted granted Critical
Publication of CN103106089B publication Critical patent/CN103106089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例提供了一种智能平台管理控制器的升级方法和系统,以解决现有的升级方法在升级失败后,应用程序无法正常运行,从而需要手动重新烧写应用程序,导致IPMC返修的问题。本发明实施例中设置两个应用程序,每次运行其中一个应用程序,即运行的应用程序,当收到升级命令时,则通过该运行的应用程序引导另一个应用程序,即升级的应用程序,进行升级,因此即使升级失败,则只有升级的应用程序不能正常运行,而运行的应用程序还是可以正常运行的,即可以重新执行运行的应用程序,不需要再重新烧写程序。

Description

一种智能平台管理控制器的升级方法和系统
技术领域
本发明实施例涉及通信技术领域,特别是涉及一种智能平台管理控制器的升级方法和系统。
背景技术
智能平台管理控制器(Intelligentplatformmanagementcontroller,IPMC)是一种微控制器,用来控制电路板载荷的电源、管理电路板互连和冷却需求。
PCI工业计算机制造组织(PCIIndustrialComputerManufacturersGroup,PICMG)规范要求IPMC支持固件程序的在线升级。目前,对于IPMC程序存储区主要划分为两个区,分别用于存储启动程序和应用程序,其中,启动程序负责引导应用程序运行并实现对应用程序的升级功能,应用程序负责实现机框管理功能。在升级过程中,启动程序调用其中的升级模块实现对应用程序的升级,然后利用升级后的应用程序替换原有的应用程序。
但是,利用上述方法进行IPMC程序的升级过程中,如果升级失败(例如升级后的应用程序不完整或者有错误),由于升级后的应用程序已经覆盖掉原有的应用程序,因此此时应用程序无法正常运行,需要手动重新烧写应用程序,导致IPMC返修。
发明内容
本发明实施例所要解决的技术问题是提供一种智能平台管理控制器的升级方法和系统,以解决现有的升级方法在升级失败后,应用程序无法正常运行,需要手动重新烧写应用程序,导致IPMC返修的问题。
为了解决上述问题,本发明公开了一种智能平台管理控制器的升级方法,其特征在于,包括:
预先设置两个应用程序、公共标志,以及每个应用程序的标志;
启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序;
所述运行的应用程序当收到升级命令时,对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序;
如果升级失败,则重新运行所述运行的应用程序。
可选地,所述公共标志包括下次启动标志;
每个应用程序的标志包括所述应用程序的完整性标志和应用程序的启动标志。
可选地,所述启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,包括:
启动程序检测所述下次启动标志;
当所述下次启动标志为其中一个应用程序时,启动程序检测所述其中一个应用程序的完整性标志;
当所述其中一个应用程序的完整性标志为完整时,启动程序检测所述其中一个应用程序的启动标志;
当所述其中一个应用程序的启动标志为启动成功或者未启动时,启动程序选择所述其中一个应用程序运行;
当所述其中一个应用程序的完整性标志为不完整时,或者所述其中一个应用程序的启动标志为启动失败时,启动程序选择另一个应用程序运行。
可选地,在启动程序依据所述公共标志和每个应用程序的标志选择另一个应用程序之后,还包括:
将所述下次启动标志更新为所述另一个应用程序。
可选地,在所述运行的应用程序当收到升级命令时,对所述升级的应用程序进行升级之前,还包括:
将所述升级的应用程序的完整性标志更新为不完整;
将所述升级的应用程序的启动标志更新为未启动。
可选地,所述方法还包括:
如果升级成功,则将所述升级的应用程序的完整性标志更新为完整;
将所述下次启动标志更新为所述升级的应用程序。
可选地,在启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行之后,还包括:
将所述下次启动标志更新为所述升级的应用程序;
判断所述运行的应用程序运行是否正常;
当所述运行的应用程序运行正常时,将所述运行的应用程序的启动标志更新启动成功;
将所述下次启动标志更新为所述运行的应用程序。
另一方面,本发明还公开了一种智能平台管理控制器的升级系统,其特征在于,包括:
设置模块,用于预先设置两个应用程序、公共标志,以及每个应用程序的标志;
运行模块,用于通过启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序;
升级模块,用于当收到升级命令时,通过所述运行的应用程序对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序;
重新运行模块,用于当升级模块升级失败时,重新运行所述运行的应用程序。
可选地,所述公共标志包括下次启动标志;
每个应用程序的标志包括所述应用程序的完整性标志和应用程序的启动标志。
可选地,所述运行模块包括:
下次启动检测子模块,用于通过启动程序检测所述下次启动标志;
完整性检测子模块,用于当所述下次启动标志为其中一个应用程序时,通过启动程序检测所述其中一个应用程序的完整性标志;
启动检测子模块,用于当所述其中一个应用程序的完整性标志为完整时,通过启动程序检测所述其中一个应用程序的启动标志;
第一运行子模块,用于当所述其中一个应用程序的启动标志为启动成功或者未启动时,通过启动程序选择所述其中一个应用程序运行;
第二运行子模块,用于当所述其中一个应用程序的完整性标志为不完整时,或者所述其中一个应用程序的启动标志为启动失败时,通过启动程序选择另一个应用程序运行。
可选地,所述运行模块还包括:
标志更新子模块,用于在第二运行子模块通过启动程序选择另一个应用程序之后,将所述下次启动标志更新为所述另一个应用程序。
可选地,所述系统还包括:
第一标志更新模块,用于当收到升级命令时,在升级模块通过运行的应用程序对所述升级的应用程序进行升级之前,将所述升级的应用程序的完整性标志更新为不完整,并将所述升级的应用程序的启动标志更新为未启动。
可选地,所述系统还包括:
第二标志更新模块,用于当升级模块升级成功时,将所述升级的应用程序的完整性标志更新为完整,并将所述下次启动标志更新为所述升级的应用程序。
可选地,所述系统还包括:
第三标志更新模块,用于在运行模块通过启动程序选择一个应用程序运行之后,将所述下次启动标志更新为所述升级的应用程序;
判断模块,用于判断所述运行的应用程序运行是否正常;
第四标志更新模块,用于当所述判断模块判断出所述运行的应用程序运行正常时,将所述运行的应用程序的启动标志更新启动成功,并将所述下次启动标志更新为所述运行的应用程序。
与现有技术相比,本发明实施例包括以下优点:
首先,本发明实施例可以预先设置两个应用程序、公共标志,以及每个应用程序的标志,通过启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序,并且所述运行的应用程序当收到升级命令时,对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序,如果升级失败,则重新运行所述运行的应用程序。本发明实施例通过设置两个应用程序,每次运行其中一个应用程序(运行的应用程序),当收到升级命令时,则通过该运行的应用程序引导另一个应用程序(升级的应用程序)进行升级,因此即使升级失败,则只有升级的应用程序不能正常运行,而另一个应用程序还是可以正常运行的,即可以重新执行运行的应用程序,不需要再重新烧写程序。
其次,本发明实施例中由于预先设置了两个应用程序,这两个应用程序互为备份、互相升级,运行的应用程序可以一直正常运行,当收到升级命令时,对另一个应用程序进行升级。因此,在升级过程中,运行的应用程序仍然可以正常运行机框管理的各项功能,而不需要在升级过程中中断机框管理操作。
附图说明
图1是现有技术中智能平台管理控制器的升级方法
图2是本发明实施例一所述的一种智能平台管理控制器的升级方法的流程图;
图3是本发明实施例一所述的IPMC程序存储区的划分示意图;
图4是本发明实施例二所述的一种智能平台管理控制器的升级方法的流程图;
图5是本发明实施例二所述的应用程序运行标志区的示意图;
图6是本发明实施例二所述的启动程序选择应用程序运行的过程的流程图;
图7是本发明实施例二所述的A区应用程序的运行过程的流程图;
图8是本发明实施例二所述的A区应用程序升级B区应用程序的流程图;
图9是本发明实施例三所述的一种智能平台管理控制器的升级系统的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例可以规划两个应用程序,并设置了公共标志和每个应用程序的标志,两个应用程序互为备份、互相升级,启动程序仅根据“标志”引导应用程序运行,两个应用程序互相升级,升级过程不中断机框管理操作,并且在升级失败时,启动程序可以引导原来的应用程序运行,避免现有技术中升级失败导致应用程序无法正常运行的情况。
实施例一:
目前,对于IPMC程序存储区主要划分为两个区,分别用于存储启动程序和应用程序,其中,启动程序负责引导应用程序运行并实现对应用程序的升级功能,应用程序负责实现机框管理功能。在升级过程中,启动程序调用其中的升级模块实现对应用程序的升级,然后利用升级后的应用程序替换原有的应用程序。
如图1所示,为现有技术中IPMC升级方法的流程图,所述方法可以包括:
1、初始化。
首先,IPMC上电,程序从“启动程序”区运行,进行初始化。
2、判断是否收到升级命令。
如果否,则执行步骤3;如果是,执行步骤4。
3、引导应用程序运行。
4、开始升级。
5、判断是否升级成功完成。
若否,则执行步骤6;若是,则执行步骤7。
6、报告升级失败,并返回步骤2。
7、报告升级成功。
8、IPMC复位重启。
但是,上述方法存在以下问题:
(1)如果升级失败,IPMC程序仍然会从启动程序跳转到应用程序,由于升级后的应用程序已经覆盖掉原有的应用程序,因此此时应用程序无法正常运行,需要手动重新烧写应用程序,导致IPMC返修。
(2)由于启动程序实现引导应用程序运行和版本升级功能,升级过程中会中断应用程序运行时所执行的机框管理操作,只有当升级成功并激活新的应用程序版本后,才可重新恢复机框管理操作。
为了解决上述问题,本发明实施例提出了一种IPMC的升级方法,该方法设置了两个应用程序,在升级失败时,可以重新运行原有运行的应用程序(即未升级的应用程序),并且在升级过程中,运行的应用程序可以实现正常的机框管理操作。
参照图2,示出了本发明实施例一种智能平台管理控制器的升级方法的流程图,所述方法可以包括;
步骤200,预先设置两个应用程序、公共标志,以及每个应用程序的标志。
本发明实施例中,为了不增加硬件设计复杂度,可以采用对IPMC程序存储区重新规划的方法进行优化。
如图3所示,可以将存储区划分为:启动程序区、两个应用程序区(例如应用程序A区和应用程序B区)、应用程序运行标志区,本发明实施例还可以独立存储软件定义的传感器数据记录(SensorDataRecord,SDR)信息(即可以在IPMC程序存储区内设置单板传感器SDR信息存储区),从而分离IPMC流程实现和SDR信息,简化运行过程。当然,本发明实施例所述的存储区还可以包括其他信息,本发明实施例对此并不加以限制。
其中,
启动程序(LeadingAreaProgram)负责根据“应用程序运行标志区”的状态实现A、B区应用程序的完整性校验和引导应用程序运行。
A区应用程序存储区存储A版本应用程序,实现IPMC功能,并负责升级B区应用程序。
B区应用程序存储区存储B版本应用程序,实现IPMC功能,并负责升级A区应用程序。
单板传感器SDR信息存储区存储现场置换单元(FieldReplaceableUnit,FRU)的SDR信息,应用程序运行中,从SDR信息区读取相关传感器信息。并根据机框管理控制器(ShelfManagementController,SHMC)的命令更新SDR信息。
应用程序运行标志区存储公共标志,以及每个应用程序的标志,启动程序可以根据标志区记录选择跳转到哪个应用程序。
其中,所述公共标志可以包括下次启动标志,每个应用程序的标志可以包括所述应用程序的完整性标志和应用程序的启动标志,等等。
步骤202,启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序。
IPMC上电之后,首先进入启动程序,启动程序可以对所述公共标志和每个应用程序的标志进行检测,并依据检测结果从所述两个应用程序中选择一个应用程序运行,该应用程序即为运行的应用程序。
步骤204,所述运行的应用程序当收到升级命令时,对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序。
本发明实施例中,可以通过应用程序引导升级过程,两个应用程序可以互相升级,即可以在其中一个应用程序(即运行的应用程序)的运行过程中,通过所述运行的应用程序升级另一个应用程序(即升级的应用程序),而不用再通过启动程序完成应用程序的升级。
因此,在所述运行的应用程序的运行过程中,当IPMC收到升级命令时,该运行的应用程序即可对另外一个应用程序(即升级的应用程序)进行升级,并且在所述升级的应用程序的升级过程中,所述运行的应用程序还可以正常运行。
步骤206,如果升级失败,则重新运行所述运行的应用程序。
本发明实施例中,由于所述运行的应用程序并没有执行升级过程,因此其还是可以正常运行的,因此,如果在步骤204中对升级的应用程序升级失败,则可以在升级失败之后进行复位,从而可以重新运行所述运行的应用程序。
另外,由于在升级的应用程序的升级过程中,所述运行的应用程序仍然可以正常运行(即升级过程不影响所述运行的应用程序的执行),因此,在升级失败之后,也可以不进行复位,从而可以继续运行所述运行的应用程序,本发明实施例对此并不加以限制。
对于上述各个步骤的具体过程,将在下面的实施例中详细论述。
本发明实施例通过设置两个应用程序,每次运行其中一个应用程序(即运行的应用程序),当收到升级命令时,则通过该运行的应用程序引导另一个应用程序(即升级的应用程序)进行升级,因此即使升级失败,则只有升级的应用程序不能正常运行,而另一个应用程序还是可以正常运行的,即可以重新执行运行的应用程序,不需要再重新烧写程序。
其次,本发明实施例中由于预先设置了两个应用程序,这两个应用程序互为备份、互相升级,运行的应用程序可以一直正常运行,当收到升级命令时,对另一个应用程序进行升级。因此,在升级过程中,运行的应用程序仍然可以正常运行机框管理的各项功能,而不需要在升级过程中中断机框管理操作。
实施例二:
下面,通过本实施例二对所述智能平台管理控制器的升级方法进行详细论述。
参照图4,示出了本发明实施例二所述的一种智能平台管理控制器的升级方法的流程图,所述方法可以包括:
步骤400,预先设置两个应用程序、公共标志,以及每个应用程序的标志。
本发明实施例中,可以预先设置两个应用程序,并设置公共标志和每个应用程序的标志,启动程序可以根据所述公共标志和每个应用程序的标志选择一个应用程序运行,在该应用程序运行的过程中,如果收到升级命令,则通过该运行的应用程序对另一个应用程序进行升级,从而保证在升级的应用程序的升级过程中不影响运行的应用程序的正常运行。
与上述实施例一中的图3相似,本发明实施例也可以将存储区划分为:启动程序区、A区应用程序、B区应用程序和应用程序运行标志区,等等。
其中,应用程序运行标志区可以包括公共标志区、A区应用程序的标志区和B区应用程序的标志区,如图5所示,为本发明实施例二所述的应用程序的运行标志区的示意图。
从图5可以看出,本发明实施例中,所述公共标志区可以包括下次启动标志,每个应用程序的标志区可以包括所述应用程序的完整性标志和应用程序的启动标志,即A区应用程序的标志区可以包括A区应用程序的完整性标志和A区应用程序的启动标志,B区应用程序的标志区可以包括B区应用程序的完整性标志和B区应用程序的启动标志。
当然,所述公共标志区还可以包括一些保留地址,所述A区应用程序的标志区和B区应用程序的标志区还可以包括一些版本信息和保留地址,本发明实施例在此不再详细论述。
本发明实施例中,对于上述各标志区可以存在以下特性:
i,标志区的各个属性数据存储地址固定,程序以静态地址索引。
ii,标志区的各个属性数据为一级索引,即程序可直接索引到具体的值。
iii,标志区保留地址可作为字节对齐,以供标志区属性扩展使用。
对于具体的标志区的处理,本发明实施例在此不再详细论述。
步骤402,启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序。
首先,IPMC上电之后,即可运行启动程序,通过启动程序对所述公共标志和每个应用程序的标志进行检测,然后从所述两个应用程序中选择一个应用程序运行。
具体的,该步骤402可以包括:
a1,启动程序检测所述下次启动标志。
本发明实施例中,如果以所述两个应用程序分别为A区应用程序和B区应用程序为例,则所述下次启动标志可以包括A区应用程序和B区应用程序两种。
a2,当所述下次启动标志为其中一个应用程序时,启动程序检测所述其中一个应用程序的完整性标志。
本发明实施例中,所述完整性标志可以包括完整和不完整两种。
a3,当所述其中一个应用程序的完整性标志为完整时,启动程序检测所述其中一个应用程序的启动标志。
本发明实施例中,所述启动标志可以包括启动成功、未启动,以及启动失败三种。
a4,当所述其中一个应用程序的启动标志为启动成功或者未启动时,启动程序选择所述其中一个应用程序运行。
a5,当所述其中一个应用程序的完整性标志为不完整时,或者所述其中一个应用程序的启动标志为启动失败时,启动程序选择另一个应用程序运行,并将所述下次启动标志更新为所述另一个应用程序。
下面,以两个应用程序分别为A区应用程序和B区应用程序为例,对本发明实施例二步骤402所述的启动程序选择应用程序运行的过程进行介绍,如图6所示,该过程可以包括:
步骤600,初始化。
本发明实施例中,首先IPMC上电,运行启动程序,可以通过启动程序完成初始化过程,其中初始化过程主要可以包括对不同芯片的设置,例如内存分配、寄存器配置等,本发明实施例在此不再详细论述。
步骤602,判断从A区启动还是从B区启动(即判断从A/B区启动)。
该过程主要是通过对下次启动标志进行检测来判断的,如果所述下次启动标志为A区应用程序,则从A区启动,执行步骤604;如果所述下次启动标志为B区应用程序,则从B区启动,执行步骤614。
步骤604,判断A区应用程序是否完整。
该过程主要是通过对A区应用程序的完整性标志进行检测来判断的,如果判断结果为否(即所述A区应用程序的完整性标志为不完整),则执行步骤606;如果判断结果为是(即所述A区应用程序的完整性标志为完整),则执行步骤608。
步骤606,选择B区应用程序运行,设置下次启动标志为B区应用程序。
步骤608,判断A区应用程序是否成功启动或者A区应用程序是否未启动。
该过程主要是通过对A区应用程序的启动标志进行检测来判断的,如果判断结果为否(即所述A区应用程序的启动标志为启动失败),则执行步骤610;如果判断结果为是(即所述A区应用程序的启动标志为启动成功或者未启动),则执行步骤612。
步骤610,选择B区应用程序运行,设置下次启动标志为B区应用程序。
步骤612,选择A区应用程序运行。
在通过上述步骤选择A区应用程序运行或者选择B区应用程序运行之后,即可执行以下步骤404。
步骤614,判断B区应用程序是否完整。
在通过上述步骤602判断出从B区启动之后,即可执行该步骤614。该过程主要是通过对B区应用程序的完整性标志进行检测来判断的,如果判断结果为否(即所述B区应用程序的完整性标志为不完整),则执行步骤616;如果判断结果为是(即所述B区应用程序的完整性标志为完整),则执行步骤618。
步骤616,选择A区应用程序运行,设置下次启动标志为A区应用程序。
步骤618,判断B区应用程序是否成功启动或者B区应用程序是否未启动。
该过程主要是通过对B区应用程序的启动标志进行检测来判断的,如果判断结果为否(即所述B区应用程序的启动标志为启动失败),则执行步骤620;如果判断结果为是(即所述B区应用程序的启动标志为启动成功或者未启动),则执行步骤622。
步骤620,选择A区应用程序运行,设置下次启动标志为A区应用程序。
步骤622,选择B区应用程序运行。
在通过上述步骤选择A区应用程序运行或者选择B区应用程序运行之后,即可执行以下步骤404。
步骤404,在从所述两个应用程序中选择一个应用程序运行之后,根据所述运行的应用程序的运行状况更新对应的标志。
在通过上述步骤402,启动程序从所述两个应用程序中选择一个应用程序(即运行的应用程序)运行之后,即可根据所述运行的应用程序的运行状况更新对应的标志。
该步骤404即为所述运行的应用程序的运行过程,具体可以包括:
b1,将所述下次启动标志更新为所述升级的应用程序。
其中,所述升级的应用程序即为所述预先设置的两个应用程序中,除所述运行的应用程序之外的另一个应用程序。
本发明实施例中,如果选择了其中一个应用程序(运行的应用程序)运行,则在所述运行的应用程序运行时,可以把所述下次启动标志更新为所述升级的应用程序。因为此时并不能确定所述运行的应用程序是否运行正常,因此,上述更新下次启动标志的做法可以避免由于所述运行的应用程序不能正常运行,而下次启动仍然选择该应用程序运行时出现的错误(即所述运行的应用程序仍然不能正常运行)。
b2,判断所述运行的应用程序运行是否正常。
对于具体的所述运行的应用程序运行是否正常,可以通过程序是否可以进入循环流程进行判断,本发明实施例对此不再详细论述,本领域技术人员也可以根据实际经验进行相关处理,本发明实施例对此并不加以限制。
b3,当所述运行的应用程序运行正常时,将所述运行的应用程序的启动标志更新启动成功。
如果所述运行的应用程序运行不正常,则可以对IPMC进行复位启动,同时,由于在上述b1中将所述下次启动标志更新为所述升级的应用程序,因此启动之后即可选择所述升级的应用程序运行,而不会再重新运行上述运行的应用程序。
b4,将所述下次启动标志更新为所述运行的应用程序。
本发明实施例中,如果所述运行的应用程序运行正常,则可以将下次启动标志更新为所述运行的应用程序。
下面,以运行A区应用程序为例,对本发明实施例二所述的A区应用程序的运行过程进行介绍,如图7所示,该过程具体可以包括:
步骤700,设置下次启动标志为B区应用程序。
步骤702,判断FRU的机框管理功能运行是否正常(即判断A区应用程序运行是否正常)。
若否,则执行步骤704;若是,则执行步骤706。
步骤704,不对标志区进行处理,IPMC复位重启。
步骤706,设置A区应用程序的启动标志为启动成功。
步骤708,设置下次启动标志为A区应用程序。
由于A区应用程序运行正常,则本发明实施例在下次启动时,可以优先选取A区应用程序运行。
步骤710,报告A区应用程序运行正常。
上述步骤404主要是介绍所述运行的应用程序的具体运行过程,如果在运行过程中,接收到升级命令,则可以执行步骤406,对升级的应用程序进行升级。
步骤406,所述运行的应用程序当收到升级命令时,对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序。
如果在所述运行的应用程序的运行过程中,接收到升级命令,则所述运行的应用程序可以对升级的应用程序进行升级,在升级过程中,也可以对所述公共标志以及所述升级的应用程序的标志进行更新。
具体的,本发明实施例中所述升级过程还可以包括:
c1,在所述运行的应用程序所述升级的应用程序进行升级之前,将所述升级的应用程序的完整性标志更新为不完整。
由于此时要对所述升级的应用程序进行升级,而当前不能确定所述升级的应用程序升级之后是否完整,因此可以暂时将所述升级的应用程序的完整性标志更新为不完整。
c2,将所述升级的应用程序的启动标志更新为未启动。
本发明实施例中,如果对某个应用程序进行升级之后,则可以将该应用程序的启动标志更新为未启动。
通过上述的标志更新之后,则可以开始对所述升级的应用程序进行升级。对于具体的升级过程,本发明实施例在此不再详细论述。
c3,如果升级成功,则将所述升级的应用程序的完整性标志更新为完整。
由于升级成功,则说明所述升级的应用程序在升级之后为完整的应用程序,因此,可以将所述升级的应用程序的完整性标志更新为完整。
c4,将所述下次启动标志更新为所述升级的应用程序。
本发明实施例中,如果所述升级的应用程序升级成功,则下次启动时,可以优选选择所述升级的应用程序运行,从而保证运行最新版本的应用程序。
另外,需要说明的是,本发明实施例在所述升级的应用程序升级成功之后,还可以利用升级成功之后的应用程序替换所述运行的应用程序,从而保证所述两个应用程序都是最新版本的应用程序。当然,上述只是一个优选的实施例,本发明实施例对此并不加以限制。
c5,如果升级失败,则重新运行所述运行的应用程序。
本发明实施例中,如果所述升级的应用程序升级失败,则可以重新运行所述运行的应用程序。具体的,可以在升级失败之后进行复位,重新运行所述运行的应用程序,也可以不进行复位,继续运行所述运行的应用程序,本发明实施例对此并不加以限制。
下面,以A区应用程序升级B区应用程序为例,对本发明实施例二所述的升级过程进行介绍,如图8所示,所述升级过程具体可以包括:
步骤800,设置B区应用程序的完整性标志为不完整。
步骤802,设置B区应用程序的启动标志为未启动。
步骤804,开始升级。
对于具体的升级过程,本发明实施例在此不再详细论述。
步骤806,判断升级是否成功完成。
若否,则执行步骤808;若是,则执行步骤810。
步骤808,报告升级失败。
此时,如上所述,可以复位启动,重新运行所述运行的应用程序,还可以不进行复位,继续运行所述运行的应用程序。
步骤810,设置B区应用程序的完整性标志为完整。
步骤812,设置下次启动标志为B区应用程序。
步骤814,报告升级成功。
本发明实施例中,在报告升级成功之后,可以复位启动,直接运行升级之后的应用程序;当然也可以暂时不进行复位,继续运行所述运行的应用程序,在下次启动时,再运行升级之后的应用程序,本发明实施例对此并不加以限制。
最后,需要说明的是,如果在运行过程中,所述两个应用程序均不能正常运行,则说明IPMC可能出现了故障,需要进行维修,本发明实施例对此不再详细论述。
本发明实施例中可以规划两个应用程序,并设置了公共标志和每个应用程序的标志,其中两个应用程序互为备份、互相升级,启动程序仅根据“标志”引导应用程序运行,两个应用程序互相升级,升级过程不中断机框管理操作,并且在升级失败时,启动程序可以引导原来的应用程序运行,避免现有技术中升级失败导致应用程序无法正常运行的情况。
实施例三:
参照图9,示出了本发明实施例三所述的一种智能平台管理控制器的升级系统的结构框图,所述系统可以包括:设置模块900、运行模块901、第一标志更新模块902、升级模块903、第二标志更新模块904、重新运行模块905、第三标志更新模块906、判断模块907和第四标志更新模块908。
其中,
设置模块900,用于预先设置两个应用程序、公共标志,以及每个应用程序的标志;
其中,所述公共标志可以包括下次启动标志;每个应用程序的标志可以包括所述应用程序的完整性标志和应用程序的启动标志。
运行模块901,用于通过启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序;
所述运行模块901可以包括:
下次启动检测子模块,用于通过启动程序检测所述下次启动标志;
完整性检测子模块,用于当所述下次启动标志为其中一个应用程序时,通过启动程序检测所述其中一个应用程序的完整性标志;
启动检测子模块,用于当所述其中一个应用程序的完整性标志为完整时,通过启动程序检测所述其中一个应用程序的启动标志;
第一运行子模块,用于当所述其中一个应用程序的启动标志为启动成功或者未启动时,通过启动程序选择所述其中一个应用程序运行;
第二运行子模块,用于当所述其中一个应用程序的完整性标志为不完整时,或者所述其中一个应用程序的启动标志为启动失败时,通过启动程序选择另一个应用程序运行;
标志更新子模块,用于在第二运行子模块通过启动程序选择另一个应用程序之后,将所述下次启动标志更新为所述另一个应用程序。
第一标志更新模块902,用于当收到升级命令时,在升级模块通过运行的应用程序对所述升级的应用程序进行升级之前,将所述升级的应用程序的完整性标志更新为不完整,并将所述升级的应用程序的启动标志更新为未启动;
升级模块903,用于当收到升级命令时,通过所述运行的应用程序对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序;
第二标志更新模块904,用于当升级模块升级成功时,将所述升级的应用程序的完整性标志更新为完整,并将所述下次启动标志更新为所述升级的应用程序;
重新运行模块905,用于当升级模块升级失败时,重新运行所述运行的应用程序;
第三标志更新模块906,用于在运行模块通过启动程序选择一个应用程序运行之后,将所述下次启动标志更新为所述升级的应用程序;
判断模块907,用于判断所述运行的应用程序运行是否正常;
第四标志更新模块908,用于当所述判断模块判断出所述运行的应用程序运行正常时,将所述运行的应用程序的启动标志更新启动成功,并将所述下次启动标志更新为所述运行的应用程序。
本发明实施例可以预先设置两个应用程序、公共标志,以及每个应用程序的标志,通过启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序,并且所述运行的应用程序当收到升级命令时,对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序,如果升级失败,则重新运行所述运行的应用程序。本发明实施例通过设置两个应用程序,每次运行其中一个应用程序(运行的应用程序),当收到升级命令时,则通过该运行的应用程序引导另一个应用程序(升级的应用程序)进行升级,因此即使升级失败,则只有升级的应用程序不能正常运行,而另一个应用程序还是可以正常运行的,即可以重新执行运行的应用程序,不需要再重新烧写程序。
其次,本发明实施例中由于预先设置了两个应用程序,这两个应用程序互为备份、互相升级,运行的应用程序可以一直正常运行,当收到升级命令时,对另一个应用程序进行升级。因此,在升级过程中,运行的应用程序仍然可以正常运行机框管理的各项功能,而不需要在升级过程中中断机框管理操作。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种智能平台管理控制器的升级方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种智能平台管理控制器的升级方法,其特征在于,包括:
预先设置两个应用程序、公共标志,以及每个应用程序的标志;其中,所述公共标志包括下次启动标志;每个应用程序的标志包括所述应用程序的完整性标志和应用程序的启动标志;
启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序;
所述运行的应用程序当收到升级命令时,对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序;
如果升级失败,则重新运行所述运行的应用程序;
其中,在启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行之后,还包括:将所述下次启动标志更新为所述升级的应用程序;判断所述运行的应用程序运行是否正常;当所述运行的应用程序运行正常时,将所述运行的应用程序的启动标志更新启动成功;将所述下次启动标志更新为所述运行的应用程序。
2.根据权利要求1所述的方法,其特征在于,所述启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,包括:
启动程序检测所述下次启动标志;
当所述下次启动标志为其中一个应用程序时,启动程序检测所述其中一个应用程序的完整性标志;
当所述其中一个应用程序的完整性标志为完整时,启动程序检测所述其中一个应用程序的启动标志;
当所述其中一个应用程序的启动标志为启动成功或者未启动时,启动程序选择所述其中一个应用程序运行;
当所述其中一个应用程序的完整性标志为不完整时,或者所述其中一个应用程序的启动标志为启动失败时,启动程序选择另一个应用程序运行。
3.根据权利要求2所述的方法,其特征在于,在启动程序依据所述公共标志和每个应用程序的标志选择另一个应用程序之后,还包括:
将所述下次启动标志更新为所述另一个应用程序。
4.根据权利要求1所述的方法,其特征在于,在所述运行的应用程序当收到升级命令时,对所述升级的应用程序进行升级之前,还包括:
将所述升级的应用程序的完整性标志更新为不完整;
将所述升级的应用程序的启动标志更新为未启动。
5.根据权利要求1所述的方法,其特征在于,还包括:
如果升级成功,则将所述升级的应用程序的完整性标志更新为完整;
将所述下次启动标志更新为所述升级的应用程序。
6.一种智能平台管理控制器的升级系统,其特征在于,包括:
设置模块,用于预先设置两个应用程序、公共标志,以及每个应用程序的标志;其中,所述公共标志包括下次启动标志;每个应用程序的标志包括所述应用程序的完整性标志和应用程序的启动标志;
运行模块,用于通过启动程序依据所述公共标志和每个应用程序的标志从所述两个应用程序中选择一个应用程序运行,并将选择的应用程序作为运行的应用程序;
升级模块,用于当收到升级命令时,通过所述运行的应用程序对所述运行的应用程序之外的另一个应用程序进行升级,并将所述另一个应用程序作为升级的应用程序;
重新运行模块,用于当升级模块升级失败时,重新运行所述运行的应用程序;
还包括:
第三标志更新模块,用于在运行模块通过启动程序选择一个应用程序运行之后,将所述下次启动标志更新为所述升级的应用程序;
判断模块,用于判断所述运行的应用程序运行是否正常;
第四标志更新模块,用于当所述判断模块判断出所述运行的应用程序运行正常时,将所述运行的应用程序的启动标志更新启动成功,并将所述下次启动标志更新为所述运行的应用程序。
7.根据权利要求6所述的系统,其特征在于,所述运行模块包括:
下次启动检测子模块,用于通过启动程序检测所述下次启动标志;
完整性检测子模块,用于当所述下次启动标志为其中一个应用程序时,通过启动程序检测所述其中一个应用程序的完整性标志;
启动检测子模块,用于当所述其中一个应用程序的完整性标志为完整时,通过启动程序检测所述其中一个应用程序的启动标志;
第一运行子模块,用于当所述其中一个应用程序的启动标志为启动成功或者未启动时,通过启动程序选择所述其中一个应用程序运行;
第二运行子模块,用于当所述其中一个应用程序的完整性标志为不完整时,或者所述其中一个应用程序的启动标志为启动失败时,通过启动程序选择另一个应用程序运行。
8.根据权利要求7所述的系统,其特征在于,所述运行模块还包括:
标志更新子模块,用于在第二运行子模块通过启动程序选择另一个应用程序之后,将所述下次启动标志更新为所述另一个应用程序。
9.根据权利要求6所述的系统,其特征在于,还包括:
第一标志更新模块,用于当收到升级命令时,在升级模块通过运行的应用程序对所述升级的应用程序进行升级之前,将所述升级的应用程序的完整性标志更新为不完整,并将所述升级的应用程序的启动标志更新为未启动。
10.根据权利要求6所述的系统,其特征在于,还包括:
第二标志更新模块,用于当升级模块升级成功时,将所述升级的应用程序的完整性标志更新为完整,并将所述下次启动标志更新为所述升级的应用程序。
CN201310030383.2A 2013-01-25 2013-01-25 一种智能平台管理控制器的升级方法和系统 Active CN103106089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310030383.2A CN103106089B (zh) 2013-01-25 2013-01-25 一种智能平台管理控制器的升级方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310030383.2A CN103106089B (zh) 2013-01-25 2013-01-25 一种智能平台管理控制器的升级方法和系统

Publications (2)

Publication Number Publication Date
CN103106089A CN103106089A (zh) 2013-05-15
CN103106089B true CN103106089B (zh) 2016-03-02

Family

ID=48313973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310030383.2A Active CN103106089B (zh) 2013-01-25 2013-01-25 一种智能平台管理控制器的升级方法和系统

Country Status (1)

Country Link
CN (1) CN103106089B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636574A (zh) * 2013-11-08 2015-05-20 成都鼎桥通信技术有限公司 终端设备升级方法及终端设备
CN111625840A (zh) * 2020-05-29 2020-09-04 杭州海康威视数字技术股份有限公司 程序校验方法、程序升级方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1933416A (zh) * 2005-09-12 2007-03-21 中兴通讯股份有限公司 一种具有自恢复功能的远程在线升级方法
CN101078993A (zh) * 2007-03-13 2007-11-28 中兴通讯股份有限公司 一种终端产品不中断业务在线升级版本的方法
CN101183949A (zh) * 2007-03-30 2008-05-21 腾讯科技(深圳)有限公司 一种客户端应用程序启动方法、应用程序服务器及客户端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI386847B (zh) * 2009-02-04 2013-02-21 Novatek Microelectronics Corp 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1933416A (zh) * 2005-09-12 2007-03-21 中兴通讯股份有限公司 一种具有自恢复功能的远程在线升级方法
CN101078993A (zh) * 2007-03-13 2007-11-28 中兴通讯股份有限公司 一种终端产品不中断业务在线升级版本的方法
CN101183949A (zh) * 2007-03-30 2008-05-21 腾讯科技(深圳)有限公司 一种客户端应用程序启动方法、应用程序服务器及客户端

Also Published As

Publication number Publication date
CN103106089A (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
US10642596B2 (en) Embedded device and program updating method
US9110843B2 (en) Rack and method thereof for simultaneously updating basic input output systems
US8468389B2 (en) Firmware recovery system and method of baseboard management controller of computing device
CN102388366B (zh) 实现不同处理器兼容的方法及装置
CN103473067A (zh) 嵌入式Linux分区与数据还原方法、系统及系统开发方法
US20160132420A1 (en) Backup method, pre-testing method for environment updating and system thereof
CN103488498A (zh) 一种计算机启动方法及计算机
CN109086079B (zh) 一种存储设备挂载管理方法及装置
WO2016101503A1 (zh) 一种热补丁的实现方法和装置
CN105468717A (zh) 数据库操作方法和装置
CN101021797A (zh) 一种用于嵌入式系统的软件修复和升级方法
CN103116511A (zh) 基于单个flash存储芯片的双启动方法
CN104615471A (zh) 一种终端的系统升级方法及装置
CN104331318A (zh) 一种嵌入式双系统及其工作方法
CN105468390B (zh) Boot在线升级装置及方法
CN105677409A (zh) 一种系统升级方法及装置
US20100287364A1 (en) Boot systems and methods, and related devices
CN103106089B (zh) 一种智能平台管理控制器的升级方法和系统
CN111104173A (zh) 一种引导程序的保护设计方法
CN102508676A (zh) 嵌入式系统启动方法及装置
CN114153477A (zh) Pcie驱动卡固件升级方法、装置、系统、设备及介质
CN113672306A (zh) 服务器组件自检异常恢复方法、装置、系统及介质
CN104657232A (zh) Bios自动恢复系统及方法
CN109582332A (zh) 互联网摄像机的系统升级方法及装置
CN104035776A (zh) 一种操作系统的启动方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant