CN101295273B - 看门狗设计方法及看门狗装置 - Google Patents

看门狗设计方法及看门狗装置 Download PDF

Info

Publication number
CN101295273B
CN101295273B CN2008101153263A CN200810115326A CN101295273B CN 101295273 B CN101295273 B CN 101295273B CN 2008101153263 A CN2008101153263 A CN 2008101153263A CN 200810115326 A CN200810115326 A CN 200810115326A CN 101295273 B CN101295273 B CN 101295273B
Authority
CN
China
Prior art keywords
count value
program
house dog
startup
constantly
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
Application number
CN2008101153263A
Other languages
English (en)
Other versions
CN101295273A (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.)
Vimicro Corp
Original Assignee
Vimicro Corp
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 Vimicro Corp filed Critical Vimicro Corp
Priority to CN2008101153263A priority Critical patent/CN101295273B/zh
Publication of CN101295273A publication Critical patent/CN101295273A/zh
Application granted granted Critical
Publication of CN101295273B publication Critical patent/CN101295273B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了看门狗设计方法及看门狗装置。方法包括:看门狗启动,从0开始计数,看门狗检测到系统读取计数值,计算计数值除以预设值后所得的余数,看门狗从该余数起重新开始计数。本发明避免了看门狗在到达预设值后发出信号而引起系统响应该信号情况的发生,降低了系统的处理负担。本发明可用于监测多个启动程序的先后顺序、监测相邻程序之间的启动时间间隔、跟踪多个应用程序的运行时长或结束时刻等。

Description

看门狗设计方法及看门狗装置
技术领域
本发明涉及定时器技术领域,具体涉及看门狗设计方法及看门狗装置。
背景技术
看门狗是一种设备或电子卡,如果一个系统出现故障且在预定时长内不能自动恢复,则看门狗就会执行特殊操作。例如:对于一台机器或者操作系统,如果其内部两个部件或者程序出现冲突,或者在操作系统中出现内存管理问题时,系统就会挂起,在某些情况下,系统最终将会自己恢复,但是从挂起到恢复可能需要很长一段时间,此时,可将看门狗设置成如下模式:当在预定时长内系统对外设部件如:鼠标、键盘的动作都没有反应时,看门狗就执行热启动。看门狗还有其他用途,例如:在浏览网页时,若输入网址之后的预定时长内网页都未完全装载,此时,看门狗就自动开启网页上的刷新按钮来执行刷新动作。
目前,看门狗都是通过以下原理设计的:看门狗内包含一个计数器,该计数器从一个预设值开始以不变的速度减到0,或者从0加到预设值,当系统发生异常后,若在计数器从预设值减到0或从0加到预设值之前系统未恢复,则看门狗就会向指定的电路发送信号,通知电路执行相应动作,同时返回初始值。
可以看出,目前看门狗主要用于检测系统异常以帮助系统恢复。实际上,在其他应用中也需用到看门狗,例如:在某些系统的启动过程中,需要保证多个启动程序的先后顺序,可能还需要保证相邻程序之间的启动时间间隔不大于预设间隔;或者,在系统的多个应用程序的运行过程中,需要跟踪各个应用程序的运行时长或结束时刻。这两种情况下,若采用现有的看门狗设计方案,则看门狗每减少到0或增加到预设值都要发出信号,系统都要来响应该信号,但此时可能并不是程序的启动或结束时刻,系统响应该信号是无用的,这显然给系统增加了无谓的处理负担。
发明内容
本发明提供看门狗设计方法及看门狗装置,以降低系统处理负担。
本发明的技术方案是这样实现的:
一种看门狗设计方法,包括:
看门狗启动,从0开始计数,看门狗检测到系统读取计数值,计算计数值除以预设值后所得的余数,看门狗从该余数起重新开始计数。
看门狗预先设置一个最大计数值,
且,所述方法进一步包括:看门狗检测到计数值到达最大计数值,则从0开始重新计数。
所述看门狗从0开始重新计数的同时进一步包括:看门狗向系统发出复位信号。
所述看门狗检测到系统读取计数值之前进一步包括:
系统检测到一个程序启动,从看门狗读取计数值;
且,系统根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的启动时刻;
当所有程序都启动后,系统根据所有程序的启动时刻,确定程序启动的先后顺序是否正确。
所述系统将该总计数值作为当前程序的启动时刻之后进一步包括:
系统计算当前程序的启动时刻与前一程序的启动时刻的差值,判断该差值是否不大于预设最大启动时间间隔,若是,确定当前程序与前一程序的启动间隔正常;否则,确定当前程序与前一程序的启动间隔异常。
所述述看门狗检测到系统读取计数值之前进一步包括:
系统检测到一个程序结束,从看门狗读取计数值;
且,系统根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的结束时刻。
所述系统将总计数值作为当前程序的结束时刻之后进一步包括:
系统计算当前程序的结束时刻与前一程序的结束时刻的差值,将该差值作为当前程序的运行时长。
一种看门狗装置,包括:计数器和重启模块,其中:
计数器,启动时,从0开始计数;接收到重启模块发来的余数,从该余数起开始重新计数;
重启模块,检测到系统从计数器读取计数值,计算计数值除以预设值后所得的余数,将该余数发送给计数器。
该装置进一步包括:
复位模块,检测到计数器的计数值到达预先设置的最大计数值,则向计数器发送复位指示;
且,所述计数器收到该复位指示后,从0开始重新计数。
所述复位模块进一步用于,在检测到计数器的计数值到达预先设置的最大计数值时,向系统发出复位信号。
一种应用看门狗的系统,包括:
看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除以预设值后所得的余数,从该余数起重新开始计数;
程序启动监测模块,检测到一个程序启动,读取看门狗的计数值,将该计数值发送出去;
程序启动时刻确定模块,接收程序启动监测模块发来的计数值,计算看门狗的当前总计数值,将该总计数值作为当前程序的启动时刻,记录该启动时刻;
程序启动时刻记录模块,记录每个程序的启动时刻;
程序启动顺序检测模块,从程序启动时刻记录模块获取各程序的启动时刻,根据该启动时刻确定程序启动的先后顺序是否正确。
所述系统进一步包括:
启动间隔监测模块,从程序启动时刻记录模块读取各程序的启动时刻,计算相邻程序的启动时刻之差,将该差值与预设最大启动时间间隔比较,以确定该相邻程序的启动间隔是否正常。
一种应用看门狗的系统,包括:
看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除以预设值后所得的余数,从该余数起重新开始计数;
程序结束监测模块,检测到一个程序结束,读取看门狗的计数值,将该计数值发送出去;
程序结束时刻确定模块,接收程序结束监测模块发来的计数值,计算看门狗的当前总计数值,将该总计数值作为当前程序的结束时刻。
该系统进一步包括:
程序结束时刻记录模块,记录每个程序的结束时刻;
程序运行时长确定模块,从程序结束时刻记录模块读取当前程序与前一程序的结束时刻,计算当前程序与前一程序的结束时刻之差,该差值即为当前程序的运行时长。
与现有技术相比,本发明通过在看门狗检测到系统读取计数值时,计算计数值除以预设值后所得的余数,从该余数起重新开始计数,避免了看门狗在到达预设值后发出信号而引起系统响应该信号情况的发生,降低了系统的处理负担。本发明可用于监测多个启动程序的先后顺序、监测相邻程序之间的启动时间间隔、跟踪多个应用程序的运行时长或结束时刻等。
附图说明
图1为本发明实施例提供的看门狗设计方法流程图;
图2为本发明实施例提供的看门狗设计方法的应用一流程图;
图3为本发明实施例提供的看门狗设计方法的应用二流程图;
图4为本发明实施例提供的看门狗的结构示意图;
图5为应用本发明实施例提供的看门狗的系统一组成示意图;
图6为应用本发明实施例提供的看门狗的系统二组成示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本发明实施例提供的看门狗设计方法流程图,如图1所示,其具体步骤如下:
步骤101:看门狗启动,从0开始计数。
步骤102:看门狗检测到系统读取计数值M,计算计数值M除以预设值a后所得的余数r,即:r=M%a,其中,%为取余运算符。
预设值a即系统设定的看门狗检测到系统异常,开始从0计数后,应该发出信号时的计数值。
步骤103:看门狗从该余数r起重新开始计数,返回步骤102。
在实际应用中,看门狗还可以设置一个最大计数值,若计数值到达了最大计数值后,系统仍未读取该计数值,则看门狗认为系统发生异常,则从0重新开始计数,同时向系统发出复位信号。
以下给出本发明实施例提出的看门狗设计方法的两个具体应用:
应用一、在系统的启动过程中,需要保证多个启动程序的先后顺序,且需要保证相邻程序之间的启动时间间隔不能大于预设最大启动时间间隔。如图2所示,其具体步骤如下:
步骤201:系统设置看门狗总计数值Csum,并初始化Csum=0。
步骤202:系统检测到一个程序n(n≥1且n为整数)启动,去读取看门狗的计数值count。
步骤203:系统计算看门狗的当前总计数值b:b=(Csum%a)*a+count,以b更新Csum。
其中,a为看门狗的预设值。
步骤204:系统将Csum作为当前程序的启动时刻Tsta(n),并记录Tsta(n)。
步骤205:系统根据记录的Tsta(1)~Tsta(N),确定各启动程序的先后顺序是否准确。
例如:假设程序1~N的启动顺序依次为:1、2、3、...、N,则程序1~N的启动时刻应该满足:Tsta(1)<Tsta(2)<Tsta(3)<...<Tsta(N)。
步骤206:系统计算t(n)=Tsta(n)-Tsta(n-1),其中,1≤n≤N。
步骤207:系统判断t(n)≤Tmax(n)是否成立,若是,执行步骤208;否则,执行步骤209。
其中,Tmax(n)为预设的程序n与程序n-1之间的最大启动时间间隔。
步骤208:系统确定程序n与程序n-1之间的启动时间间隔正常。
步骤209:系统确定程序n与程序n-1之间的启动时间间隔异常,进行相应处理。
应用二、在系统的多个应用程序的运行过程中,需要跟踪各个应用程序的运行时长。如图3所示,其具体步骤如下:
步骤301:系统设置看门狗总计数值Csum,并初始化Csum=0。
步骤302:系统检测到一个程序n(n≥1且n为整数)结束,去读取看门狗的计数值count。
步骤303:系统计算看门狗的当前计数值b:b=(Csum%a)*a+count,以b更新Csum。
其中,a为看门狗的预设值。
步骤304:系统将Csum作为当前程序的结束时刻Tend(n),并记录Tend(n)。
步骤305:系统计算当前应用程序的运行时长R(n):R(n)=Tend(n)-Tend(n-1),并记录R(n)。
图4为本发明实施例提供的看门狗的结构示意图,如图4所示,其主要包括:计数器41和重启模块42,其中:
计数器41:启动时,从0开始计数;接收到重启模块42发来的余数r,从r起开始重新计数。
重启模块42:检测到系统从计数器41读取计数值M,计算计数值M除以预设值a后所得的余数r,即:r=M%a,将r发送给计数器41。
在实际应用中,看门狗还可以包括一个复位模块,用于在检测到计数器41的计数值到达预先设置的最大计数值后,向计数器41发送复位指示,并向系统发出复位信号。计数器41在收到该复位指示后,则从0开始重新计数。
图5为本发明实施例提供的应用看门狗的系统一的组成示意图,如图5所示,其主要包括:看门狗50、程序启动监测模块51、程序启动时刻确定模块52、程序启动时刻记录模块53、程序启动顺序检测模块54和启动间隔监测模块55,其中:
看门狗50:启动时,从0开始计数,检测到程序启动监测模块51读取自身的计数值M,计算计数值M除以预设值a后所得的余数r,从r起开始重新计数。
程序启动监测模块51:检测到一个程序n(n≥1且n为整数)启动,去读取看门狗50的计数值count,将count发送给程序启动时刻确定模块52。
程序启动时刻确定模块52:设置看门狗50总计数值Csum,并初始化Csum=0,接收程序启动监测模块51发来的count,计算看门狗50的当前总计数值b:b=(Csum%a)*a+count,以b更新Csum,将Csum作为当前程序n的启动时刻Tsta(n),并将Tsta(n)记录到程序启动时刻记录模块53。
程序启动时刻记录模块53:保存每个程序的启动时刻Tsta(1)~Tsta(N),N为启动程序的总数。
程序启动顺序检测模块54:从程序启动时刻记录模块53获取各程序的启动时刻,根据该启动时刻确定程序启动的先后顺序是否正确。
启动间隔监测模块55:从程序启动时刻记录模块53读取Tsta(n-1)和Tsta(n),计算t(n)=Tsta(n)-Tsta(n-1),判断t(n)≤Tmax(n)是否成立,若是,确定程序n与程序n-1之间的启动时间间隔正常;否则,确定程序n与程序n-1之间的启动时间间隔异常,通知相应模块进行处理。其中,1<n≤N,Tmax(n)为预设的程序n与程序n-1之间的最大启动时间间隔。
图6为本发明实施例提供的应用看门狗的系统二的组成示意图,如图6所示,其主要包括:看门狗50、程序结束监测模块61、程序结束时刻确定模块62、程序结束时刻记录模块63和程序运行时长确定模块64,其中:
看门狗50:启动时,从0开始计数,检测到程序结束监测模块61读取自身的计数值M,计算计数值M除以预设值a后所得的余数r,从r起开始重新计数。
程序结束监测模块61:检测到一个程序n(n≥1且n为整数)结束,去读取看门狗50的计数值count,将count发送给程序结束时刻确定模块62。
程序结束时刻确定模块62:设置看门狗50总计数值Csum,并初始化Csum=0,接收程序结束监测模块61发来的count,计算看门狗50的当前总计数值b:b=(Csum%a)*a+count,以b更新Csum,将Csum作为当前程序n的结束时刻Tend(n),并将Tend(n)记录到程序结束时刻记录模块63。
程序结束时刻记录模块63:保存每个程序的结束时刻Tsta(1)~Tsta(N),N为程序的总数。
程序运行时长确定模块64:从程序结束时刻记录模块63读取Tend(n-1)和Tend(n),计算程序n的运行时长R(n):R(n)=Tend(n)-Tend(n-1),记录R(n)。
本发明实施例中提到的系统可以为嵌入式系统等。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种看门狗设计方法,其特征在于,该方法包括:
A、看门狗启动,从0开始计数;
B、看门狗检测到系统读取计数值,计算计数值除以预设值后所得的余数,
所述预设值为系统设定的看门狗检测到系统异常,开始从0计数后,应该发出信号时的计数值;
C、看门狗从该余数起重新开始计数,返回步骤B。
2.如权利要求1所述的方法,其特征在于,看门狗预先设置一个最大计数值,
且,所述方法进一步包括:看门狗检测到计数值到达最大计数值,则从0开始重新计数。
3.如权利要求2所述的方法,其特征在于,所述看门狗从0开始重新计数的同时进一步包括:看门狗向系统发出复位信号。
4.如权利要求1所述的方法,其特征在于还包括以下步骤:
在步骤B所述看门狗检测到系统读取计数值之前,系统检测到一个程序启动,从看门狗读取计数值,且系统根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的启动时刻;当所有程序都启动后,系统根据所有程序的启动时刻,确定程序启动的先后顺序是否正确。
5.如权利要求4所述的方法,其特征在于,所述系统将该总计数值作为当前程序的启动时刻之后进一步包括:
系统计算当前程序的启动时刻与前一程序的启动时刻的差值,判断该差值是否不大于预设最大启动时间间隔,若是,确定当前程序与前一程序的启动间隔正常;否则,确定当前程序与前一程序的启动间隔异常。
6.如权利要求1所述的方法,其特征在于,所述看门狗检测到系统读取计数值之前进一步包括:
系统检测到一个程序结束,从看门狗读取计数值;
且,系统根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的结束时刻。
7.如权利要求6所述的方法,其特征在于,所述系统将总计数值作为当前程序的结束时刻之后进一步包括:
系统计算当前程序的结束时刻与前一程序的结束时刻的差值,将该差值作为当前程序的运行时长。
8.一种看门狗装置,其特征在于,该装置包括:计数器和重启模块,其中:
计数器:启动时,从0开始计数;接收到重启模块发来的余数,从该余数起开始重新计数;
重启模块:检测到系统从计数器读取计数值,计算计数值除以预设值后所得的余数,将该余数发送给计数器,所述预设值为系统设定的看门狗检测到系统异常,开始从0计数后,应该发出信号时的计数值。
9.如权利要求8所述的装置,其特征在于,该装置进一步包括:
复位模块:检测到计数器的计数值到达预先设置的最大计数值,则向计数器发送复位指示;
且,所述计数器收到该复位指示后,从0开始重新计数。
10.如权利要求9所述的装置,其特征在于,所述复位模块进一步用于,在检测到计数器的计数值到达预先设置的最大计数值时,向系统发出复位信号。
11.一种应用看门狗的系统,其特征在于,该系统包括:
看门狗:启动后,从0开始计数,检测到计数值被读取,计算计数值除以预设值后所得的余数,从该余数起重新开始计数;
程序启动监测模块:检测到一个程序启动,读取看门狗的计数值,将该计数值发送出去;
程序启动时刻确定模块:接收程序启动监测模块发来的计数值,计算看门狗的当前总计数值,将该总计数值作为当前程序的启动时刻,记录该启动时刻;
程序启动时刻记录模块:记录每个程序的启动时刻;
程序启动顺序检测模块:从程序启动时刻记录模块获取各程序的启动时刻,根据该启动时刻确定程序启动的先后顺序是否正确。
12.如权利要求11所述的系统,其特征在于,所述系统进一步包括:
启动间隔监测模块:从程序启动时刻记录模块读取各程序的启动时刻,计算相邻程序的启动时刻之差,将该差值与预设最大启动时间间隔比较,以确定该相邻程序的启动间隔是否正常。
13.一种应用看门狗的系统,其特征在于,该系统包括:
看门狗:启动后,从0开始计数,检测到计数值被读取,计算计数值除以预设值后所得的余数,从该余数起重新开始计数;
程序结束监测模块:检测到一个程序结束,读取看门狗的计数值,将该计数值发送出去;
程序结束时刻确定模块:接收程序结束监测模块发来的计数值,计算看门狗的当前总计数值,将该总计数值作为当前程序的结束时刻。
14.如权利要求13所述的系统,其特征在于,该系统进一步包括:
程序结束时刻记录模块:记录每个程序的结束时刻;
程序运行时长确定模块:从程序结束时刻记录模块读取当前程序与前一程序的结束时刻,计算当前程序与前一程序的结束时刻之差,该差值即为当前程序的运行时长。
CN2008101153263A 2008-06-20 2008-06-20 看门狗设计方法及看门狗装置 Expired - Fee Related CN101295273B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101153263A CN101295273B (zh) 2008-06-20 2008-06-20 看门狗设计方法及看门狗装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101153263A CN101295273B (zh) 2008-06-20 2008-06-20 看门狗设计方法及看门狗装置

Publications (2)

Publication Number Publication Date
CN101295273A CN101295273A (zh) 2008-10-29
CN101295273B true CN101295273B (zh) 2010-06-23

Family

ID=40065569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101153263A Expired - Fee Related CN101295273B (zh) 2008-06-20 2008-06-20 看门狗设计方法及看门狗装置

Country Status (1)

Country Link
CN (1) CN101295273B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631695B (zh) * 2013-12-19 2017-02-08 北京经纬恒润科技有限公司 时间监测方法及装置
CN112416673A (zh) * 2020-11-13 2021-02-26 宁波拓普集团股份有限公司 一种前后触发型周期运行任务的硬件监控装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815449A (zh) * 2005-02-01 2006-08-09 艾默生网络能源有限公司 看门狗控制方法
CN1920784A (zh) * 2006-08-10 2007-02-28 北京中星微电子有限公司 一种看门狗装置及看门狗中断预警方法
CN101196836A (zh) * 2007-12-29 2008-06-11 上海华为技术有限公司 一种控制看门狗电路复位的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815449A (zh) * 2005-02-01 2006-08-09 艾默生网络能源有限公司 看门狗控制方法
CN1920784A (zh) * 2006-08-10 2007-02-28 北京中星微电子有限公司 一种看门狗装置及看门狗中断预警方法
CN101196836A (zh) * 2007-12-29 2008-06-11 上海华为技术有限公司 一种控制看门狗电路复位的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开平10-275097 1998.10.13

Also Published As

Publication number Publication date
CN101295273A (zh) 2008-10-29

Similar Documents

Publication Publication Date Title
WO2015081700A1 (zh) 一种上报传感器数据的方法和终端
CN103221899B (zh) 触觉输入设备、微处理器系统和控制触觉输入设备的方法
CN104335175A (zh) 基于系统性能度量在系统节点之间标识和迁移线程的方法和系统
CN100472468C (zh) 计算机系统、计算机网络及其方法
CN109738719B (zh) 静电释放esd检测方法及相关产品
CN102567184A (zh) 一种基于Flash的日志存储方法
CN112579327B (zh) 一种故障检测方法、装置及设备
CN110032487A (zh) 保活监控方法、装置及电子设备
CN101334751A (zh) 虚拟机监视器识别客户操作系统中进程的方法及装置
CN109753378A (zh) 一种内存故障的隔离方法、装置、系统及可读存储介质
JP6417742B2 (ja) データ管理プログラム、データ管理装置及びデータ管理方法
CN112631820A (zh) 软件系统的故障恢复方法及装置
CN102915260B (zh) 固态硬盘容错的方法及其固态硬盘
CN101295273B (zh) 看门狗设计方法及看门狗装置
CN102810072B (zh) 计算机系统及其重新启动方法
CN102929761A (zh) 一种应对崩溃性错误的系统及方法
CN106708675A (zh) 一种计算机启动前故障检测方法
JP6040894B2 (ja) ログ生成装置、及びログ生成方法
CN101661332A (zh) 按键处理方法及计算机系统
CN103455448A (zh) 服务器防震方法及系统
CN110008105B (zh) 一种bmc时间保留方法、装置及电子设备和存储介质
EP2609484A1 (en) Real-time usb class level decoding
CN105975382B (zh) 一种硬件配置变动的报警方法
CN106528311A (zh) 嵌入式系统及其控制方法
CN106774397A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100623

Termination date: 20120620