在启动过程中监控计算机操作系统的方法技术方案

技术编号:11975222 阅读:174 留言:0更新日期:2015-08-31 01:10
一种不增加硬件成本、不影响系统启动时间的可在系统启动过程中监控计算机操作系统的方法。包括如下步骤:1)在系统上电启动后,打开实时中断,将系统的中断模块代码和系统启动过程中“喂狗”方案代码作为紧急加载部分预先加载到系统中;2)执行紧急加载部分中的“喂狗”方案代码,依靠打开的实时中断,利用指定的定时器周期性的触发实时中断来完成“喂狗”;3)在“喂狗”函数中指定一个技术器来判断该系统启动是否超时,如果超时则不“喂狗”,由该硬件看门狗复位系统重新加载;4)启动完成后,在系统任务中解除所述的指定的定时器,将该硬件看门狗交于系统的软件管理。其可解决系统启动过程中因为无法喂看门狗导致的系统启动失败。

【技术实现步骤摘要】
【专利摘要】一种不增加硬件成本、不影响系统启动时间的可在系统启动过程中监控计算机操作系统的方法。包括如下步骤:1)在系统上电启动后,打开实时中断,将系统的中断模块代码和系统启动过程中“喂狗”方案代码作为紧急加载部分预先加载到系统中;2)执行紧急加载部分中的“喂狗”方案代码,依靠打开的实时中断,利用指定的定时器周期性的触发实时中断来完成“喂狗”;3)在“喂狗”函数中指定一个技术器来判断该系统启动是否超时,如果超时则不“喂狗”,由该硬件看门狗复位系统重新加载;4)启动完成后,在系统任务中解除所述的指定的定时器,将该硬件看门狗交于系统的软件管理。其可解决系统启动过程中因为无法喂看门狗导致的系统启动失败。【专利说明】
本专利技术涉及一种计算机操作系统的监控方法,特别涉及一种嵌入式计算机操作系统在启动过程中的监控方法。
技术介绍
通常,在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称〃看门狗〃(英文称watchdog)。 看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出(以下称定时器溢出为“狗叫”),也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗(即对定时器清零),就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计。 在现有技术的嵌入式计算机操作系统中,通常在系统上电启动时,看门狗也就被启动,而在系统启动加载过程中如何“喂狗”,有如下几种方法: 1)在启动过程中“喂狗”:即在系统启动过程的加载代码中添加“喂狗”代码,该方法虽然可以避免在系统启动过程中因为看门狗“狗叫”导致系统复位引起系统加载不成功,但是在加载代码中插入较多的“喂狗”代码会使系统加载代码繁多杂乱,由此,会导致启动速度缓慢。当操作系统为不开源加载代码的操作系统时,该方法不可使用。 2)推迟启动看门狗:即在系统的启动过程中,关闭看门狗,当系统启动完成后再启动看门狗,再由软件来管理看门狗。该方法对于启动加载时间较短的系统而言确实有一定效果,但是当操作系统在加载的过程中出错(即操作系统加载失败)时,由于看门狗处于关闭状态而无法对该操作系统进行监控复位,导致系统死机。另外,使所设的看门狗资源派不上用场,导致浪费。 3)启动过程中硬件“喂狗”:在系统启动的过程中使用另外设置的硬件看门狗,将“喂狗”任务交由该硬件看门狗完成。若系统启动完成,则通知该硬件看门狗不要“喂狗”,对操作系统的监控交由系统中设置的软件看门狗管理,此时,硬件“喂狗”保持一定时限,到达预定时限。若系统还未启动成功就认为系统启动失败,由该硬件看门狗复位系统。该方法既可以解决系统在启动过程中“喂狗”的问题,又能使该看门狗起到对系统启动的监视功能,但是其必须增加一个外设(即所述的硬件看门狗),这无疑会增加系统的成本;同时,对于系统的软复位而言,复位的可能仅仅是CPU而非外设,导致系统的软重启又会进入到原来的问题上:启动过程中无法“喂狗”导致启动失败。
技术实现思路
本专利技术要解决的技术问题是提供一种不增加硬件成本、不影响系统启动时间的可在系统启动过程中监控计算机操作系统的方法。 为了解决上述技术问题,本专利技术采用的技术方案为: 本专利技术的,包括如下步骤: 1)在系统上电启动后,打开实时中断,将系统的中断模块代码和系统启动过程中“喂狗”方案代码作为紧急加载部分预先加载到系统中; 2)在系统启动过程中执行所述紧急加载部分中的“喂狗”方案代码,依靠打开的实时中断,利用指定的定时器周期性的触发实时中断来完成“喂狗”; 3)在“喂狗”函数中指定一个技术器来判断该系统启动是否超时,如果超时则不“喂狗”,由该硬件看门狗复位系统重新加载; 4)系统正常启动完成后,在系统任务中解除所述的指定的定时器,将该硬件看门狗交于系统的软件管理。 所述中断模块代码由编译器的编译和链接器的链接并经操作系统引导程序加载到链接指定的运行地址,该运行地址存储在记忆性的存储介质中。 在操作系统引导程序的引导过程中,优先加载中断管理和需要提前执行的代码,然后进行中断管理模块的初始化以及硬件定时器初始化,并将硬件定时器的中断服务函数设置为复位硬件看门狗。 与现有技术相比,解决系统启动过程中因为无法喂看门狗导致的因为看门狗的狗叫导致系统启动失败,同时避免更改系统的加载代码,实现简单。该方法实现简单,看门狗的模块代码可以单独作为一个模块编译,简化了代码布局的难度,对源代码依赖性小,可以单独编译;该方案在没有增加硬件的前提下,实现了看门狗对系统启动的整个过程的监视,在一定程度上节约了成本。 【专利附图】【附图说明】 图1为本专利技术方法的流程图。 图2为本专利技术方法中普通中断和实时中断关系示意图。 【具体实施方式】 如图1所示,本专利技术的是采用在启动过程中启动硬件定时器,在硬件定时器的中断服务函数中实现我们的硬件看门狗的复位(读写某个硬件寄存器或者10端口),而传统OS启动过程中一般都是禁止中断发生。因此实现的难点和关键就在于:如何在系统启动过程中实现硬件定时器启动而又不破坏系统的整个OS的启动过程。首先我们重新构造我们的中断管理模块,中断分为实时中断和普通中断(如图2所示),普通中断即为传统OS的中断模块,而实时中断则为紧急处理中断,是可以打断普通中断的。整个中断管理模块如图2所示。因此配置硬件定时器为实时中断,在启动过程中关闭普通中断总开关而打开中断总开关,可以让硬件定时器中断可以产生定时中断,从而实现在定时器中断呢函数中复位看门狗,避免启动过程中看门狗复位系统导致不断的系统重启。其次,在硬件看门狗的中断服务函数中,记录复位硬件看门狗的次数,超过指定次数就不再复位硬件看门狗,该指定次数根据系统正常加载和启动时间来决定,当系统在加载和启动过程中出现意外导致不能正常启动时,由于超过指定的复位看门狗次数导致不再复位看门狗,从而由硬件看门狗进行复位系统并重新启动。再次,关于中断管理我们使用实时中断这段代码必须提前加载到指定的运行时地址并执行。代码在经过编译器的编译和链接器的链接之后才成为真正的可执行代码,但是这部分可执行代码一般的存储在记忆性的存储介质中,必须加载到链接指定的运行时地址上才可以正确运行,而这部分工作通常由引导程序完成。为了保证中断管理模块以及使用实时中断的硬件定时器代码能够提前加载并运行,必须在链接的时候通过脚本文件配置该部分代码到指定的位置。最后,在引导程序中,优先加载中断管理和需要提前执行的代码(硬件定时器的初始化和中断服务函数),然后进行中断管理模块的初始化以及硬件定时器初始化,并将硬件定时器的中断服务函数设置为复位硬件看门狗,完成之后再继续进行系统的加载和系统的启动本文档来自技高网
...

【技术保护点】
一种在启动过程中监控计算机操作系统的方法,其特征在于:包括如下步骤:1)在系统上电启动后,打开实时中断,将系统的中断模块代码和系统启动过程中“喂狗”方案代码作为紧急加载部分预先加载到系统中;2)在系统启动过程中执行所述紧急加载部分中的“喂狗”方案代码,依靠打开的实时中断,利用指定的定时器周期性的触发实时中断来完成“喂狗”;3)在“喂狗”函数中指定一个技术器来判断该系统启动是否超时,如果超时则不“喂狗”,由该硬件看门狗复位系统重新加载;4)系统正常启动完成后,在系统任务中解除所述的指定的定时器,将该硬件看门狗交于系统的软件管理。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈远生罗侍田罗来峰张前福孔德深林超范东凯朱海兵
申请(专利权)人:长园深瑞继保自动化有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1