專利名稱:一種嵌入式系統(tǒng)中防止系統(tǒng)崩潰的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多進程系統(tǒng)的實時監(jiān)控領(lǐng)域,具體涉及一種嵌入式系統(tǒng)中防止系統(tǒng)崩潰的方法。
背景技術(shù):
在嵌入式系統(tǒng)(汽車音響導(dǎo)航/通信設(shè)備)中,常常會受到來自外界電磁輻射的干擾或系統(tǒng)供電部分對主機電源脈沖的干擾,造成系統(tǒng)程序執(zhí)行錯亂,有可能使MCU陷入死循環(huán),從而整個系統(tǒng)進入了停滯狀態(tài),嚴重影響了系統(tǒng)對用戶操作的響應(yīng)。所以構(gòu)建一個可靠穩(wěn)定的監(jiān)控系統(tǒng)程序,防止系統(tǒng)崩潰的方法非常重要。通常嵌入式系統(tǒng)都會考慮用watchdog定時器來監(jiān)測程序運行狀態(tài),將watchdog查詢和啟動定時器放在優(yōu)先級比較高,任務(wù)量較小的線程中,其它低優(yōu)先級的各個線程則在任務(wù)處理完后進行信號的設(shè)置,當(dāng)某個線程的任務(wù)處理陷入了死循環(huán),則watchdog線程無法執(zhí)行重啟定時器的動作,定時器到時后進行系統(tǒng)的自動復(fù)位。但是,由于通常的watchdog機制沒有同時進行系統(tǒng)程序和MCU外設(shè)的實時監(jiān)測,當(dāng)系統(tǒng)在干擾情況下,某個線程程序執(zhí)行跑飛,或者賴于系統(tǒng)自動復(fù)位的watchdog定時器失效,無法進行定時器中斷,那么系統(tǒng)仍舊會處于停滯狀態(tài),無法完成重啟。
發(fā)明內(nèi)容
為克服上述問題·,本發(fā)明提出一種嵌入式系統(tǒng)中防止系統(tǒng)崩潰的方法。本發(fā)明采用的技術(shù)方案是:嵌入式系統(tǒng)中防止系統(tǒng)崩潰的方法,
首先測量得到系統(tǒng)程序任務(wù)執(zhí)行的最大時間T_task;
設(shè)置定時器Tl對系統(tǒng)程序進行監(jiān)控,給定時器Tl設(shè)置一定的定時時間,定時時間值要大于系統(tǒng)程序執(zhí)行的時間T_task,系統(tǒng)程序在末尾處設(shè)置重啟定時器Tl的步驟,如果一段時間內(nèi)系統(tǒng)程序沒能對Tl定時器進行重啟,定時器Tl的定時中斷實現(xiàn)對系統(tǒng)程序復(fù)位;系統(tǒng)程序另設(shè)置變量A及定時器Τ0,Τ0定時器的定時值要小于系統(tǒng)程序運行的時間乙task,當(dāng)定時器TO定時中斷時,給變量A賦值,同時,對定時器Tl工作狀態(tài)進行監(jiān)測,如果定時器Tl異常則對系統(tǒng)程序進行復(fù)位;
系統(tǒng)程序在線程末尾處設(shè)置對變量A的值進行判斷的步驟,檢查變量A是否發(fā)生了預(yù)期的變化,如果未發(fā)生預(yù)期的變化,則對系統(tǒng)程序進行復(fù)位。優(yōu)選的,定時器TO通過監(jiān)控定時器Tl狀態(tài)寄存器的方式對定時器Tl進行監(jiān)測。本發(fā)明系統(tǒng)程序的執(zhí)行和watchdog定時器進行互相監(jiān)控,形成閉環(huán)的防錯機制,對比單方向的監(jiān)測,在干擾情況發(fā)生時,閉環(huán)中的任一部分出現(xiàn)異常即觸發(fā)防錯機制,增強了系統(tǒng)的抗干擾能力和穩(wěn)定性。
圖1是本發(fā)明所述方法工作流程示意圖。
具體實施例方式為方便本領(lǐng)域的技術(shù)人員了解本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合附圖及實施例對本發(fā)明做進一步的詳細說明。本發(fā)明的設(shè)計思路是:首先測量系統(tǒng)程序任務(wù)執(zhí)行的時間T_task ms,設(shè)置Tl定時器進行系統(tǒng)程序執(zhí)行的監(jiān)控,給Tl設(shè)置一定的定時時間,定時值要留有余量,大于系統(tǒng)程序執(zhí)行的耗時(T_task),這樣系統(tǒng)程序可以在尾部進行Tl定時器的重啟,如果一段時間內(nèi)系統(tǒng)程序沒能對Tl定時器進行重啟,Tl的定時中斷便對系統(tǒng)程序進行復(fù)位。但如果Tl定時器本身故障,則無法正常監(jiān)控系統(tǒng)程序.那么,再設(shè)置TO定時器,在TO定時器中斷時,進行Tl定時器是否正常的監(jiān)視,如果Tl定時器異常則也需對系統(tǒng)程序進行復(fù)位。另外,為監(jiān)控線程運行情況,再設(shè)置一個變量A,在TO定時器定時中斷時,給變量A賦值,TO定時器的定時值要小于系統(tǒng)線程運行的時間(T_task),這樣系統(tǒng)程序在線程尾部可以對變量A進行判斷,檢查該變量是否發(fā)生了預(yù)期的變化,如果是發(fā)生了預(yù)期的變化則說明TO定時器運行正常;否則,表示系統(tǒng)運行不正常,則需對系統(tǒng)程序進行復(fù)位。如圖1,本發(fā)明的工作流程是:系統(tǒng)初始化定時器TC、Tl,并給A賦值,則定時器T0、Tl啟動,同時,系統(tǒng)程序正常運行,在系統(tǒng)程序周期中設(shè)置重啟定時器Tl的步驟,并在系統(tǒng)程序所包含的線程程序中設(shè)置判斷變量A的步驟(同時定時器TO到時中斷,中斷程序中對變量A賦值,并監(jiān)控定時器Tl,不正常則系統(tǒng)重啟)。在運行到判斷步驟,如果變量A的值等于設(shè)定的值,則系統(tǒng)正常循環(huán)執(zhí)行,否則重啟系統(tǒng)。此過程中一旦定時器Tl中斷,則系統(tǒng)重啟。TO定時器是否正常工作由系統(tǒng)程序進行檢測(通過變量A是否按預(yù)期的設(shè)計進行變化);系統(tǒng)程序是否陷入死循環(huán)由Tl定時器進行檢測(如果沒有執(zhí)行重啟定時器Tl的步驟,Tl定時器中斷會進行系統(tǒng)重啟);T1定時器是否正常運行由TO定時器進行檢測(通過查詢Tl狀態(tài)寄存器)。由此,系統(tǒng)中,任一部分出現(xiàn)異常即觸發(fā)防錯機制。上述實施例僅為本發(fā)明的具體實現(xiàn)方式,其描述較為具體和詳細,不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下, 還可以做出若干變形和改進,這些顯而易見的替換形式均屬于本發(fā)明的保護范圍。
權(quán)利要求
1.嵌入式系統(tǒng)中防止系統(tǒng)崩潰的方法,其特征在于, 首先測量得到系統(tǒng)程序任務(wù)執(zhí)行的最大時間T_task; 設(shè)置定時器Tl對系統(tǒng)程序進行監(jiān)控,給定時器Tl設(shè)置一定的定時時間,定時時間值要大于系統(tǒng)程序執(zhí)行的時間T_task,系統(tǒng)程序在末尾處設(shè)置重啟定時器Tl的步驟,如果一段時間內(nèi)系統(tǒng)程序沒能對Tl定時器進行重啟,定時器Tl的定時中斷實現(xiàn)對系統(tǒng)程序復(fù)位;系統(tǒng)程序另設(shè)置變量A及定時器TO,TO定時器的定時值要小于系統(tǒng)程序運行的時間乙task,當(dāng)定時器TO定時中斷時,給變量A賦值,同時,對定時器Tl工作狀態(tài)進行監(jiān)測,如果定時器Tl異常則對系統(tǒng)程序進行復(fù)位; 系統(tǒng)程序在線程末尾處設(shè)置對變量A的值進行判斷的步驟,檢查變量A是否發(fā)生了預(yù)期的變化,如果未發(fā)生預(yù)期的變化,則對系統(tǒng)程序進行復(fù)位。
2.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)中防止系統(tǒng)崩潰的方法,其特征在于:定時器TO通過監(jiān)控定時器Tl狀態(tài) 寄存器的方式對定時器Tl進行監(jiān)測。
全文摘要
本發(fā)明涉及一種嵌入式系統(tǒng)中防止系統(tǒng)崩潰的方法。所述方法設(shè)置定時器T1對系統(tǒng)程序進行監(jiān)控,設(shè)置變量A對線程進行監(jiān)控,并設(shè)置定時器T0對T1進行監(jiān)控及對A賦值;當(dāng)定時器T0定時中斷時,給變量A賦值,同時,對定時器T1工作狀態(tài)進行監(jiān)測,如果定時器T1異常則對系統(tǒng)程序進行復(fù)位;系統(tǒng)程序在線程末尾處設(shè)置對變量A的值進行判斷的步驟,檢查變量A是否發(fā)生了預(yù)期的變化,如果未發(fā)生預(yù)期的變化,則對系統(tǒng)程序進行復(fù)位。本發(fā)明系統(tǒng)程序的執(zhí)行和watchdog定時器進行互相監(jiān)控,形成閉環(huán)的防錯機制,對比單方向的監(jiān)測,在干擾情況發(fā)生時,閉環(huán)中的任一部分出現(xiàn)異常即觸發(fā)防錯機制,增強了系統(tǒng)的抗干擾能力和穩(wěn)定性。
文檔編號G06F11/36GK103226507SQ201310153279
公開日2013年7月31日 申請日期2013年4月28日 優(yōu)先權(quán)日2013年4月28日
發(fā)明者周嘉文, 鄉(xiāng)國偉, 劉洪濤 申請人:惠州市德賽西威汽車電子有限公司