CN100365585C - 一种监控硬件狗复位的方法及系统 - Google Patents
一种监控硬件狗复位的方法及系统 Download PDFInfo
- Publication number
- CN100365585C CN100365585C CNB2006101404737A CN200610140473A CN100365585C CN 100365585 C CN100365585 C CN 100365585C CN B2006101404737 A CNB2006101404737 A CN B2006101404737A CN 200610140473 A CN200610140473 A CN 200610140473A CN 100365585 C CN100365585 C CN 100365585C
- Authority
- CN
- China
- Prior art keywords
- task
- information
- reset
- record
- interrupting
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种监控硬件狗复位的方法及系统,属于计算机应用领域。为了解决现有技术中软件对硬件狗复位不能察觉的问题,本发明提供了一种监控硬件狗复位的方法,所述方法包括系统运行时,记录开中断信息和关中断信息;如果系统发生复位,备份复位前记录的信息;当开中断信息和关中断信息不匹配时,则是硬件狗导致的系统复位的步骤。本发明还提供了一种监控硬件狗复位的系统,所述系统包括监控模块和分析模块。采用本发明提供的技术方案可以判断出系统上次的复位是否是由于硬件狗复位导致的,同时可以提高定位软件问题的时间和系统的维护时间。
Description
技术领域
本发明涉及计算机应用领域,特别涉及一种监控硬件狗复位的方法及系统。
背景技术
嵌入式控制系统的设备对实时性和可靠性要求很高,所以要求系统或电路在受到干扰情况下能够自动地进行复位,重新启动并正常运行,从而保证系统从软、硬件错误中恢复正常的运行。
目前通用的做法就是增加设计硬件狗WDT(Watch Dog Timer,看门狗定时器/看门狗计时器),WDT一般是单板可靠性的最后一道防线。通常单板在检测到不可恢复的错误或单板软件死循环的情况下WDT产生复位信号,防止单板死机。这样只要能够检测到的错误都是可以通过复位来恢复。但是也产生了相应的问题,由于硬件狗复位是直接由WDT产生复位信号来进行对系统复位的,这种复位对于软件来说是不知道到的或者是不可控的。
系统复位的原因很多,如:软件异常导致复位,软件任务死循环,系统掉电,硬件狗复位,硬件问题等等。对可靠性和可维护性要求很高的实时系统来说,能够区分并且确定系统是由于什么原因复位是非常必要的。硬件狗复位是软件不知道并且不可控的,到目前为止还没有一种通过软件有效地来监控硬件狗复位的方法。
发明内容
本发明为了解决现有技术中软件对硬件狗复位不能察觉的问题,提供了一种监控硬件狗复位的方法及系统。所述技术方案如下:
本发明提供了一种监控硬件狗复位的方法,所述方法包括以下步骤:
步骤A:系统运行时,记录各个任务的开中断信息和关中断信息;
步骤B:系统发生复位启动后,备份系统复位前记录的信息,如果有开中断信息与关中断信息不匹配,则是硬件狗导致的系统复位。
所述步骤A具体包括:
步骤A1:系统开启后,为每个任务设置开关中断计数器,并把所有任务的开关中断计数清0;
步骤A2:当有任务进行关中断处理时,将该任务的开关中断计数加1;当有任务进行开中断处理时,把该任务的开关中断计数减1;
相应地,所述步骤B具体包括:
系统发生复位启动后,备份系统复位前记录的开关中断计数,如果有开关中断计数不为0,则是硬件狗导致的系统复位。
所述步骤A还包括:
当有任务进行关中断处理时,记录关中断的调用栈信息,当进行任务切换时,判断此任务的开中断信息与关中断信息是否匹配,如果不匹配,将该任务的关中断调用栈信息进行备份,并写入日志作为告警信息;
相应地,所述步骤B还包括:
判断开中断信息与关中断信息不匹配的个数,如果有一个任务的开中断信息与关中断信息不匹配,则根据记录的该任务的关中断调用栈信息分析复位的原因;如果有多个任务的开中断信息与关中断信息不匹配,则根据日志记录的时间得出先告警的任务的关中断调用是系统复位的原因。
所述步骤A还包括:
在中断处理的入口和出口记录中断向量,相应地,步骤B还包括:检查系统复位前最后的设定定时时长内没有时钟中断处理,则系统复位的原因是没有进行清硬件狗操作。
本发明还提供了一种监控硬件狗复位的系统,所述系统包括以下模块:
监控模块,用于系统运行时,记录各个任务的开中断信息和关中断信息;
分析模块,用于系统发生复位启动后,备份系统复位前记录的信息,如果有开中断信息与关中断信息不匹配,则是硬件狗导致的系统复位。
所述监控模块具体包括:
初始化单元,用于系统开启后,为每个任务设置开关中断计数器,并把所有任务的开关中断计数清0;
计数单元,用于当有任务进行关中断处理时,将该任务的开关中断计数加1;当有任务进行开中断处理时,把该任务的开关中断计数减1;
相应地,所述分析模块具体包括:
分析单元,用于系统发生复位启动后,备份系统复位前记录的开关中断计数,如果有开关中断计数不为0,则是硬件狗导致的系统复位。
所述监控模块还包括:
记录信息单元,用于当有任务进行关中断处理时,记录关中断的调用栈信息,当进行任务切换时,判断此任务的开中断信息与关中断信息是否匹配,如果不匹配,将该任务的关中断调用栈信息进行备份,并写入日志作为告警信息;
相应地,所述分析模块还包括:
复位原因分析单元,用于判断开中断信息与关中断信息不匹配的个数,如果有一个任务的开中断信息与关中断信息不匹配,则根据记录的该任务的关中断调用栈信息分析复位的原因;如果有多个任务的开中断信息与关中断信息不匹配,则根据日志记录的时间得出先告警的任务的关中断调用是系统复位的原因。
所述监控模块还包括:
中断向量记录单元,用于在中断处理的入口和出口记录中断向量,相应地,所述分析模块还用于检查系统复位前最后的设定定时时长内没有时钟中断处理,则系统复位的原因是没有进行清硬件狗操作。
应用本发明提供的技术方案带来的有益效果是:
1.系统发生复位之后,可以定位出系统上次的复位是否是由于硬件狗复位导致的。
2.通过对中断进行跟踪操作,可以知道系统复位前的中断处理情况:中断处理的是否频繁,最后的中断是什么中断,最后的中断处理有没有结束等。
3.通过中断向量还可以看出系统是否有中断处理的不合理。
4.上面所有的信息的记录和分析能够提高软件问题定位的时间,提高系统的可维护性。
附图说明
图1是本发明实施例2提供的监控硬件狗复位的系统示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
本发明主要通过软件的方法记录系统运行过程中的信息,通过所记录的信息判断由于硬件狗复位引起系统复位的情况。
硬件狗在初始化的时候会同时开启狗定时器,如果WDT的输入端在设定的定时时长内无变化,例如1点几秒,具体时长可以根据经验设定,在WDT的输出端就会输出一个计时溢出信号,而这个溢出信号最终会变成系统的复位信号,从而使系统复位。例如,系统出现死循环时,通过狗定时电路可以使系统复位,不至于一直处于瘫痪状态。
系统正常工作时,需要通过定时对硬件狗进行清狗操作,避免硬件狗超时导致系统复位。一般系统的清硬件狗操作是通过时钟中断处理进行的。
当时钟中断不能得到及时处理时,将导致硬件狗输出溢出信号,使系统复位。有两种情况会使时钟中断不能及时处理,一个是时钟中断被关,另一个是频繁的来优先级比时钟中断更高的中断。本发明就是基于时钟中断清硬件狗操作来进行的。
实施例1
一种监控硬件狗复位的方法,针对时钟中断被关闭的情况,该方法如下:
系统运行时,记录各个任务的开中断信息和关中断信息;
系统发生复位启动后,备份系统复位前的记录的信息,如果开中断信息与关中断信息不匹配,则是硬件狗导致的系统复位。
本实施例开中断信息和关中断信息以开关中断计数为例,即为每个任务设置一个开关中断计数器,具体监控的方法如下:
系统运行时,记录各个任务关中断的调用栈信息,每个任务的开关中断的匹配关系,并在系统的任务切换钩子里面判断任务的开关中断是否匹配。
关中断操作处理有些是基于任务的,有些是全局的,并且关中断之后系统还可能会发生任务切换,本发明采用对每个任务记录关中断的调用栈信息和开关中断的匹配信息。
系统给每个任务一块空间用于记录每个任务的关中断调用栈信息、开关中断的匹配信息。
具体记录关中断的调用栈信息和开关中断的匹配信息如下:
系统给每个任务都设置一个开关中断计数,且该开关中断计数初始值为0,各个任务进行关中断处理的时候,先判断开关中断计数是否为0,如果该任务的开关中断计数为0,则把关中断的调用栈信息记录下来,并且这个任务的开关中断计数加1;如果该任务的开关中断计数大于0,说明该任务的调用栈信息已经记录下来了,则把这个任务的开关中断计数加1。
系统默认的中断状态为“开”状态,各个任务在进行开中断处理的时候,把当前任务的开关中断计数减1。
开关中断的匹配信息是每个任务开关中断计数的具体数值,如果开关中断计数为0,则说明开关中断匹配,否则说明不匹配。
在系统发生任务切换的时候,判断开关中断是否匹配,如果发现不匹配,即开关中断计数不为0,该任务的操作可能有问题(因为对于一个任务而言开关中断应该闭环,即开关中断计数等于0)。则把此任务关中断的调用栈信息备份出去,并写入日志作为告警信息。
通过上述系统运行时记录的信息,如果系统发生复位,通过以下方法可以判断由于硬件狗复位引起系统复位的情况。
首先,启动系统后,备份系统复位前的信息(各个任务的关中断的调用栈信息和开关中断匹配信息)。备份完后把所有任务的开关中断计数清0。
根据备份的信息,读取每个任务的开关中断计数,如果发现系统复位前开关中断的计数不为0,则说明是硬件狗复位导致的系统复位;否则不是硬件狗的原因导致的系统复位。
对于是硬件狗复位导致系统复位的情况,还可以根据记录的信息分析出导致复位的原因,具体为:判断有几个任务的开关中断计数不为0,如果只有一个任务的开关中断计数不为0,则根据记录的关中断调用栈信息分析问题的原因;如果有多个任务的开关中断计数不为0,则日志里面有开关中断的告警信息,根据日志记录的时间得出先告警的任务的关中断调用栈信息是导致系统复位的原因。
针对频繁的来优先级比时钟中断更高的中断的情况,监控硬件狗复位的方法还包括:
进行中断的跟踪操作:在中断处理的入口和出口简单地记录中断向量(中断处理是进还是出)。如果系统复位了,根据记录的中断向量查看在系统复位前最后的设定定时时长内有没有时钟中断进行处理。如果在该时长内没有时钟中断到来,说明在该时长内没有进行清硬件狗操作,系统复位的原因是硬件狗超时产生溢出信号。
实施例2
参见图1,本发明还提供了一种监控硬件狗复位的系统,包括以下模块:
监控模块,用于系统运行时,记录各个任务的开中断信息和关中断信息;
分析模块,用于系统发生复位启动后,备份系统复位前记录的信息,如果有开中断信息与关中断信息不匹配,则是硬件狗导致的系统复位。
其中,监控模块具体包括:
初始化单元,用于系统开启后,为每个任务设置开关中断计数器,并把所有任务的开关中断计数清0;
计数单元,用于当有任务进行关中断处理时,将该任务的开关中断计数加1;当有任务进行开中断处理时,把该任务的开关中断计数减1;
相应地,分析模块具体包括:
分析单元,用于系统发生复位启动后,备份系统复位前记录的开关中断计数,如果有开关中断计数不为0,则是硬件狗导致的系统复位。
为了分析出系统复位的具体原因,监控模块还包括:
记录信息单元,用于当有任务进行关中断处理时,记录关中断的调用栈信息,当进行任务切换时,判断此任务的开中断信息与关中断信息是否匹配,如果不匹配,将该任务的关中断调用栈信息进行备份,并写入日志作为告警信息;
相应地,所述分析模块还包括:
复位原因分析单元,用于判断开中断信息与关中断信息不匹配的个数,如果有一个任务的开中断信息与关中断信息不匹配,则根据记录的该任务的关中断调用栈信息分析复位的原因;如果有多个任务的开中断信息与关中断信息不匹配,则根据日志记录的时间得出先告警的任务的关中断调用是系统复位的原因。
对于频繁来优先级比时钟中断高的中断的情况,监控模块还包括:
中断向量记录单元,用于在中断处理的入口和出口记录中断向量,相应地,分析模块还用于检查系统复位前最后的设定定时时长内没有时钟中断处理,则系统复位的原因是没有进行清硬件狗操作。
以上所述的实施例,只是本发明较优选的具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (8)
1.一种监控硬件狗复位的方法,其特征在于,所述方法包括以下步骤:
步骤A:系统运行时,记录各个任务的开中断信息和关中断信息;
步骤B:系统发生复位启动后,备份系统复位前记录的信息,如果有开中断信息与关中断信息不匹配,则是硬件狗导致的系统复位。
2.如权利要求1所述的监控硬件狗复位的方法,其特征在于,所述步骤A具体包括:
步骤A1:系统开启后,为每个任务设置开关中断计数器,并把所有任务的开关中断计数清0;
步骤A2:当有任务进行关中断处理时,将该任务的开关中断计数加1;当有任务进行开中断处理时,把该任务的开关中断计数减1;
相应地,所述步骤B具体包括:
系统发生复位启动后,备份系统复位前记录的开关中断计数,如果有开关中断计数不为0,则是硬件狗导致的系统复位。
3.如权利要求1或2所述的监控硬件狗复位的方法,其特征在于,所述步骤A还包括:
当有任务进行关中断处理时,记录关中断的调用栈信息,当进行任务切换时,判断此任务的开中断信息与关中断信息是否匹配,如果不匹配,将该任务的关中断调用栈信息进行备份,并写入日志作为告警信息;
相应地,所述步骤B还包括:
判断开中断信息与关中断信息不匹配的个数,如果有一个任务的开中断信息与关中断信息不匹配,则根据记录的该任务的关中断调用栈信息分析复位的原因;如果有多个任务的开中断信息与关中断信息不匹配,则根据日志记录的时间得出先告警的任务的关中断调用是系统复位的原因。
4.如权利要求1所述的监控硬件狗复位的方法,其特征在于,所述步骤A还包括:
在中断处理的入口和出口记录中断向量,相应地,步骤B还包括:检查系统复位前最后的设定定时时长内没有时钟中断处理,则系统复位的原因是没有进行清硬件狗操作。
5.一种监控硬件狗复位的系统,其特征在于,所述系统包括以下模块:
监控模块,用于系统运行时,记录各个任务的开中断信息和关中断信息;
分析模块,用于系统发生复位启动后,备份系统复位前记录的信息,如果有开中断信息与关中断信息不匹配,则是硬件狗导致的系统复位。
6.如权利要求5所述的监控硬件狗复位的系统,其特征在于,所述监控模块具体包括:
初始化单元,用于系统开启后,为每个任务设置开关中断计数器,并把所有任务的开关中断计数清0;
计数单元,用于当有任务进行关中断处理时,将该任务的开关中断计数加1;当有任务进行开中断处理时,把该任务的开关中断计数减1;
相应地,所述分析模块具体包括:
分析单元,用于系统发生复位启动后,备份系统复位前记录的开关中断计数,如果有开关中断计数不为0,则是硬件狗导致的系统复位。
7.如权利要求5或6所述的监控硬件狗复位的系统,其特征在于,所述监控模块还包括:
记录信息单元,用于当有任务进行关中断处理时,记录关中断的调用栈信息,当进行任务切换时,判断此任务的开中断信息与关中断信息是否匹配,如果不匹配,将该任务的关中断调用栈信息进行备份,并写入日志作为告警信息;
相应地,所述分析模块还包括:
复位原因分析单元,用于判断开中断信息与关中断信息不匹配的个数,如果有一个任务的开中断信息与关中断信息不匹配,则根据记录的该任务的关中断调用栈信息分析复位的原因;如果有多个任务的开中断信息与关中断信息不匹配,则根据日志记录的时间得出先告警的任务的关中断调用是系统复位的原因。
8.如权利要求5所述的监控硬件狗复位的系统,其特征在于,所述监控模块还包括:
中断向量记录单元,用于在中断处理的入口和出口记录中断向量,相应地,所述分析模块还用于检查系统复位前最后的设定定时时长内没有时钟中断处理,则系统复位的原因是没有进行清硬件狗操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101404737A CN100365585C (zh) | 2006-10-09 | 2006-10-09 | 一种监控硬件狗复位的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101404737A CN100365585C (zh) | 2006-10-09 | 2006-10-09 | 一种监控硬件狗复位的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1949181A CN1949181A (zh) | 2007-04-18 |
CN100365585C true CN100365585C (zh) | 2008-01-30 |
Family
ID=38018706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101404737A Expired - Fee Related CN100365585C (zh) | 2006-10-09 | 2006-10-09 | 一种监控硬件狗复位的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100365585C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761439B (zh) * | 2012-06-13 | 2014-11-19 | 烽火通信科技股份有限公司 | Pon接入系统中基于看门狗的异常检测记录装置及方法 |
CN109062720A (zh) * | 2018-07-18 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种服务器、服务器主板及其复位识别方法及系统 |
CN116382977B (zh) * | 2023-03-31 | 2023-12-01 | 上海玫克生储能科技有限公司 | 一种应用于数据通信的复位检测方法、系统及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09231105A (ja) * | 1996-02-23 | 1997-09-05 | Mitsubishi Electric Corp | プログラム障害検出方法 |
US6112320A (en) * | 1997-10-29 | 2000-08-29 | Dien; Ghing-Hsin | Computer watchdog timer |
CN1632760A (zh) * | 2003-12-24 | 2005-06-29 | 华为技术有限公司 | 一种对控制系统异常状态信息进行保存的方法 |
-
2006
- 2006-10-09 CN CNB2006101404737A patent/CN100365585C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09231105A (ja) * | 1996-02-23 | 1997-09-05 | Mitsubishi Electric Corp | プログラム障害検出方法 |
US6112320A (en) * | 1997-10-29 | 2000-08-29 | Dien; Ghing-Hsin | Computer watchdog timer |
CN1632760A (zh) * | 2003-12-24 | 2005-06-29 | 华为技术有限公司 | 一种对控制系统异常状态信息进行保存的方法 |
Non-Patent Citations (1)
Title |
---|
使用MSP430F1121中断须要注意的问题. 韩炬.单片机与嵌入式系统应用,第1期. 2001 * |
Also Published As
Publication number | Publication date |
---|---|
CN1949181A (zh) | 2007-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101452420B (zh) | 一种嵌入式软件异常监控和处理装置及其方法 | |
CN102761439B (zh) | Pon接入系统中基于看门狗的异常检测记录装置及方法 | |
CN102141947B (zh) | 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统 | |
CN100397353C (zh) | 一种提高单板异常处理能力的系统和方法 | |
CN101976217A (zh) | 网络处理器异常检测方法及系统 | |
CN101673216A (zh) | 应用程序关闭方法和装置 | |
CN100370756C (zh) | 系统的复位处理方法及装置 | |
CN101853191B (zh) | 检测操作系统中任务死循环的方法及系统 | |
CN100395722C (zh) | 一种对控制系统异常状态信息进行保存的方法 | |
CN100365585C (zh) | 一种监控硬件狗复位的方法及系统 | |
CN102300001A (zh) | 一种防止移动终端存储卡频繁热插拔的方法及移动终端 | |
CN201021986Y (zh) | 看门狗复位电路 | |
CN101221518B (zh) | 一种防止硬件看门狗的定时器溢出的方法、装置与系统 | |
CN106897177A (zh) | 一种基于移动终端指纹系统短路检测和保护的方法及系统 | |
CN116126772A (zh) | 一种应用于arm服务器的uart串口管理系统及方法 | |
CN105426263A (zh) | 一种实现金库系统安全运行的方法及系统 | |
CN102662787A (zh) | 一种保护系统盘raid的方法 | |
CN1400529A (zh) | 一种实时嵌入系统的故障定位方法 | |
CN106375114A (zh) | 一种热插拔故障恢复方法及分布式设备 | |
CN108762886B (zh) | 虚拟机的故障检测恢复方法及系统 | |
CN102810072B (zh) | 计算机系统及其重新启动方法 | |
CN103995759A (zh) | 基于核内外协同的高可用计算机系统故障处理方法及装置 | |
CN101369238A (zh) | Usb设备中异常监控复位处理方法 | |
CN106776135A (zh) | 一种数据备份方法以及装置 | |
CN202153352U (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080130 Termination date: 20161009 |