專利名稱:看門狗設(shè)計(jì)方法及看門狗的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及定時(shí)器技術(shù)領(lǐng)域,具體涉及看門狗設(shè)計(jì)方法及看門狗。
背景技術(shù):
看門狗是一種設(shè)備或電子卡,如果一個(gè)系統(tǒng)出現(xiàn)故障且在預(yù)定時(shí)長(zhǎng)內(nèi)不
能自動(dòng)恢復(fù),則看門狗就會(huì)執(zhí)行特殊操作。例如對(duì)于一臺(tái)機(jī)器或者操作系 統(tǒng),如果其內(nèi)部?jī)蓚€(gè)部件或者程序出現(xiàn)沖突,或者在操作系統(tǒng)中出現(xiàn)內(nèi)存管 理問題時(shí),系統(tǒng)就會(huì)掛起,在某些情況下,系統(tǒng)最終將會(huì)自己恢復(fù),但是從 掛起到恢復(fù)可能需要很長(zhǎng)一段時(shí)間,此時(shí),可將看門狗設(shè)置成如下模式當(dāng) 在預(yù)定時(shí)長(zhǎng)內(nèi)系統(tǒng)對(duì)外設(shè)部件如鼠標(biāo)、鍵盤的動(dòng)作都沒有反應(yīng)時(shí),看門狗 就執(zhí)行熱啟動(dòng)。看門狗還有其他用途,例如在瀏覽網(wǎng)頁時(shí),若輸入網(wǎng)址之 后的預(yù)定時(shí)長(zhǎng)內(nèi)網(wǎng)頁都未完全裝載,此時(shí),看門狗就自動(dòng)開啟網(wǎng)頁上的刷新 按鈕來執(zhí)行刷新動(dòng)作。
目前,看門狗都是通過以下原理設(shè)計(jì)的看門狗內(nèi)包含一個(gè)計(jì)數(shù)器,該 計(jì)數(shù)器從一個(gè)預(yù)設(shè)值開始以不變的速度減到0,或者從0加到預(yù)設(shè)值,當(dāng)系 統(tǒng)發(fā)生異常后,若在計(jì)數(shù)器從預(yù)設(shè)值減到0或從0加到預(yù)設(shè)值之前系統(tǒng)未恢 復(fù),則看門狗就會(huì)向指定的電路發(fā)送信號(hào),通知電路執(zhí)行相應(yīng)動(dòng)作,同時(shí)返 回#刀4臺(tái){直。
可以看出,目前看門狗主要用于檢測(cè)系統(tǒng)異常以幫助系統(tǒng)恢復(fù)。實(shí)際上, 在其他應(yīng)用中也需用到看門狗,例如在某些系統(tǒng)的啟動(dòng)過程中,需要保證 多個(gè)啟動(dòng)程序的先后順序,可能還需要保證相鄰程序之間的啟動(dòng)時(shí)間間隔不 大于預(yù)設(shè)間隔;或者,在系統(tǒng)的多個(gè)應(yīng)用程序的運(yùn)行過程中,需要跟蹤各個(gè) 應(yīng)用程序的運(yùn)行時(shí)長(zhǎng)或結(jié)束時(shí)刻。這兩種情況下,若采用現(xiàn)有的看門狗設(shè)計(jì)方案,則看門狗每減少到O或增加到預(yù)設(shè)值都要發(fā)出信號(hào),系統(tǒng)都要來響應(yīng) 該信號(hào),但此時(shí)可能并不是程序的啟動(dòng)或結(jié)束時(shí)刻,系統(tǒng)響應(yīng)該信號(hào)是無用 的,這顯然給系統(tǒng)增加了無謂的處理負(fù)擔(dān)。
發(fā)明內(nèi)容
本發(fā)明提供看門狗設(shè)計(jì)方法及看門狗,以降低系統(tǒng)處理負(fù)擔(dān)。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的 一種看門狗設(shè)計(jì)方法,包括
看門狗啟動(dòng),從0開始計(jì)數(shù),看門狗檢測(cè)到系統(tǒng)讀取計(jì)數(shù)值,計(jì)算計(jì)數(shù)值 除以預(yù)設(shè)值后所得的余數(shù),看門狗從該余數(shù)起重新開始計(jì)數(shù)。 看門狗預(yù)先設(shè)置一個(gè)最大計(jì)數(shù)值,
且,所述方法進(jìn)一步包括看門狗檢測(cè)到計(jì)數(shù)值到達(dá)最大計(jì)數(shù)值,則從0 開始重新計(jì)數(shù)。
所述看門狗從0開始重新計(jì)數(shù)的同時(shí)進(jìn)一步包括看門狗向系統(tǒng)發(fā)出復(fù)位 信號(hào)。
所述看門狗檢測(cè)到系統(tǒng)讀取計(jì)數(shù)值之前進(jìn)一步包括 系統(tǒng)檢測(cè)到一個(gè)程序啟動(dòng),從看門狗讀取計(jì)數(shù)值;
且,系統(tǒng)根據(jù)該計(jì)數(shù)值確定看門狗啟動(dòng)后的總計(jì)數(shù)值,將該總計(jì)數(shù)值作為 當(dāng)前程序的啟動(dòng)時(shí)刻;
當(dāng)所有程序都啟動(dòng)后,系統(tǒng)根據(jù)所有程序的啟動(dòng)時(shí)刻,確定程序啟動(dòng)的先 后順序是否正確。
所述系統(tǒng)將該總計(jì)數(shù)值作為當(dāng)前程序的啟動(dòng)時(shí)刻之后進(jìn)一步包括
系統(tǒng)計(jì)算當(dāng)前程序的啟動(dòng)時(shí)刻與前一程序的啟動(dòng)時(shí)刻的差值,判斷該差值 是否不大于預(yù)設(shè)最大啟動(dòng)時(shí)間間隔,若是,確定當(dāng)前程序與前一程序的啟動(dòng)間 隔正常;否則,確定當(dāng)前程序與前一程序的啟動(dòng)間隔異常。
所述述看門狗檢測(cè)到系統(tǒng)讀取計(jì)數(shù)值之前進(jìn)一步包括
系統(tǒng)檢測(cè)到一個(gè)程序結(jié)束,從看門狗讀取計(jì)數(shù)值;且,系統(tǒng)根據(jù)該計(jì)數(shù)值確定看門狗啟動(dòng)后的總計(jì)數(shù)值,將該總計(jì)數(shù)值作為 當(dāng)前程序的結(jié)束時(shí)刻。
所述系統(tǒng)將總計(jì)數(shù)值作為當(dāng)前程序的結(jié)束時(shí)刻之后進(jìn)一步包括 系統(tǒng)計(jì)算當(dāng)前程序的結(jié)束時(shí)刻與前一程序的結(jié)束時(shí)刻的差值,將該差值作 為當(dāng)前程序的運(yùn)行時(shí)長(zhǎng)。
一種看門狗,包括計(jì)數(shù)器和重啟模塊,其中
計(jì)數(shù)器,啟動(dòng)時(shí),從0開始計(jì)數(shù);接收到重啟模塊發(fā)來的余數(shù),從該余 數(shù)起開始重新計(jì)數(shù);
重啟模塊,檢測(cè)到系統(tǒng)從計(jì)數(shù)器讀取計(jì)數(shù)值,計(jì)算計(jì)數(shù)值除以預(yù)設(shè)值后 所得的余數(shù),將該余數(shù)發(fā)送給計(jì)數(shù)器。
該看門狗進(jìn)一步包括
復(fù)位模塊,檢測(cè)到計(jì)數(shù)器的計(jì)數(shù)值到達(dá)預(yù)先設(shè)置的最大計(jì)數(shù)值,則向計(jì) 數(shù)器發(fā)送復(fù)位指示;
且,所述計(jì)數(shù)器收到該復(fù)位指示后,從0開始重新計(jì)數(shù)。
所述復(fù)位模塊進(jìn)一步用于,在檢測(cè)到計(jì)數(shù)器的計(jì)數(shù)值到達(dá)預(yù)先設(shè)置的最 大計(jì)數(shù)值時(shí),向系統(tǒng)發(fā)出復(fù)位信號(hào)。
一種應(yīng)用看門狗的系統(tǒng),包括
看門狗,啟動(dòng)后,從0開始計(jì)數(shù),檢測(cè)到計(jì)數(shù)值被讀取,計(jì)算計(jì)數(shù)值除 以預(yù)設(shè)值后所得的余數(shù),從該余數(shù)起重新開始計(jì)數(shù);
程序啟動(dòng)監(jiān)測(cè)模塊,檢測(cè)到一個(gè)程序啟動(dòng),讀取看門狗的計(jì)數(shù)值,將該 計(jì)數(shù)值發(fā)送出去;
程序啟動(dòng)時(shí)刻確定模塊,接收程序啟動(dòng)監(jiān)測(cè)模塊發(fā)來的計(jì)數(shù)值,計(jì)算看 門狗的當(dāng)前總計(jì)數(shù)值,將該總計(jì)數(shù)值作為當(dāng)前程序的啟動(dòng)時(shí)刻,記錄該啟動(dòng) 時(shí)刻;
程序啟動(dòng)時(shí)刻記錄模塊,記錄每個(gè)程序的啟動(dòng)時(shí)刻; 程序啟動(dòng)順序檢測(cè)模塊,從程序啟動(dòng)時(shí)刻記錄模塊獲取各程序的啟動(dòng)時(shí) 刻,根據(jù)該啟動(dòng)時(shí)刻確定程序啟動(dòng)的先后順序是否正確。所述系統(tǒng)進(jìn)一步包括
啟動(dòng)間隔監(jiān)測(cè)模塊,從程序啟動(dòng)時(shí)刻記錄模塊讀取各程序的啟動(dòng)時(shí)刻, 計(jì)算相鄰程序的啟動(dòng)時(shí)刻之差,將該差值與預(yù)設(shè)最大啟動(dòng)時(shí)間間隔比較,以 確定該相鄰程序的啟動(dòng)間隔是否正常。
一種應(yīng)用看門狗的系統(tǒng),包括
看門狗,啟動(dòng)后,從0開始計(jì)數(shù),檢測(cè)到計(jì)數(shù)值被讀取,計(jì)算計(jì)數(shù)值除 以預(yù)設(shè)值后所得的余數(shù),從該余數(shù)起重新開始計(jì)數(shù);
程序結(jié)束監(jiān)測(cè)模塊,檢測(cè)到一個(gè)程序結(jié)束,讀取看門狗的計(jì)數(shù)值,將該 計(jì)數(shù)值發(fā)送出去;
程序結(jié)束時(shí)刻確定模塊,接收程序結(jié)束監(jiān)測(cè)模塊發(fā)來的計(jì)數(shù)值,計(jì)算看 門狗的當(dāng)前總計(jì)數(shù)值,將該總計(jì)數(shù)值作為當(dāng)前程序的結(jié)束時(shí)刻。 該系統(tǒng)進(jìn)一步包括
程序結(jié)束時(shí)刻記錄模塊,記錄每個(gè)程序的結(jié)束時(shí)刻;
程序運(yùn)行時(shí)長(zhǎng)確定模塊,從程序結(jié)束時(shí)刻記錄模塊讀取當(dāng)前程序與前一 程序的結(jié)束時(shí)刻,計(jì)算當(dāng)前程序與前一程序的結(jié)束時(shí)刻之差,該差值即為當(dāng) 前程序的運(yùn)行時(shí)長(zhǎng)。
與現(xiàn)有技術(shù)相比,本發(fā)明通過在看門狗檢測(cè)到系統(tǒng)讀取計(jì)數(shù)值時(shí),計(jì)算 計(jì)數(shù)值除以預(yù)設(shè)值后所得的余數(shù),從該余數(shù)起重新開始計(jì)數(shù),避免了看門狗 在到達(dá)預(yù)設(shè)值后發(fā)出信號(hào)而引起系統(tǒng)響應(yīng)該信號(hào)情況的發(fā)生,降低了系統(tǒng)的 處理負(fù)擔(dān)。本發(fā)明可用于監(jiān)測(cè)多個(gè)啟動(dòng)程序的先后順序、監(jiān)測(cè)相鄰程序之間 的啟動(dòng)時(shí)間間隔、跟蹤多個(gè)應(yīng)用程序的運(yùn)行時(shí)長(zhǎng)或結(jié)束時(shí)刻等。
圖1為本發(fā)明實(shí)施例提供的看門狗設(shè)計(jì)方法流程圖; 圖2為本發(fā)明實(shí)施例提供的看門狗設(shè)計(jì)方法的應(yīng)用 一流程圖; 圖3為本發(fā)明實(shí)施例提供的看門狗設(shè)計(jì)方法的應(yīng)用二流程圖; 圖4為本發(fā)明實(shí)施例提供的看門狗的結(jié)構(gòu)示意圖;圖5為應(yīng)用本發(fā)明實(shí)施例提供的看門狗的系統(tǒng)一組成示意圖; 圖6為應(yīng)用本發(fā)明實(shí)施例提供的看門狗的系統(tǒng)二組成示意圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn) 一 步詳細(xì)的說明。 圖1為本發(fā)明實(shí)施例提供的看門狗設(shè)計(jì)方法流程圖,如圖l所示,其具 體步驟如下
步驟101:看門狗啟動(dòng),從0開始計(jì)數(shù)。
步驟102:看門狗檢測(cè)到系統(tǒng)讀取計(jì)數(shù)值M,計(jì)算計(jì)數(shù)值M除以預(yù)設(shè) 值a后所得的余數(shù)r,即FM%a,其中,%為取余運(yùn)算符。
預(yù)設(shè)值a即系統(tǒng)設(shè)定的看門狗檢測(cè)到系統(tǒng)異常,開始從O計(jì)數(shù)后,應(yīng)該 發(fā)出信號(hào)時(shí)的計(jì)數(shù)值。
步驟103:看門狗從該余數(shù)r起重新開始計(jì)數(shù),返回步驟102。
在實(shí)際應(yīng)用中,看門狗還可以設(shè)置一個(gè)最大計(jì)數(shù)值,若計(jì)數(shù)值到達(dá)了最 大計(jì)數(shù)值后,系統(tǒng)仍未讀取該計(jì)數(shù)值,則看門狗認(rèn)為系統(tǒng)發(fā)生異常,則從O 重新開始計(jì)數(shù),同時(shí)向系統(tǒng)發(fā)出復(fù)位信號(hào)。
以下給出本發(fā)明實(shí)施例提出的看門狗設(shè)計(jì)方法的兩個(gè)具體應(yīng)用
應(yīng)用一、在系統(tǒng)的啟動(dòng)過程中,需要保證多個(gè)啟動(dòng)程序的先后順序,且 需要保證相鄰程序之間的啟動(dòng)時(shí)間間隔不能大于預(yù)設(shè)最大啟動(dòng)時(shí)間間隔。如 圖2所示,其具體步驟如下
步驟201:系統(tǒng)設(shè)置看門狗總計(jì)數(shù)值Csum,并初始化Csum=0。
步驟202:系統(tǒng)檢測(cè)到一個(gè)程序n (r^l且n為整數(shù))啟動(dòng),去讀取看 門狗的計(jì)凄t值count。
步驟203:系統(tǒng)計(jì)算看門狗的當(dāng)前總計(jì)數(shù)值b: b= ( Csum%a ) *a+count, 以b更新Csum。
其中,a為看門狗的預(yù)設(shè)值。
步驟204:系統(tǒng)將Csum作為當(dāng)前程序的啟動(dòng)時(shí)刻Tsta (n),并記錄Tsta ( n )。
步驟205:系統(tǒng)#^居記錄的Tsta (1) Tsta (N),確定各啟動(dòng)程序的
先后順序是否準(zhǔn)確。
例如假設(shè)程序1 N的啟動(dòng)順序依次為1、 2、 3.....N,則程序1~N
的啟動(dòng)時(shí)刻應(yīng)該滿足Tsta ( 1 ) <Tsta (2) <Tsta (3) <...<Tsta (N)。 步驟206:系統(tǒng)計(jì)算t ( n ) =Tsta ( n ) -Tsta ( n-1 ),其中,1^n^N。 步驟207:系統(tǒng)判斷t (n) ^Tmax (n)是否成立,若是,執(zhí)行步驟208;
否則,執(zhí)行步驟209。
其中,Tmax ( n)為預(yù)設(shè)的程序n與程序n-1之間的最大啟動(dòng)時(shí)間間隔。
步驟208:系統(tǒng)確定程序n與程序n-1之間的啟動(dòng)時(shí)間間隔正常。
步驟209:系統(tǒng)確定程序n與程序n-1之間的啟動(dòng)時(shí)間間隔異常,進(jìn)行
相應(yīng)處J里。
應(yīng)用二、在系統(tǒng)的多個(gè)應(yīng)用程序的運(yùn)行過程中,需要跟蹤各個(gè)應(yīng)用程序 的運(yùn)行時(shí)長(zhǎng)。如圖3所示,其具體步驟如下
步驟301:系統(tǒng)設(shè)置看門狗總計(jì)數(shù)值Csum,并初始化Csum=0。
步驟302:系統(tǒng)檢測(cè)到一個(gè)程序n (n^l且n為整數(shù))結(jié)束,去讀取看 門狗的計(jì)數(shù)值count。
步驟303:系統(tǒng)計(jì)算看門狗的當(dāng)前計(jì)數(shù)值b: b= ( Csum%a) *a+count, 以b更新Csum。
其中,a為看門狗的預(yù)設(shè)值。
步驟304:系統(tǒng)將Csum作為當(dāng)前程序的結(jié)束時(shí)刻Tend ( n ),并記錄 Tend ( n)。
步驟305:系統(tǒng)計(jì)算當(dāng)前應(yīng)用程序的運(yùn)行時(shí)長(zhǎng)R (n) : R (n) =Tend (n) -Tend ( n-1 ),并記錄R ( n )。
圖4為本發(fā)明實(shí)施例提供的看門狗的結(jié)構(gòu)示意圖,如圖4所示,其主要 包括計(jì)數(shù)器41和重啟模塊42,其中
計(jì)數(shù)器41:啟動(dòng)時(shí),從O開始計(jì)數(shù);接收到重啟模塊42發(fā)來的余數(shù)r,乂人r起開始重新計(jì)數(shù)。
重啟模塊42:檢測(cè)到系統(tǒng)從計(jì)數(shù)器41讀取計(jì)數(shù)值M,計(jì)算計(jì)數(shù)值M 除以預(yù)設(shè)值a后所得的余數(shù)r,即r=M%a,將r發(fā)送給計(jì)數(shù)器41。
在實(shí)際應(yīng)用中,看門狗還可以包括一個(gè)復(fù)位模塊,用于在檢測(cè)到計(jì)數(shù)器 41的計(jì)數(shù)值到達(dá)預(yù)先設(shè)置的最大計(jì)數(shù)值后,向計(jì)數(shù)器41發(fā)送復(fù)位指示,并 向系統(tǒng)發(fā)出復(fù)位信號(hào)。計(jì)數(shù)器41在收到該復(fù)位指示后,則從0開始重新計(jì) 數(shù)。
圖5為本發(fā)明實(shí)施例提供的應(yīng)用看門狗的系統(tǒng)一的組成示意圖,如圖5 所示,其主要包括看門狗50、程序啟動(dòng)監(jiān)測(cè)模塊51、程序啟動(dòng)時(shí)刻確定 ^^莫塊52、程序啟動(dòng)時(shí)刻記錄才莫塊53、程序啟動(dòng)順序^r測(cè)才莫塊54和啟動(dòng)間隔 監(jiān)測(cè)模塊55,其中
看門狗50:啟動(dòng)時(shí),從O開始計(jì)數(shù),檢測(cè)到程序啟動(dòng)監(jiān)測(cè)模塊51讀取 自身的計(jì)數(shù)值M,計(jì)算計(jì)數(shù)值M除以預(yù)設(shè)值a后所得的余數(shù)r,從r起開始 重新計(jì)數(shù)。
程序啟動(dòng)監(jiān)測(cè)模塊51:檢測(cè)到一個(gè)程序n (論l且n為整數(shù))啟動(dòng),去 讀取看門狗50的計(jì)數(shù)值count,將count發(fā)送給程序啟動(dòng)時(shí)刻確定^t塊52。
程序啟動(dòng)時(shí)刻確定模塊52:設(shè)置看門狗50總計(jì)數(shù)值Csum,并初始化 Csum=0,接收程序啟動(dòng)監(jiān)測(cè)模塊51發(fā)來的count,計(jì)算看門狗50的當(dāng)前總 計(jì)數(shù)值b: b= ( Csum%a) *a+count,以b更新Csum,將Csum作為當(dāng)前程 序n的啟動(dòng)時(shí)刻Tsta (n),并將Tsta (n)記錄到程序啟動(dòng)時(shí)刻記錄才莫塊 53。
程序啟動(dòng)時(shí)刻記錄模塊53:保存每個(gè)程序的啟動(dòng)時(shí)刻Tsta(l) ~Tsta (N) , N為啟動(dòng)程序的總數(shù)。
程序啟動(dòng)順序檢測(cè)模塊54:從程序啟動(dòng)時(shí)刻記錄模塊53獲取各程序的 啟動(dòng)時(shí)刻,根據(jù)該啟動(dòng)時(shí)刻確定程序啟動(dòng)的先后順序是否正確。
啟動(dòng)間隔監(jiān)測(cè)模塊55:從程序啟動(dòng)時(shí)刻記錄模塊53讀取Tsta ( n-1)和
Tsta (n),計(jì)算t (n) =Tsta (n) -Tsta (n-1),判斷t (n) STmax (n)是否成立,若是,確定程序n與程序n-l之間的啟動(dòng)時(shí)間間隔正常;否則,確 定程序n與程序n-l之間的啟動(dòng)時(shí)間間隔異常,通知相應(yīng)模塊進(jìn)行處理。其 中,Kn^N, Tmax (n)為預(yù)i殳的程序n與程序n-l之間的最大啟動(dòng)時(shí)間間隔。
圖6為本發(fā)明實(shí)施例提供的應(yīng)用看門狗的系統(tǒng)二的組成示意圖,如圖6 所示,其主要包括看門狗50、程序結(jié)束監(jiān)測(cè)模塊61、程序結(jié)束時(shí)刻確定 模塊62、程序結(jié)束時(shí)刻記錄模塊63和程序運(yùn)行時(shí)長(zhǎng)確定模塊64,其中
看門狗50:啟動(dòng)時(shí),從0開始計(jì)數(shù),檢測(cè)到程序結(jié)束監(jiān)測(cè)模塊61讀取 自身的計(jì)數(shù)值M,計(jì)算計(jì)數(shù)值M除以預(yù)設(shè)值a后所得的余數(shù)r,從r起開始 重新計(jì)數(shù)。
程序結(jié)束監(jiān)測(cè)模塊61:檢測(cè)到一個(gè)程序n (論l且n為整數(shù))結(jié)束,去 讀取看門狗50的計(jì)數(shù)值count,將count發(fā)送給程序結(jié)束時(shí)刻確定模塊62。
程序結(jié)束時(shí)刻確定模塊62:設(shè)置看門狗50總計(jì)數(shù)值Csum,并初始化 Csum-O,接收程序結(jié)束監(jiān)測(cè)模塊61發(fā)來的count,計(jì)算看門狗50的當(dāng)前總 計(jì)數(shù)值b: b= ( Csum%a) *a+count,以b更新Csum,將Csum作為當(dāng)前程 序n的結(jié)束時(shí)刻Tend ( n),并將Tend ( n)記錄到程序結(jié)束時(shí)刻記錄模塊 63。
程序結(jié)束時(shí)刻記錄模塊63:保存每個(gè)程序的結(jié)束時(shí)刻Tsta (1) Tsta (N) , N為程序的總數(shù)。
程序運(yùn)行時(shí)長(zhǎng)確定模塊64:從程序結(jié)束時(shí)刻記錄模塊63讀取Tend( n-l ) 和Tend(n),計(jì)算程序n的運(yùn)行時(shí)長(zhǎng)R(n): R( n ) =Tend( n )-Tend( n-l ), 記錄R (n)。
本發(fā)明實(shí)施例中提到的系統(tǒng)可以為嵌入式系統(tǒng)等。
以上所述僅為本發(fā)明的過程及方法實(shí)施例,并不用以限制本發(fā)明,凡在 本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在 本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種看門狗設(shè)計(jì)方法,其特征在于,該方法包括看門狗啟動(dòng),從0開始計(jì)數(shù),看門狗檢測(cè)到系統(tǒng)讀取計(jì)數(shù)值,計(jì)算計(jì)數(shù)值除以預(yù)設(shè)值后所得的余數(shù),看門狗從該余數(shù)起重新開始計(jì)數(shù)。
2、 如權(quán)利要求l所述的方法,其特征在于,看門狗預(yù)先設(shè)置一個(gè)最大計(jì)數(shù)值,且,所述方法進(jìn)一步包括看門狗檢測(cè)到計(jì)數(shù)值到達(dá)最大計(jì)數(shù)值,則從0 開始重新計(jì)數(shù)。
3、 如權(quán)利要求2所述的方法,其特征在于,所述看門狗從O開始重新計(jì)數(shù) 的同時(shí)進(jìn)一步包括看門狗向系統(tǒng)發(fā)出復(fù)位信號(hào)。
4、 如權(quán)利要求l所述的方法,其特征在于,所述看門狗檢測(cè)到系統(tǒng)讀取計(jì) 數(shù)值之前進(jìn)一步包括系統(tǒng)檢測(cè)到一個(gè)程序啟動(dòng),從看門狗讀取計(jì)數(shù)值;且,系統(tǒng)根據(jù)該計(jì)數(shù)值確定看門狗啟動(dòng)后的總計(jì)數(shù)值,將該總計(jì)數(shù)值作為 當(dāng)前程序的啟動(dòng)時(shí)刻;當(dāng)所有程序都啟動(dòng)后,系統(tǒng)根據(jù)所有程序的啟動(dòng)時(shí)刻,確定程序啟動(dòng)的先 后順序是否正確。
5、 如權(quán)利要求4所述的方法,其特征在于,所述系統(tǒng)將該總計(jì)數(shù)值作為當(dāng) 前程序的啟動(dòng)時(shí)刻之后進(jìn)一 步包括系統(tǒng)計(jì)算當(dāng)前程序的啟動(dòng)時(shí)刻與前一程序的啟動(dòng)時(shí)刻的差值,判斷該差值 是否不大于預(yù)設(shè)最大啟動(dòng)時(shí)間間隔,若是,確定當(dāng)前程序與前一程序的啟動(dòng)間 隔正常;否則,確定當(dāng)前程序與前一程序的啟動(dòng)間隔異常。
6、 如權(quán)利要求l所述的方法,其特征在于,所述述看門狗檢測(cè)到系統(tǒng)讀取 計(jì)數(shù)值之前進(jìn)一步包括系統(tǒng)檢測(cè)到一個(gè)程序結(jié)束,從看門狗讀取計(jì)數(shù)值;且,系統(tǒng)根據(jù)該計(jì)數(shù)值確定看門狗啟動(dòng)后的總計(jì)數(shù)值,將該總計(jì)數(shù)值作為當(dāng)前程序的結(jié)束時(shí)刻。
7、 如權(quán)利要求6所述的方法,其特征在于,所述系統(tǒng)將總計(jì)數(shù)值作為當(dāng)前程序的結(jié)束時(shí)刻之后進(jìn)一步包括系統(tǒng)計(jì)算當(dāng)前程序的結(jié)束時(shí)刻與前一程序的結(jié)束時(shí)刻的差值,將該差值作 為當(dāng)前程序的運(yùn)行時(shí)長(zhǎng)。
8、 一種看門狗,其特征在于,該看門狗包括計(jì)數(shù)器和重啟模塊,其中 計(jì)數(shù)器,啟動(dòng)時(shí),從0開始計(jì)數(shù);接收到重啟模塊發(fā)來的余數(shù),從該余數(shù)起開始重新計(jì)數(shù);重啟模塊,檢測(cè)到系統(tǒng)從計(jì)數(shù)器讀取計(jì)數(shù)值,計(jì)算計(jì)數(shù)值除以預(yù)設(shè)值后 所得的余數(shù),將該余數(shù)發(fā)送給計(jì)數(shù)器。
9、 如權(quán)利要求8所述的看門狗,其特征在于,該看門狗進(jìn)一步包括 復(fù)位模塊,檢測(cè)到計(jì)數(shù)器的計(jì)數(shù)值到達(dá)預(yù)先設(shè)置的最大計(jì)數(shù)值,則向計(jì)數(shù)器發(fā)送復(fù)位指示;且,所述計(jì)數(shù)器收到該復(fù)位指示后,從0開始重新計(jì)數(shù)。
10、 如權(quán)利要求8所述的看門狗,其特征在于,所述復(fù)位模塊進(jìn)一步用 于,在檢測(cè)到計(jì)數(shù)器的計(jì)數(shù)值到達(dá)預(yù)先設(shè)置的最大計(jì)數(shù)值時(shí),向系統(tǒng)發(fā)出復(fù) 位信號(hào)。
11、 一種應(yīng)用看門狗的系統(tǒng),其特征在于,該系統(tǒng)包括看門狗,啟動(dòng)后,從0開始計(jì)數(shù),檢測(cè)到計(jì)數(shù)值被讀取,計(jì)算計(jì)數(shù)值除 以預(yù)設(shè)值后所得的余數(shù),從該余數(shù)起重新開始計(jì)數(shù);程序啟動(dòng)監(jiān)測(cè)模塊,檢測(cè)到一個(gè)程序啟動(dòng),讀取看門狗的計(jì)數(shù)值,將該 計(jì)數(shù)值發(fā)送出去;程序啟動(dòng)時(shí)刻確定模塊,接收程序啟動(dòng)監(jiān)測(cè)模塊發(fā)來的計(jì)數(shù)值,計(jì)算看 門狗的當(dāng)前總計(jì)數(shù)值,將該總計(jì)數(shù)值作為當(dāng)前程序的啟動(dòng)時(shí)刻,記錄該啟動(dòng) 時(shí)刻;程序啟動(dòng)時(shí)刻記錄模塊,記錄每個(gè)程序的啟動(dòng)時(shí)刻;程序啟動(dòng)順序檢測(cè)模塊,從程序啟動(dòng)時(shí)刻記錄模塊獲取各程序的啟動(dòng)時(shí)刻,根據(jù)該啟動(dòng)時(shí)刻確定程序啟動(dòng)的先后順序是否正確。
12、 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述系統(tǒng)進(jìn)一步包括啟動(dòng)間隔監(jiān)測(cè)模塊,從程序啟動(dòng)時(shí)刻記錄模塊讀取各程序的啟動(dòng)時(shí)刻, 計(jì)算相鄰程序的啟動(dòng)時(shí)刻之差,將該差值與預(yù)設(shè)最大啟動(dòng)時(shí)間間隔比較,以確定該相鄰程序的啟動(dòng)間隔是否正常。
13、 一種應(yīng)用看門狗的系統(tǒng),其特征在于,該系統(tǒng)包括看門狗,啟動(dòng)后,從0開始計(jì)數(shù),檢測(cè)到計(jì)數(shù)值被讀取,計(jì)算計(jì)數(shù)值除 以預(yù)設(shè)值后所得的余數(shù),從該余數(shù)起重新開始計(jì)數(shù);程序結(jié)束監(jiān)測(cè)模塊,檢測(cè)到一個(gè)程序結(jié)束,讀取看門狗的計(jì)數(shù)值,將該 計(jì)數(shù)值發(fā)送出去;程序結(jié)束時(shí)刻確定模塊,接收程序結(jié)束監(jiān)測(cè)模塊發(fā)來的計(jì)數(shù)值,計(jì)算看 門狗的當(dāng)前總計(jì)數(shù)值,將該總計(jì)數(shù)值作為當(dāng)前程序的結(jié)束時(shí)刻。
14、 如權(quán)利要求13所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括 程序結(jié)束時(shí)刻記錄模塊,記錄每個(gè)程序的結(jié)束時(shí)刻;程序運(yùn)行時(shí)長(zhǎng)確定模塊,從程序結(jié)束時(shí)刻記錄模塊讀取當(dāng)前程序與前一 程序的結(jié)束時(shí)刻,計(jì)算當(dāng)前程序與前一程序的結(jié)束時(shí)刻之差,該差值即為當(dāng) 前程序的運(yùn)4于時(shí)長(zhǎng)。
全文摘要
本發(fā)明公開了看門狗設(shè)計(jì)方法及看門狗。方法包括看門狗啟動(dòng),從0開始計(jì)數(shù),看門狗檢測(cè)到系統(tǒng)讀取計(jì)數(shù)值,計(jì)算計(jì)數(shù)值除以預(yù)設(shè)值后所得的余數(shù),看門狗從該余數(shù)起重新開始計(jì)數(shù)。本發(fā)明避免了看門狗在到達(dá)預(yù)設(shè)值后發(fā)出信號(hào)而引起系統(tǒng)響應(yīng)該信號(hào)情況的發(fā)生,降低了系統(tǒng)的處理負(fù)擔(dān)。本發(fā)明可用于監(jiān)測(cè)多個(gè)啟動(dòng)程序的先后順序、監(jiān)測(cè)相鄰程序之間的啟動(dòng)時(shí)間間隔、跟蹤多個(gè)應(yīng)用程序的運(yùn)行時(shí)長(zhǎng)或結(jié)束時(shí)刻等。
文檔編號(hào)G06F11/00GK101295273SQ20081011532
公開日2008年10月29日 申請(qǐng)日期2008年6月20日 優(yōu)先權(quán)日2008年6月20日
發(fā)明者萬紅星 申請(qǐng)人:北京中星微電子有限公司