專利名稱:一種硬件復(fù)位監(jiān)控方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)與通信技術(shù)領(lǐng)域,尤其涉及一種硬件復(fù)位監(jiān)控方法及裝
背景技術(shù):
嵌入式系統(tǒng)是指包含于特定系統(tǒng)、以應(yīng)用為中心、以輔助特定系統(tǒng)高質(zhì)量 地完成其功能為目的而設(shè)計(jì)的計(jì)算機(jī)系統(tǒng)。該系統(tǒng)主要適用于對功能、可靠性、 成本、體積、功耗有嚴(yán)格要求的應(yīng)用領(lǐng)域。
通訊系統(tǒng)中的系統(tǒng)通常都是屬于嵌入式系統(tǒng),因此它對系統(tǒng)軟件的可靠性 要求很高,當(dāng)系統(tǒng)軟件運(yùn)行不正常時,需要有一種機(jī)制能夠讓系統(tǒng)復(fù)位,進(jìn)入 正常的狀態(tài)。這里的"復(fù)位"實(shí)際上就是指系統(tǒng)重新啟動。
系統(tǒng)狀態(tài)屬于"正常,,或"不正常,,狀態(tài),嵌入式系統(tǒng)通常采用一種簡單的方
式來判斷如果系統(tǒng)軟件能夠周期性的輸出一個硬件信號,那么當(dāng)前狀態(tài)就認(rèn) 為是正常的;如果系統(tǒng)軟件在一定時間內(nèi)沒有輸出這個硬件信號,那么就認(rèn)為 系統(tǒng)已經(jīng)進(jìn)入了某種不正常的狀態(tài)。這個硬件信號是輸出給一種稱為"看門狗" 的硬件電路的,因此該硬件信號被稱為"喂狗信號",而軟件上將發(fā)出"喂狗信 號"的操作稱為"喂狗操作"。
現(xiàn)有的比較簡單的"看門狗"工作原理如圖l所示??撮T狗主要有一個輸入 端和一個輸出端。輸入端用于接收系統(tǒng)軟件發(fā)出的"喂狗信號",輸出端用于發(fā) 出"復(fù)位信號"。輸入端和輸出端之間的關(guān)系可以簡單的理解成"如果一段時間 內(nèi)輸入端沒收到信號,那么輸出端就發(fā)出信號",這里的"一段時間"是由看門 狗的硬件本身決定的,被稱為"喂狗超時時間"。系統(tǒng)軟件需要定時發(fā)出"喂狗 信號"給看門狗的輸入端,來抑制看門狗的輸出端信號的輸出。如果在喂狗超時時間內(nèi),系統(tǒng)軟件沒有發(fā)出"喂狗信號",看門狗就認(rèn)為系統(tǒng)軟件處于不正常 狀態(tài),看門狗的輸出端將發(fā)出"復(fù)位信號",導(dǎo)致系統(tǒng)重新啟動。
系統(tǒng)軟件的定時喂狗操作通常是以中斷的方式來實(shí)現(xiàn)的。中斷的行為方式 一般如圖2所示,當(dāng)中斷產(chǎn)生時,正常的程序處理流程會被打斷,轉(zhuǎn)而去執(zhí)行 中斷處理流程,當(dāng)中斷處理流程結(jié)束后,在回到剛才正常的程序處理流程^^打 斷的地方繼續(xù)往下執(zhí)行。中斷有^(艮多種類型,其中一種稱為時鐘中斷,它的特
點(diǎn)在于可以通過配置使時鐘中斷周期性的產(chǎn)生,這樣時鐘中斷處理流程會被
周期性的執(zhí)行。根據(jù)時鐘中斷的這一特性,如果在時鐘中斷的處理流程中加入 "喂狗操作",那么就可以實(shí)現(xiàn)軟件的定時喂狗。
中斷可以被關(guān)閉,所謂"關(guān)閉"就是阻止處理器對中斷的響應(yīng),即使有中斷 產(chǎn)生,也不會跳到中斷處理流程中去,而是按正常程序處理流程往下執(zhí)行,直 到中斷被重新打開,才跳到中斷處理流程中去。通過關(guān)閉中斷,可以消除中斷 對正常程序處理流程的干擾。
如果時鐘中斷被關(guān)閉,時鐘中斷的中斷處理流程將得不到執(zhí)行,喂狗操作 也就無法執(zhí)行。如果時鐘中斷被關(guān)閉的時間超過了喂狗超時時間,將導(dǎo)致系統(tǒng) 復(fù)位。系統(tǒng)有時為了保證某一段的正常程序處理流程不被干擾,需要暫時先將 中斷關(guān)閉,等到這一段的處理結(jié)束后,再打開中斷。如果這段處理流程消耗的 時間太長,超過了喂狗超時時間,系統(tǒng)就會被看門狗復(fù)位。
由于看門狗的復(fù)位時刻是由硬件器件決定的,軟件無法控制,因此很難對 看門狗復(fù)位的原因進(jìn)行定位。目前通常使用的方法是在復(fù)位前,看門狗先給系 統(tǒng)軟件發(fā)出一個通知,然后再延遲一^a時間后復(fù)位,系統(tǒng)軟件收到通知后,利
用延遲的這段時間記錄系統(tǒng)當(dāng)前狀態(tài)以供后續(xù)分析。這樣的做法缺陷在于
1、 由于系統(tǒng)復(fù)位前系統(tǒng)軟件的狀態(tài)不能保證是正常的,因此也不能保證 系統(tǒng)軟件能夠正確收到看門狗發(fā)出的通知,因此這種記錄方式不可靠;
2、 記錄的信息僅僅是復(fù)位時刻的系統(tǒng)狀態(tài)信息,對真正導(dǎo)致復(fù)位的中斷 關(guān)閉才喿作并沒有記錄,不利于故障的定位和排查;3、相關(guān)信息記錄于flash等非易失存儲器中,這類存儲器的讀寫時間慢。 因此,現(xiàn)有技術(shù)中尚沒有一種準(zhǔn)確的對看門狗復(fù)位操作前系統(tǒng)運(yùn)行狀態(tài)進(jìn) 行監(jiān)控的方法,因而也就無法準(zhǔn)確的分析系統(tǒng)被看門狗復(fù)位的原因。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種硬件復(fù)位監(jiān)控方法及裝置,用以在嵌入式系統(tǒng)中監(jiān) 控由于中斷被關(guān)閉而導(dǎo)致系統(tǒng)復(fù)位的問題。
一種硬件復(fù)位監(jiān)控方法,該方法包括
當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷操作時,記錄所述操作的相關(guān)信息;
當(dāng)系統(tǒng)被看門狗復(fù)位后,獲取所述操作的相關(guān)信息;
分析所述操作的相關(guān)信息,確定系統(tǒng)被所述看門狗復(fù)位的原因。
一種硬件復(fù)位監(jiān)控裝置,該裝置包括記錄單元、獲取單元和分析單元,其
中,
所述記錄單元,用于當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷操作時,記錄所述操作的相關(guān)信
自
所述獲取單元,用于當(dāng)系統(tǒng)被看門狗復(fù)位后,獲取所述操作的相關(guān)信息; 所述分析單元,用于分析所述操作的相關(guān)信息,確定系統(tǒng)被所述看門狗復(fù) 位的原因。
一種嵌入式系統(tǒng),該系統(tǒng)包括如上所述的硬件復(fù)位監(jiān)控裝置。 本發(fā)明實(shí)施例通過當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷操作時,記錄所述操作的相關(guān)信 息;當(dāng)系統(tǒng)被看門狗復(fù)位后,獲取所述記錄的中斷操作的相關(guān)信息;分析所述 操作的相關(guān)信息,確定系統(tǒng)被所述看門狗復(fù)位的原因。采用本發(fā)明實(shí)施例提供 的方案,可以快速有效的定位在系統(tǒng)軟件運(yùn)行過程中,由于關(guān)閉中斷太久導(dǎo)致 的系統(tǒng)復(fù)位,為定位硬件看門狗電路復(fù)位問題提供了有效快捷的方法。
圖1為現(xiàn)有技術(shù)中看門狗工作方式示意圖2為現(xiàn)有技術(shù)中中斷工作方式示意圖; 圖3為本發(fā)明實(shí)施例1的主要實(shí)現(xiàn)原理流程圖; 圖4為本發(fā)明實(shí)施例2的主要實(shí)現(xiàn)原理流程圖; 圖5為本發(fā)明實(shí)施例提供裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例中,不是被動的在系統(tǒng)復(fù)位時才記錄相關(guān)的信息,而是在系 統(tǒng)運(yùn)行過程中就主動的實(shí)時記錄開關(guān)中斷的操作信息。這樣即使系統(tǒng)復(fù)位時的 操作信息狀態(tài)已經(jīng)不正確,但是狀態(tài)正常時的中斷操作的狀態(tài)信息也能夠被正 確的記錄下來。當(dāng)系統(tǒng)被復(fù)位后,可以根據(jù)復(fù)位前記錄下來的中斷狀態(tài)信息, 回溯出復(fù)位前系統(tǒng)正常運(yùn)行的最后時刻的中斷狀態(tài)信息,來定位和排查復(fù)位原 因。
下面結(jié)合各個附圖對本發(fā)明實(shí)施例技術(shù)方案的主要實(shí)現(xiàn)原理、具體實(shí)施方
式及其對應(yīng)能夠達(dá)到的有益效果進(jìn)4亍詳細(xì)的闡述。
如圖3所示,本發(fā)明實(shí)施例1的主要實(shí)現(xiàn)原理流程如下 步驟ll,當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷才喿作時,記錄所述4乘作的相關(guān)信息。 如果時鐘中斷被關(guān)閉,時鐘中斷的中斷處理流程將得不到執(zhí)行,喂狗操作
也就無法執(zhí)行。如果時鐘中斷被關(guān)閉的時間超過了喂狗超時時間,將導(dǎo)致系統(tǒng)
復(fù)位。因此,為了及時監(jiān)控系統(tǒng)復(fù)位的原因,需要在系統(tǒng)執(zhí)行中斷操作的時候,
記錄中斷的相關(guān)信息。
這里,開關(guān)中斷操作的相關(guān)信息,包括執(zhí)行這一中斷操作的線程名稱、操
作類型、調(diào)用位置以及其他有利于復(fù)位問題定位的相關(guān)信息。
由于系統(tǒng)運(yùn)行過程中關(guān)閉和打開中斷的操作可能非常頻繁,因此本發(fā)明實(shí)
施例提供一種快速便捷的記錄方式,以避免狀態(tài)記錄操作占用大量時間,對系
統(tǒng)運(yùn)行邏輯造成影響。本發(fā)明實(shí)施例擯棄了使用flash等非易失性存儲器作為信息保存載體,而是使用讀寫迅速的內(nèi)存作為信息保存載體。
目前通常使用的內(nèi)存條是DRAM (動態(tài)RAM),其中的數(shù)據(jù)是靠電容存儲 的。由于電容會放電,因此要維持?jǐn)?shù)據(jù),就要不斷的給它充電。給DRAM定期 充電的機(jī)制就叫做數(shù)據(jù)刷新,也叫內(nèi)存刷新。雖然內(nèi)存需要不斷刷新才能保持 其數(shù)據(jù)的有效性,但是刷新有一定的間隙。 一般情況下,只要保證內(nèi)存刷新電 路能夠在數(shù)毫秒(ms)之內(nèi)對DRAM刷新一次,就可以保證數(shù)據(jù)不會丟失, 目前內(nèi)存的刷新間隙通常是64ms。根據(jù)內(nèi)存的這一特性,只要能夠保證從設(shè)備 復(fù)位到內(nèi)存控制器重新初始化結(jié)束之間的這段時間小于64ms,那么就可以滿足 內(nèi)存對刷新時間間隙的要求,從而保證內(nèi)存中的數(shù)據(jù)不會丟失。因此,當(dāng)復(fù)位 時間滿足上述需求的時候,就可以將內(nèi)存視為非易失性存儲器,即使在復(fù)位前 后,內(nèi)存中的數(shù)據(jù)也不會改變。目前嵌入式系統(tǒng)中使用的器件的復(fù)位時間通常 在10ms以內(nèi),能夠滿足上述的需求。本發(fā)明實(shí)施例正是利用了內(nèi)存的這一特性, 才用內(nèi)存作為記錄開關(guān)中斷信息的載體。
由于內(nèi)存是動態(tài)存儲器,可以事先在內(nèi)存中分配特定的專用區(qū)域(地址) 用于存儲系統(tǒng)開關(guān)中斷操作信息。
步驟12,當(dāng)系統(tǒng)被看門狗復(fù)位后,獲取所述操作的相關(guān)信息。
當(dāng)系統(tǒng)被看門狗復(fù)位而重新啟動后,需要了解系統(tǒng)被看門狗復(fù)位的原因。 這時,可以從內(nèi)存中的相關(guān)區(qū)域調(diào)取記錄下來的開關(guān)中斷操作信息用以分析。 這個信息是系統(tǒng)復(fù)位前最后正常運(yùn)行時所記錄的開關(guān)中斷操作狀態(tài)相關(guān)信息。
步驟13,分析所述開關(guān)中斷操作的相關(guān)信息,確定系統(tǒng)被所述看門狗復(fù)位 的原因。
通過對開關(guān)中斷操作信息的分析,可以知道系統(tǒng)復(fù)位是否由于長時間關(guān)閉 中斷,無法及時進(jìn)行喂狗操作而導(dǎo)致的看門狗復(fù)位。倘若確定系統(tǒng)在復(fù)位前處 于時鐘中斷關(guān)閉狀態(tài),則可以知道是由于時鐘中斷關(guān)閉而導(dǎo)致的看門狗復(fù)位。
本實(shí)施例中,在系統(tǒng)某處關(guān)閉中斷時,其關(guān)閉位置、關(guān)閉后的狀態(tài)等相關(guān) 信息都會被記錄下來,如果是由于這次關(guān)閉中斷操作導(dǎo)致的設(shè)備復(fù)位,那么在復(fù)位之后,顯示出的記錄信息將會明確說明某次關(guān)閉中斷操作后沒有對應(yīng)的打 開中斷操作,同時根據(jù)關(guān)閉中斷操作的相關(guān)信息,可以確定是那個線程的哪個 函數(shù)中調(diào)用了這個關(guān)閉中斷的操作。和原有的實(shí)現(xiàn)方式相比,本發(fā)明實(shí)施例利 用內(nèi)存塊來代替非易失存儲器,降低了硬件成本,加快了相關(guān)信息保存的處理 速度,而且通用性強(qiáng),可以方便的應(yīng)用于各種嵌入式系統(tǒng),為定位硬件看門狗 電路復(fù)位問題提供了有效快捷的方法。
較佳地,如圖4所示,本發(fā)明實(shí)施例2的主要實(shí)現(xiàn)原理流程如下 步驟21,系統(tǒng)啟動,并初始化。
步驟22,系統(tǒng)獲取復(fù)位前運(yùn)行時預(yù)留空間的地址,并從復(fù)位前預(yù)留的空間 M中讀取中斷相關(guān)信息并輸出。這里,系統(tǒng)從內(nèi)存空間M中讀取系統(tǒng)復(fù)位前 各個線程的開關(guān)中斷操作信息,并輸出以供分析。如果某個線程最后的開關(guān)中 斷操作是關(guān)閉中斷,則該線程的這個關(guān)閉中斷操作就是導(dǎo)致復(fù)位的原因,可以 根據(jù)記錄下來的這個關(guān)閉中斷操作的調(diào)用位置來迅速定位故障點(diǎn)。
步驟23,系統(tǒng)為本次運(yùn)行預(yù)留一部分的內(nèi)存空間M,并將預(yù)留空間的起 始地址寫入到相應(yīng)的flash中,用于系統(tǒng)復(fù)位重啟時,系統(tǒng)軟件知道去內(nèi)存的 什么位置獲取上次復(fù)位的相關(guān)狀態(tài)信息。
步驟24,系統(tǒng)執(zhí)行開關(guān)中斷才喿作,并將開關(guān)中斷才喿作信息記錄到預(yù)先分配 的內(nèi)存空間M中。也就是說,在進(jìn)行中斷關(guān)閉或打開操作時,將執(zhí)行這一操 作的線程名稱、操作類型、調(diào)用位置以及其他有利于復(fù)位問題定位的相關(guān)信息 記錄到內(nèi)存空間M中。并對內(nèi)存空間M進(jìn)行cache刷新操作,以保證記錄的 內(nèi)容確實(shí)被寫入到內(nèi)存中,而不是保留在cache中。
步驟25,系統(tǒng)被復(fù)位,返回執(zhí)行步驟21,系統(tǒng)再次從步驟21開始正常運(yùn) 行。當(dāng)系統(tǒng)^皮復(fù)位后,系統(tǒng)重新啟動,在內(nèi)存管理初始化之前先讀取flash中 的地址信息,獲得系統(tǒng)上次運(yùn)行時預(yù)留的內(nèi)存空間M的地址。
相應(yīng)地,本發(fā)明實(shí)施例還提供了一種硬件復(fù)位監(jiān)控裝置,如圖5所示,該 裝置包括記錄單元31、獲^^單元32和分析單元33,具體如下記錄單元31 ,用于當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷操作時,記錄中斷操作的相關(guān)信息。 這里,中斷操作的相關(guān)信息包括執(zhí)行這一 中斷操作的線程名稱、操作類型、 調(diào)用位置以及其他有利于復(fù)位問題定位的相關(guān)信息。
獲取單元32,用于當(dāng)系統(tǒng)被看門狗復(fù)位后,獲取中斷操作的相關(guān)信息。 這里,獲取單元32獲取的相關(guān)信息,即是記錄單元31記錄在相應(yīng)存儲器 中的相關(guān)信息。
分析單元33,用于分析中斷操作的相關(guān)信息,確定系統(tǒng)被看門狗復(fù)位的原因。
通過分析中斷操作的線程名稱、操作類型、調(diào)用位置以及其他有利于復(fù)位 問題定位的相關(guān)信息,可以快速的分析判斷系統(tǒng)復(fù)位的具體原因。
較佳地,上述裝置還包括存儲單元34,用于存儲記錄單元31記錄下來的 中斷操作信息;
獲取單元32,從存儲單元34獲取記錄的中斷操作信息。
特別的,上述的存儲單元34為非易失存儲器。例如內(nèi)存等,可以在內(nèi)存 中分配專用空間用于存儲中斷信息。
較佳地,本發(fā)明實(shí)施例還提供一種嵌入式系統(tǒng),該系統(tǒng)包括如上所述的硬 件復(fù)位監(jiān)控裝置,具體如下
硬件復(fù)位監(jiān)控裝置,用于當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷操作時,記錄所述操作的相 關(guān)信息;在看門狗對系統(tǒng)進(jìn)行復(fù)位操作后,獲取并分析所述操作的相關(guān)信息, 確定看門狗對系統(tǒng)進(jìn)行復(fù)位操作的原因。
采用本發(fā)明實(shí)施例提供的方案,可以快速有效的定位在系統(tǒng)軟件運(yùn)行過程 中,由于關(guān)閉中斷太久導(dǎo)致的系統(tǒng)復(fù)位。由于使用內(nèi)存記錄系統(tǒng)開關(guān)中斷操作 的相關(guān)信息,有效的降低了硬件成本,加快了相關(guān)信息保存的處理速度,而且 通用性強(qiáng),可以方便的應(yīng)用于各種嵌入式系統(tǒng),為定位硬件看門狗電路復(fù)位問 題提供了有效快捷的方法。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1、 一種硬件復(fù)位監(jiān)控方法,其特征在于,該方法包括 當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷操作時,記錄所述操作的相關(guān)信息; 當(dāng)系統(tǒng)被看門狗復(fù)位后,獲取所述操作的相關(guān)信息; 分析所述操作的相關(guān)信息,確定系統(tǒng)被所述看門狗復(fù)位的原因。
2、 如權(quán)利要求1所述的方法,其特征在于,所述記錄所述操作的相關(guān)信 息,包括記錄執(zhí)行這一開關(guān)中斷操作的線程名稱、操作類型、調(diào)用位置的相關(guān)信息。
3、 如權(quán)利要求l所述的方法,其特征在于,該方法包括 將所述開關(guān)中斷操:作的相關(guān)信息記錄在內(nèi)存中;當(dāng)系統(tǒng)被看門狗復(fù)位后,從所述內(nèi)存中獲取所述開關(guān)中斷操作的相關(guān)信臺、
4、 如權(quán)利要求3所述的方法,其特征在于,該方法包括
5、 一種硬件復(fù)位監(jiān)控裝置,其特征在于,該裝置包括記錄單元、獲取單 元和分析單元,其中,所述記錄單元,用于當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷操作時,記錄所述操作的相關(guān)信自.所述獲取單元,用于當(dāng)系統(tǒng)被看門狗復(fù)位后,獲取所述操作的相關(guān)信息; 所述分析單元,用于分析所述操作的相關(guān)信息,確定系統(tǒng)被所述看門狗復(fù) 位的原因。
6、 如權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括存儲單元, 用于存儲所述記錄單元記錄下來的開關(guān)中斷操作的相關(guān)信息;所述獲取單元,從所述存儲單元獲取記錄的所述操作的相關(guān)信息。
7、 如權(quán)利要求6所述的裝置,其特征在于,所述存儲單元為內(nèi)存。
8、 一種嵌入式系統(tǒng),其特征在于,所述系統(tǒng)包括如權(quán)利要求5 7任一所述的硬件復(fù)位監(jiān)控裝置。
全文摘要
本發(fā)明公開了一種硬件復(fù)位監(jiān)控方法及裝置,通過當(dāng)系統(tǒng)執(zhí)行開關(guān)中斷操作時,記錄所述操作的相關(guān)信息;當(dāng)系統(tǒng)被看門狗復(fù)位后,獲取所述記錄的操作的相關(guān)信息;分析所述操作的相關(guān)信息,確定系統(tǒng)被所述看門狗復(fù)位的原因。采用本發(fā)明實(shí)施例提供的方案,可以快速有效的定位在系統(tǒng)軟件運(yùn)行過程中,由于關(guān)閉中斷太久導(dǎo)致的系統(tǒng)復(fù)位,為定位硬件看門狗電路復(fù)位問題提供了有效快捷的方法。
文檔編號G06F11/00GK101311910SQ20081011573
公開日2008年11月26日 申請日期2008年6月27日 優(yōu)先權(quán)日2008年6月27日
發(fā)明者航 陳 申請人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司