一種嵌入式操作系統看門狗實現方法
【技術領域】
[0001]本發明涉及嵌入式操作系統領域,特別是一種嵌入式操作系統看門狗實現方法。
【背景技術】
[0002]對于目前主流的嵌入式系統,都會采用外接硬件看門狗電路來保證系統的穩定運行。而在嵌入式軟件中,對于多線程,一般有2種處理方式:一種是每個執行線程各自喂硬件看門狗;另一種是由一個線程喂看門狗,其他線程不與該線程交互。這兩種處理方式都存在一定的風險,如:
[0003]1、在系統運行過程中,當某個線程出現異常,這時候,由于存在其他線程喂硬件看門狗,因此無法檢測線程異常,導致系統異常運行。
[0004]2、由一個線程喂硬件看門狗,只有在該線程異常執行時,硬件看門狗才有可能進行復位,而如果是其他線程,則硬件看門狗同樣無法檢測到異常執行,從而出現系統異常執行的問題。
【發明內容】
[0005]本發明的主要目的在于克服現有技術中的上述缺陷,提出一種采用簡單的軟件看門狗和硬件看門狗配合,防止由于軟件的錯誤引起的各種問題,為嵌入式系統的正常穩定運行提供可靠的看門狗實現方法。
[0006]本發明采用如下技術方案:
[0007]一種嵌入式操作系統看門狗實現方法,其特征在于:在系統啟動時,啟動該軟件看門狗線程并設定為最高優先級,其定時在每一個活躍狀態向硬件看門狗的喂狗端進行喂狗;并設定系統的每條工作線程必須在規定時間內向軟件看門狗線程喂狗以使其處于活躍狀態,若其中任一工作線程超時且無喂狗,則判定系統發生軟件異常,軟件看門狗線程處于非活躍狀態并停止對硬件看門狗喂狗,硬件看門狗觸發系統進行復位。
[0008]優選的,所述系統還設置有臨時開啟和關閉監控工作線程的接口,工作線程可通過調用該臨時開啟和關閉監控接口向所述軟件看門狗線程申請開啟或關閉監控,若申請關閉監控,則其無需在所述規定時間內向軟件看門狗線程喂狗。
[0009]優選的,所述工作線程與所述硬件看門狗互相隔離。
[0010]優選的,當任一工作線程超時無喂狗,則判定系統發生軟件異常,打印異常信息后,軟件看門狗線程停止向所述硬件看門狗喂狗,該異常信息包括異常工作線程、當前系統運行狀態。
[0011]由上述對本發明的描述可知,與現有技術相比,本發明具有如下有益效果:
[0012]1、本發明采用軟件看門狗線程配合硬件看門狗,可保證嵌入式系統運行過程中,軟件的可靠運行,及時發現系統運行的問題,便于高效地排查解決軟硬件中的各種問題。
[0013]2、本發明的嵌入式系統運行中,工作線程需要在規定時間內喂軟件看門狗線程,若超時,則判斷為線程異常,能有效防止由于軟件的錯誤引起的各種問題。
[0014]3、對于某些需要長時間操作外設或者文件系統而無法及時喂軟件看門狗的較為繁忙的工作線程可向軟件看門狗線程申請關閉監控,以達到系統安全穩定的目的。
【附圖說明】
[0015]圖1為本發明方法原理示意圖。
【具體實施方式】
[0016]以下通過【具體實施方式】對本發明作進一步的描述。
[0017]參照圖1,一種嵌入式操作系統看門狗實現方法,設置有軟件看門狗線程和硬件看門狗。在系統啟動時,啟動該軟件看門狗線程并設定為最高優先級,其定時在活躍狀態時,向硬件看門狗的喂狗端進行喂狗。系統的工作線程與硬件看門狗互相隔離,不與硬件看門狗進行交互。并設定系統的每條工作線程必須在規定時間內向軟件看門狗線程喂狗以使其處于活躍狀態,即軟件看門狗線程監控所有工作線程是否正常運行。若其中任一工作線程超時且無喂狗,則該工作線程發生異常,判定系統發生軟件異常,打印異常信息后,軟件看門狗線程處于非活躍狀態并停止對硬件看門狗喂狗,硬件看門狗觸發系統進行復位,防止由于系統錯誤運行而導致的其他各種問題。異常信息包括:異常線程,當前系統運行狀態等,方便軟件開發者判斷異常線程所在。
[0018]進一步的,由于有些工作線程在系統運行過程中,需要長時間處理事務二無法對軟件看門狗喂狗,為避免這種問題,本發明系統還設置有臨時開啟和關閉監控接口,某些較為繁忙的工作線程(例如:需要長時間操作外設或者文件系統的工作線程)可通過調用該臨時開啟和關閉監控接口向軟件看門狗線程申請開啟或關閉監控。若申請關閉監控,則其無需在后續的規定時間內向軟件看門狗線程喂狗,即軟件看門狗在一段時間內不對其進行監控,待事務處理完畢后,再開啟監控,達到系統安全穩定的目的。
[0019]上述僅為本發明的【具體實施方式】,但本發明的設計構思并不局限于此,凡利用此構思對本發明進行非實質性的改動,均應屬于侵犯本發明保護范圍的行為。
【主權項】
1.一種嵌入式操作系統看門狗實現方法,其特征在于:在系統啟動時,啟動該軟件看門狗線程并設定為最高優先級,其定時在活躍狀態下,向硬件看門狗的喂狗端進行喂狗;并設定系統的每條工作線程必須在規定時間內向軟件看門狗線程喂狗以使其處于活躍狀態,若其中任一工作線程超時且無喂狗,則判定系統發生軟件異常,軟件看門狗線程處于非活躍狀態并停止對硬件看門狗喂狗,硬件看門狗觸發系統進行復位。
2.如權利要求1所述的一種嵌入式操作系統看門狗實現方法,其特征在于:所述系統還設置有臨時開啟和關閉監控工作線程的接口,工作線程可通過調用該該臨時開啟和關閉監控接口向所述軟件看門狗線程申請開啟或關閉監控,若申請關閉監控,則其無需在所述規定時間內向軟件看門狗線程喂狗。
3.如權利要求1所述的一種嵌入式操作系統看門狗實現方法,其特征在于:所述工作線程與所述硬件看門狗互相隔離。
4.如權利要求1所述的一種嵌入式操作系統看門狗實現方法,其特征在于:當任一工作線程超時無喂狗,則判定系統發生軟件異常,打印異常信息后,軟件看門狗線程停止向所述硬件看門狗喂狗,該異常信息包括異常工作線程和當前系統運行狀態。
【專利摘要】一種嵌入式操作系統看門狗實現方法,在系統啟動時,啟動該軟件看門狗線程并設定為最高優先級,其定時在活躍狀態下,向硬件看門狗的喂狗端進行喂狗;并設定系統的每條工作線程必須在規定時間內向軟件看門狗線程喂狗以使其處于活躍狀態,若其中任一工作線程超時且無喂狗,則判定系統發生軟件異常,軟件看門狗線程處于非活躍狀態并停止對硬件看門狗喂狗,硬件看門狗觸發系統進行復位。本發明采用軟件看門狗線程配合硬件看門狗,可保證嵌入式系統運行過程中,軟件的可靠運行,及時發現系統運行的問題,便于高效地排查解決軟硬件中的各種問題。
【IPC分類】G06F11-00
【公開號】CN104636212
【申請號】CN201410834982
【發明人】何樹生, 許良剛, 林冬武
【申請人】漳州科能電器有限公司
【公開日】2015年5月20日
【申請日】2014年12月29日