中斷異常監控方法和裝置的制造方法
【技術領域】
[0001 ]本發明涉及嵌入式軟件領域,尤其涉及一種中斷異常監控方法和裝置。
【背景技術】
[0002]嵌入式軟件中的中斷,是指在嵌入式系統運行過程中,系統出現了必須由中央處理器立即處理的情況時,中央處理器(英文全稱:Central Processing Unit,英文簡稱:CPU)會暫時停止當前程序的執行轉而執行處理新情況的程序和執行過程。中斷是嵌入式系統的基礎,系統時鐘、任務切換等都依賴于中斷,一旦中斷出現問題將會導致整個系統崩潰。
[0003]然而,目前的嵌入式系統中沒有一種有效的手段來監控和定位中斷異常的方法,例如中斷過于頻繁或者中斷死轉,而一旦出現中斷異常問題,會導致系統異常并且定位問題困難。
【發明內容】
[0004]本發明的實施例提供一種中斷異常監控方法和裝置,用于解決由于過于頻繁中斷或中斷死轉所導致的系統異常和定位問題困難的問題。
[0005]為達到上述目的,本發明的實施例采用如下技術方案:
[0006]第一方面,提供了一種中斷異常監控方法,包括:
[0007]在中斷發生時,獲取單位時間內中斷發生的頻率;
[0008]根據所述中斷發生的頻率判斷是否發生中斷異常;
[0009]在發生中斷異常時輸出異常中斷信息。
[0010]結合第一方面,在第一種可能的實現方式中,所述根據所述中斷發生的頻率判斷是否發生中斷異常,包括:
[0011 ]判斷所述單位時間內中斷發生的次數;
[0012]當所述單位時間內中斷發生的次數超過中斷次數閾值時,確定發生中斷異常。
[0013]結合第一方面,在第二種可能的實現方式中,所述獲取單位時間內中斷發生的頻率之前,還包括:
[0014]記錄發生中斷的中斷類型,以及所述中斷類型的中斷發生的CPU周期數,以便依據所述CPU周期數確定相應中斷類型的中斷發生的頻率。
[0015]結合第一方面,在第三種可能的實現方式中,在發生中斷異常時輸出異常中斷信息之前,還包括:
[0016]禁止所述異常中斷,配置所述異常中斷的中斷狀態。
[0017]結合第一方面的第三種可能的實現方式,在第四種可能的實現方式中,所述方法還包括:
[0018]判斷所述異常中斷的所述中斷狀態;
[0019]若所述中斷狀態為異常禁止狀態,則不使能所述異常中斷;
[0020]若所述中斷狀態非異常禁止狀態,則使能所述異常中斷。
[0021 ]第二方面,提供了一種中斷異常監控裝置,包括:
[0022]獲取單元,用于在中斷發生時獲取單位時間內中斷發生的頻率;
[0023]判斷單元,用于根據所述中斷發生的頻率判斷是否發生中斷異常;
[0024]輸出單元,用于在發生中斷異常時輸出異常中斷信息。
[0025]結合第二方面,在第一種可能的實現方式中,所述判斷單元具體用于判斷所述單位時間內中斷發生的次數;當所述單位時間內中斷發生的次數超過中斷次數閾值時,確定發生中斷異常。
[0026]結合第二方面,在第二種可能的實現方式中,所述獲取單元,還用于在獲取單位時間內中斷發生的頻率之前,記錄發生中斷的中斷類型,以及所述中斷類型的中斷發生的CPU周期數,以便依據所述CHJ周期數確定相應中斷類型的中斷發生的頻率。
[0027]結合第二方面,在第三種可能的實現方式中,還包括:
[0028]中斷使能單元,用于在所述輸出單元輸出異常中斷信息之前,禁止所述異常中斷,配置所述異常中斷的中斷狀態。
[0029]結合第二方面的第三種可能的實現方式,在第四種可能的實現方式中,所述中斷使能單元還用于判斷所述異常中斷的所述中斷狀態;若所述中斷狀態為異常禁止,則不使能所述異常中斷;若所述中斷狀態非異常禁止,則使能所述異常中斷。
[0030]本發明的實施例提供的中斷異常監控方法和裝置,通過單位時間內中斷發生的頻率來判斷是否發生中斷異常,并且輸出異常中斷信息的方式,解決了現有技術中由于過于頻繁中斷或中斷死轉所導致的系統異常和定位問題困難的問題。
【附圖說明】
[0031]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0032]圖1為本發明的實施例提供的一種中斷系統的結構示意圖;
[0033]圖2為本發明的實施例提供的一種中斷異常監控方法的流程示意圖;
[0034]圖3為本發明的實施例提供的另一種中斷異常監控方法的流程示意圖;
[0035]圖4為本發明的實施例提供的一種中斷使能判斷的流程示意圖;
[0036]圖5為本發明的實施例提供的一種中斷異常監控裝置的結構示意圖;
[0037]圖6為本發明的實施例提供的另一種中斷異常監控裝置的結構示意圖。
【具體實施方式】
[0038]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0039]參照圖1所示為本發明的實施例所應用的中斷系統的示意圖。示例性的:CPU可響應的中斷類型包括:軟中斷、故障強迫中斷、定時器中斷、數據通道中斷、外設請求中斷等。但是這些中斷類型均可能出現頻繁中斷或中斷死轉等中斷異常。
[0040]為解決上述問題,本發明的實施例提供了一種中斷異常監控方法,應用于圖1中所示的中斷系統,參照圖2所示,包括:
[0041]201、在中斷發生時,獲取單位時間內中斷發生的頻率。
[0042]202、根據所述中斷發生的頻率判斷是否發生中斷異常。
[0043]203、在發生中斷異常時輸出異常中斷信息。
[0044]本發明的實施例提供的中斷異常監控方法,通過單位時間內中斷發生的頻率來判斷是否發生中斷異常,并且輸出異常中斷信息的方式,解決了現有技術中由于過于頻繁中斷或中斷死轉所導致的系統異常和定位問題困難的問題。
[0045]本發明的實施例提供了另一種中斷異常監控方法,應用于圖1中所示的中斷系統,參照圖3所示,包括:
[0046]301、預設中斷的單位時間中斷次數閾值。
[0047]在中斷發生前首先預先設置中斷的單位時間中斷次數閾值,作為用于判斷是否發生中斷異常的門限,在本實施例中示例性地,將單位時間中斷次數閾值設置為103次/秒。
[0048]302、在中斷發生后,記錄發生中斷的中斷類型,以及該中斷類型的中斷發生的CPU周期數,以便依據該CPU周期數確定相應中斷類型的中斷發生的頻率,即單位時間中斷次數。
[0049]可選的,中斷發生的CPU周期數可以配置,在本實施例中示例性地,可以配置只記錄發生100次中斷時所經過的CPU周期數。
[0050]303、根據該中斷類型的中斷發生的CPU周期數計算該中斷類型的單位時間中斷次數。
[0051]在本實施例中示例性地,上述100次中斷所經過的CPU周期數為10000,其中,每CPU周期為1 X 10—6秒,則該中斷類型的單位時間中斷次數為1 / (1 X 10—6 X 10000/100) = 104次/秒。
[0052]304、判斷單位時間中斷次數是否超過中斷次數閾值。
[0053]當該中斷類型在單位時間內中斷發生的次數超過中斷次數閾值時,確定發生中斷異常;此時,該中斷類型的中斷為異常中斷,執行步驟306;
[0054]否則,執行執行步驟305然后跳轉至步驟302重新執行。
[0055]在本實施例中示例性地,單位時間中斷次數104>中斷次數閾值103,因此執行步驟306。
[0056]305、執行正常中斷處理。
[0057]306、禁止該中斷類型的異常中斷。
[0058]其中,在步驟306中,在禁止該中斷類型的異常中斷之后,參照圖4所示,還包括:
[0059]S1、禁止該中斷類型的異常中斷。