嵌入式軟體任務死循環監控方法
2023-05-28 10:35:36 3
專利名稱:嵌入式軟體任務死循環監控方法
技術領域:
本發明屬於計算機作業系統任務管理技術領域,特別涉及嵌入式軟體任務死循環監控方法。
已有的嵌入式軟體死循環監控的實現方法,主要是啟動一個看門狗定時器,該看門狗定時器的中斷服務例程不斷地檢查每個任務對各自消息的處理,若某任務對一個消息的處理時間超過規定的一個最大的閾值,則認為該任務發生了死循環,該方法的具體步驟是1)在正在開發的嵌入式軟體中創建看門狗定時器;2)啟動看門狗定時器,看門狗定時器的中斷服務例程檢測每個任務對各自消息的處理,這時系統運行的上下文是在中斷狀態中;3)若某個任務對一個消息的處理時間超過了預先規定的閾值,則認為該任務發生了死循環,列印信息通知開發人員該任務進入了死循環。
由於看門狗定時器是中斷上下文,當檢測出來任務發生死循環時,只能告知某任務發生了死循環,這對死循環問題的精確定位沒有多大的實際意義。
發明內容
本發明的目的是為克服已有技術的不足之處,提出一種嵌入式軟體任務死循環監控方法,可解決在中斷上下文中檢測出來任務死循環後,給出該任務的調用棧,為分析出發生死循環的精確位置提供了可靠的依據。
本發明提出的一種嵌入式軟體任務死循環監控方法,包括以下步驟1)啟動硬體定時器;2)系統運行的上下文在中斷狀態中,該硬體定時器的中斷服務例程檢測各任務處理各自消息的時間;3)判斷是否發生死循環,若某個任務對一個消息的處理時間超過了預先規定的閾值,則認為該任務發生了死循環;4)將系統運行的中斷上下文轉換成任務上下文;5)在系統的任務上下文中調讀調用棧函數並輸出。
所述的硬體定時器可以是看門狗定時器。
本發明的工作原理由於嵌入式軟體編譯生成的最終文件一般是ELF文件格式,這種文件中含有非常有用的調試信息,可給出軟體運行過程發生了死循環任務的調用棧,有了調用棧,可方便地根據ELF文件的統一格式分析出該調用棧在那些文件及在該文件中的行號。
本發明的特點及效果本發明可將中斷上下文轉換成任務上下文,即可獲得調用棧信息。從而可以精確地得到發生死循環時整個軟體系統的調用棧,也就是系統發生死循環時的函數間調用關係。利用本方法給出的調用棧,再通過一個分析ELF文件的小工具,則可以分析出死循環發生在代碼的那個文件、哪行,對分析問題具有重要使用價值。
圖1為本發明方法總體流程圖。
圖2為本發明的中斷上下文轉換成任務上下文的方法實施例流程圖。
圖3為本發明的調讀調用棧函數的方法實施例流程圖。
上述的硬體定時器可以是看門狗定時器,其中,第4)、5)步驟的實施例詳細流程分別詳細說明如下本實施例的中斷上下文轉換成任務上下文的方法如圖2所示,具體包括以下步驟1)獲得發生死循環任務的系統標示;2)掛起死循環任務;3)申請內存,並填充消息頭;4)將死循環任務的系統標示寫到消息體內;5)向調試任務發消息;
6)運行中的調試任務收到消息後,判斷是否是任務死循環的通知消息;7)若不是,則轉回到6);8)若是,則根據消息中攜帶的死循環任務的系統標示,調讀調用棧的函數。
本實施例的調讀調用棧函數的方法實施例如圖3所示,具體包括以下步驟1)根據死循環任務的系統標示獲得系統通用寄存器的值;2)從通用寄存器中獲得調用棧的第一層棧指針;3)設置循環初始變量i=0(i為調用棧的層號);4)輸出第i層調用棧;5)若i小於最大的調用棧層數(本實施例設定調用棧層數為10)且棧指針不為空時,i加1,取下一層調用棧,轉到4);6)否則,結束。
權利要求
1.一種嵌入式軟體任務死循環監控方法,包括以下步驟1)啟動硬體定時器;2)系統運行的上下文在中斷狀態中,該硬體定時器的中斷服務例程檢測各任務處理各自消息的時間;3)判斷是否發生死循環,若某個任務對一個消息的處理時間超過了預先規定的閾值,則認為該任務發生了死循環;4)將系統運行的中斷上下文轉換成任務上下文;5)在系統的任務上下文中調讀調用棧函數並輸出。
2.如權利要求1所述的嵌入式軟體任務死循環監控方法,其特徵在於,所說的中斷上下文轉換成任務上下文的方法具體包括以下步驟1)獲得發生死循環任務的系統標示;2)掛起死循環任務;3)申請內存,並填充消息頭;4)將死循環任務的系統標示寫到消息體內;5)向調試任務發消息;6)運行中的調試任務收到消息後,判斷是否是任務死循環的通知消息;7)若不是,則轉回到6);8)若是,則根據消息中攜帶的死循環任務的系統標示,調讀調用棧的函數。
3.如權利要求1所述的嵌入式軟體任務死循環監控方法,其特徵在於,所說的調讀調用棧函數的方法,具體包括以下步驟1)根據死循環任務的系統標示獲得系統通用寄存器的值;2)從通用寄存器中獲得調用棧的第一層棧指針;3)設置循環初始變量i=0,i為調用棧的層號;4)輸出第i層調用棧;5)若i小於最大的調用棧層數,且棧指針不為空時,i加1,取下一層調用棧,轉到4);6)否則,結束。
4.如權利要求1所述的嵌入式軟體任務死循環監控方法,其特徵在於所述的硬體定時器為看門狗定時器。
全文摘要
本發明屬於計算機作業系統任務管理技術領域,涉及嵌入式軟體任務死循環監控方法。主要包括;啟動硬體定時器,硬體定時器的中斷服務例程檢測各任務處理各自消息的時間;若某個任務對一個消息的處理時間超過了預先規定的閾值,則認為該任務發生了死循環;將中斷上下文轉換成任務上下文;在任務上下文中獲得該任務的調用棧信息,並輸出調用棧。本發明可解決在中斷上下文中檢測出來任務死循環後,給出該任務的調用棧,為分析出發生死循環的精確位置提供了可靠的依據。
文檔編號G06F11/36GK1477512SQ02128400
公開日2004年2月25日 申請日期2002年8月20日 優先權日2002年8月20日
發明者楊建軍 申請人:華為技術有限公司