一种版本启动方法和装置的制作方法

文档序号:6363200阅读:231来源:国知局
专利名称:一种版本启动方法和装置的制作方法
技术领域
本发明涉及嵌入式系统,尤其涉及一种版本启动方法和装置。
背景技术
版本是使嵌入式系统通过boot引导启动运行的软件二进制文件。目前常见的版本启动方式如下:I)单版本启动过程:通过单版本启动,无特殊版本保护机制。2)主备版本启动过程:版本启动过程,通过主备版本管理方式防止版本异常和丢失。3)无盘设备通过服务器启动:无盘设备,启动时通过到指定的服务器索要版本,通过网络传输到本地,然后在本地运行启动设备。上述这几种方式各有优缺点:第一种方式是最简单的版本管理方式,实现简单,没有保护,一旦出现版本问题会比较麻烦。第二种方式可以防止版本丢失,但是,防护手段都是在运行前进行,一旦版本运行启动之后,就缺少监控手段,如这时候出现挂死,则系统无法恢复。第三种方式可以降低设备的开发成本,但是过多的依赖于网络和服务器,一旦某一个环节出现问题,则设备无法正常启动。

发明内容
本发明要解决的技术问题是提供一种版本启动方法和装置,克服版本启动过程中的问题,提高版本启动成功率。为了解决上述问题,本发明提供了一种版本启动方法,包括:引导程序(boot)启动,开启硬件狗,开始硬件喂狗;所述boot引导内核启动,内核启动成功后,执行监控进程,所述监控进程接管所述硬件喂狗开始监控进程喂狗;所述监控进程弓丨导用户态程序启动。进一步的,上述方法还可具有以下特点,所述方法还包括,所述用户态程序启动成功后,所述用户态程序的进程接管所述监控进程喂狗,开始用户态程序进程喂狗。进一步的,上述方法还可具有以下特点,所述方法还包括,所述用户态程序启动成功后,关闭所述硬件狗。进一步的,上述方法还可具有以下特点,所述boot引导内核启动包括:选择主用内核或备用内核,当所选的内核不可用时,重选选择内核;当所选的内核可用时,引导所选的内核启动。进一步的,上述方法还可具有以下特点,所述监控进程引导用户态程序启动包括:
所述监控进程选择主用用户态程序或者备用用户态程序,当所选的用户态程序不可用时,重选选择用户态程序;当所选的用户态程序可用时,引导所选的用户态程序启动。本发明还提供一种版本启动装置,包括:引导模块,用于启动引导程序(boot),开启硬件狗,开始硬件喂狗,使用所述boot引导内核启动;内核模块,用于在所述内核启动成功后,执行监控进程,接管所述硬件喂狗开始监控进程喂狗,引导用户态程序启动。进一步的,上述装置还可具有以下特点,所述装置还包括用户态程序模块,用于在所述用户态程序启动成功后,接管所述监控进程喂狗,开始用户态程序进程喂狗。进一步的,上述装置还可具有以下特点,所述装置还包括用户态程序模块,用于在所述用户态程序启动成功后,关闭所述硬件狗。进一步的,上述装置还可具有以下特点,所述引导模块使用所述boot引导内核启动包括:选择主用内核或备用内核,当所选的内核不可用时,重选选择内核;当所选的内核可用时,引导所选的内核启动。进一步的,上述装置还可具有以下特点,所述内核模块引导用户态程序启动包括:选择主用用户态程序或者备用用户态程序,当所选的用户态程序不可用时,重选选择用户态程序;当所选的用户态程序可用时,引导所选的用户态程序启动。本发明本着软件的易用性和可靠性考虑,可使嵌入式Iinux系统设备克服大多数版本问题和启动挂死等问题,实现版本正常启动,减少设备维护的困难和大大降低升级过程的隐患。


图1是本发明实施例版本启动方法流程图;图2是本发明实施例boot引导内核启动流程图;图3是本发明实施例监控进程引导app启动流程图;图4是本发明实施例版本启动装置框图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。喂狗是一种通过硬件和/或软件技术相结合的技术手段,通过软件和/或硬件对特定的寄存器定时进行置位,如果置位进行的不及时(即超时),则系统复位。本发明实施例将喂狗机制引入版本启动过程。版本启动通常包括三个过程:引导程序(boot)启动,内核启动和用户态程序启动。本发明实施例中,在启动过程中引进喂狗机制,在启动出现故障时,通过喂狗机制重启设备。下面进一步说明本发明。
首先说明主备版本机制,设备的flash上存储有主备用多个版本(大于等于两个),并有对应机制来标识当前应运行哪个版本。主备互为补充。如果一旦版本在运行前的校验发生错误(说明该版本有问题,比如说不完整),则系统会选择另外的备用版本进行校验启动,以保证设备版本的可运行性。另外如果发生升级过程掉电等问题,备用版本也可以保证设备正常启动。本发明的喂狗机制,是基本喂狗方式的一种拓展,在版本启动过程的几个阶段中,通过不同机制进行喂狗,从而实现各个阶段的监控。本发明实施例中软硬件喂狗包括硬件喂狗,内核监控进程喂狗以及用户态程序进程喂狗。这三级喂狗在启动过程为串行顺序,后一级喂狗接管前一级喂狗,是设备确保在启动全过程中系统保活监控机制。其中:硬件喂狗是硬件逻辑进行的喂狗,在设备上电之后由硬件无条件喂狗。主要用于监控内核启动过程中的问题,比如说内核挂死,在内核挂死/启动失败时能够重启系统。内核监控进程喂狗,软件喂狗机制,为Iinux进程上下文的喂狗,主要用于监控用户态程序启动过程的挂死,在用户态程序启动失败/挂死的时候重启系统;用户态程序进程喂狗,软件喂狗机制,是Iinux下进程内的线程的喂狗,该进程除此之外还有很多业务线程,这些线程共用该进程上下文,主要用于监控该进程内各个线程出现的各类异常情况,在进程内线程失败/挂死的时候重启系统。本发明实施例提供一种版本启动方法,如图1所示,包括:步骤101,引导程序(boot)启动,开启硬件狗,开始硬件喂狗;步骤102,所述boot引导内核启动,内核启动成功后,执行监控进程,所述监控进程接管所述硬件喂狗开始监控进程喂狗;步骤103,所述监控进程引导用户态程序启动。其中,所述方法还包括,所述用户态程序启动成功后,所述用户态程序的进程接管所述监控进程喂狗,开始用户态程序进程喂狗。其中,所述方法还包括,所述用户态程序启动成功后,关闭硬件狗。其中,本发明实施例中,boot,内核和用户态程序可采用主备版本的方式,当然,也可以其中一个或几个采用主备版本方式,比如,boot采用一个版本,内核和用户态程序采用主备版本方式。当然,也可以只采用单个版本。当采用主备版本方式时,三个启动过程分别如下:所述boot启动包括:设备上电后,选择主用和备用boot其中之一启动,如果所选的boot不可用,则选择另一 boot,所选的boot可用时,启动该boot。所述boot引导内核启动包括:选择主用内核或备用内核,当所选的内核不可用时,重选选择内核;当所选的内核可用时,引导所选的内核启动。所述监控进程引导用户态程序启动包括:所述监控进程选择主用用户态程序或者备用用户态程序,当所选的用户态程序不可用时,重选选择用户态程序;当所选的用户态程序可用时,引导所选的用户态程序启动。上述是基于主备版本机制的选择流程,也可以只有版本。比如,在没有双boot,只有一个boot时,直接启动boot即可。在只有一个内核时,直接引导该内核启动。在只有主用用户态程序时,直接引导该用户态程序启动。下文将用户态程序简称app。如图2所示,BOOT启动和内核启动包括:系统上电,BOOT启动,硬件开始喂狗。与此同时硬件狗也已经开始工作,如果此时boot出现异常情况,系统会被硬件狗机制复位,重新进行boot启动。内核启动包括:1)B00T引导内核启动BOOT启动之后,首先会触发设备的内核选择机制,选择当前适合启动的内核,判断所选的内核是否可用,如果不可用,则重新选择内核,在所选的内核可用时,引导所选的内核启动。引导内核启动之后发生任何异常情况,则需要通过硬件喂狗机制来重启设备。内核启动失败/挂死时,通过硬件喂狗机制重启设备。2)内核启动监控进程启动内核成功启动之后,执行监控进程。监控进程的主要工作有两个:1:引导app启动,由于启动app存在着主备版本选择机制,监控进程需要拥有版本选择的能力,在启动之后进行app版本的选择。2:接管硬件喂狗进行监控进程喂狗。如图3所示,app启动包括:监控进程启动之后,说明对应内核启动正常,没有出现挂死等情况,于是会自动接管硬件喂狗;监控进程会进入app版本选择过程,选择对应的app进行引导启动,判断所选的app是否可用,如果不可用,则重新选择app,如果可用,则监控进程引导所选的app启动。如果是引导app启动之后发生任何异常情况,则需要通过监控进程喂狗机制来重启设备。当app正常启动之后,可以由app进程喂狗接管监控进程喂狗,以实现与各设备app下喂狗的多功能型相兼容。当然,也可以关闭硬件狗。如图4所示,本发明实施例还提供一种版本启动装置,包括:引导模块,用于启动引导程序(boot),开启硬件狗,开始硬件喂狗,使用所述boot引导内核启动;内核模块,用于在所述内核启动成功后,执行监控进程,接管所述硬件喂狗开始监控进程喂狗,引导用户态程序启动。其中,所述装置还包括用户态程序模块,用于在所述用户态程序启动成功后,接管所述监控进程喂狗,开始用户态程序进程喂狗。其中,所述装置还包括用户态程序模块,用于在所述用户态程序启动成功后,关闭所述硬件狗。其中,所述引导模块使用所述boot引导内核启动包括:选择主用内核或备用内核,当所选的内核不可用时,重选选择内核;当所选的内核可用时,引导所选的内核启动。其中,所述内核模块引导用户态程序启动包括:选择主用用户态程序或者备用用户态程序,当所选的用户态程序不可用时,重选选择用户态程序;当所选的用户态程序可用时,引导所选的用户态程序启动。
本发明适用于带软硬件喂狗功能的Iinux嵌入式设备。本发明实施例提出的启动全过程监控的主备版本启动方式,不仅能防止版本丢失,而且还能监控版本启动的三个过程(boot启动,内核启动,用户态程序启动),任一过程发生问题,系统都可以进行监控,从而实施恢复,保证设备在大多数异常情况下都可以实现正常启动。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
权利要求
1.一种版本启动方法,其特征在于,包括: 引导程序(boot)启动,开启硬件狗,开始硬件喂狗; 所述boot引导内核启动,内核启动成功后,执行监控进程,所述监控进程接管所述硬件喂狗开始监控进程喂狗; 所述监控进程弓I导用户态程序启动。
2.如权利要求1所述的方法,其特征在于,所述方法还包括,所述用户态程序启动成功后,所述用户态程序的进程接管所述监控进程喂狗,开始用户态程序进程喂狗。
3.如权利要求1所述的方法,其特征在于,所述方法还包括,所述用户态程序启动成功后,关闭所述硬件狗。
4.如权利要求1至3任一所述的方法,其特征在于,所述boot引导内核启动包括: 选择主用内核或备用内核,当所选的内核不可用时,重选选择内核;当所选的内核可用时,引导所选的内核启动。
5.如权利要求1至3任一所述的方法,其特征在于,所述监控进程弓I导用户态程序启动包括: 所述监控进程选择主用用户态程序或者备用用户态程序,当所选的用户态程序不可用时,重选选择用户态程序;当所选的用户态程序可用时,引导所选的用户态程序启动。
6.一种版本启动装置,其特征在于,包括: 引导模块,用于启动引导程序(boot),开启硬件狗,开始硬件喂狗,使用所述boot引导内核启动; 内核模块,用于在所述内核启动成功后,执行监控进程,接管所述硬件喂狗开始监控进程喂狗,引导用户态程序启动。
7.如权利要求6所述的装置,其特征在于,所述装置还包括用户态程序模块,用于在所述用户态程序启动成功后,接管所述监控进程喂狗,开始用户态程序进程喂狗。
8.如权利要求6所述的装置,其特征在于,所述装置还包括用户态程序模块,用于在所述用户态程序启动成功后,关闭所述硬件狗。
9.如权利要求6、7或8所述的装置,其特征在于,所述引导模块使用所述boot引导内核启动包括: 选择主用内核或备用内核,当所选的内核不可用时,重选选择内核;当所选的内核可用时,引导所选的内核启动。
10.如权利要求6、7或8所述的装置,其特征在于,所述内核模块引导用户态程序启动包括: 选择主用用户态程序或者备用用户态程序,当所选的用户态程序不可用时,重选选择用户态程序;当所选的用户态程序可用时,引导所选的用户态程序启动。
全文摘要
本发明提供一种版本启动方法,包括引导程序(boot)启动,开启硬件狗,开始硬件喂狗;所述boot引导内核启动,内核启动成功后,执行监控进程,所述监控进程接管所述硬件喂狗开始监控进程喂狗;所述监控进程引导用户态程序启动。本发明还提供一种版本启动装置。本发明可以全程监控版本启动过程,提高版本启动成功率。
文档编号G06F9/445GK103207788SQ20121001125
公开日2013年7月17日 申请日期2012年1月13日 优先权日2012年1月13日
发明者张鑫 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1