本發明專利技術提供了一種防止CPU調試失控的方法,包括以下步驟:S1、CPU正常執行主程序,當CPU內部發生異常,內部甄別電路觸發對應處理機制;S2、中斷處理程序根據異常信息進行處理,CPU從斷點處繼續執行之前被打斷的主程序;S3、當步驟S2出現調試失控狀態,在CPU內添加防異常失控電路;S4、強制CPU進入暫停狀態,等待調試加入。本發明專利技術所述的一種防止CPU調試失控的方法及電路通過防異常失控電路與之配套的調試方法,可以以極小的電路開銷,不僅可以有效避免在調試CPU時發生由內部異常引起的調試失控現象,而且可以非常方便地定位調試失控的原因,提高軟件人員的調試效率。提高軟件人員的調試效率。提高軟件人員的調試效率。
【技術實現步驟摘要】
一種防止CPU調試失控的方法及電路
[0001]本專利技術屬于處理器
,尤其是涉及一種防止CPU調試失控的方法及電路。
技術介紹
[0002]CPU(中央處理器)作為芯片中接收和執行軟件程序的中樞,在實際使用中會頻繁地對新編寫的軟件程序進行調試。而在調試過程中,比較常見且不易解決的主要問題之一就是調試失控(也就是俗稱的程序跑飛,跑死現象)。產生調試失控的原因很多,除了調試系統軟硬件(軟件平臺,調試器等)問題等外部原因外,主要的內部原因就是CPU在調試過程中發生了非預期的內部異常,且該異常的發生進一步導致了CPU一系列非預期的不可控動作,使得暫停和狀態讀寫等調試動作無法進行,既調試進入了失控狀態。
[0003]CPU一般都有一套較為嚴謹成熟的內部異常甄別和處理機制。常見的內部異常包括讀入非法指令,訪問操作未授權,訪問空間未定義,計算類異常,存儲校驗異常等,對于內部異常的處理一般都是通過中斷響應程序來實現的,當某個異常發生后,會觸發CPU內部的異常甄別電路,甄別出異常的種類后,CPU暫停執行當前的程序,直接跳轉到事先編寫好的對應的異常中斷響應程序,來及時處理該異常(如向系統發出警報,暫停CPU并進入調試模式等),避免系統的進一步失控;在異常處理流程的某個環節出現問題時,會導致異常并不能被有效控制,由于現代處理器主頻都很高,經過很短的一段時間(遠遠短于人的反應時間),異常就會使整個芯片和系統進入不可溯源,更不可恢復的失控狀態。在宏觀的表現上就是程序跑飛或系統死機,外部調試手段全部失效,只能通過斷電或重啟的方式加以人工干預;因此,本專利申請提出了一種防止CPU調試失控的方法及電路。
技術實現思路
[0004]有鑒于此,本專利技術旨在提出一種防止CPU調試失控的方法及電路,以解決CPU中的異常信息不能得到有效控制,導致CPU失控的問題。
[0005]為達到上述目的,本專利技術的技術方案是這樣實現的:
[0006]第一方面,本專利技術提供了一種防止CPU調試失控的方法,包括以下步驟:
[0007]S1、CPU正常執行主程序,當CPU內部發生異常,內部甄別電路觸發對應處理機制;
[0008]S2、中斷處理程序根據異常信息進行處理,CPU從斷點處繼續執行之前被打斷的主程序;
[0009]S3、當步驟S2出現調試失控狀態,在CPU內添加防異常失控電路;
[0010]S4、強制CPU進入暫停狀態,等待調試加入。
[0011]進一步的,步驟S3中利用的防異常失控電路包括控制寄存器、選通電路、狀態寄存器和匯總電路,防異常失控電路強制CPU進入暫停狀態,等待調試加入的具體方法包括如下步驟:
[0012]A1、控制寄存器接收軟件配置控制信息;
[0013]A2、選通電路對異常信號進行截斷,并將異常截斷結果存儲在狀態寄存器內;
[0014]A3、匯總電路根據狀態寄存器中的結果,將各類異常信息的狀態進行匯總;
[0015]A4、CPU根據匯總結果,通過內部的調試控制電路發出暫停CPU的請求。
[0016]進一步的,控制寄存器負責接收軟件配置信息,其至少應包含如下使能控制比特位:
[0017](1)非法指令異常控制位,負責選通非法指令異常是否能向后級傳輸;
[0018](2)非法權限異常控制位,負責選通非法權限異常是否能向后級傳輸;
[0019](3)訪問空間未定義異常控制位,負責選通訪問空間未定義異常是否能向后級傳輸;
[0020](4)校驗錯誤異常控制位,負責選通校驗錯誤異常是否能向后級傳輸;
[0021](5)外部總線異常控制位,負責選通外部總線異常是否能向后級傳輸;
[0022](6)計時異常控制位,負責選通計時異常是否能向后級傳輸。
[0023]進一步的,CPU對控制寄存器、狀態寄存器進行讀寫操作,控制寄存器中配置的控制比特值為1時,代表發生該異常時,異常信號被截斷,無法繼續向后傳輸至CPU既有的中斷處理電路;如果配置的控制比特值為0,代表發生該異常時,異常信號不會被截斷,可以繼續向后傳輸。
[0024]進一步的,狀態寄存器中的狀態比特位與控制器寄存器中的使能控制比特位一一對應,狀態比特值為1,代表該類異常已發生并被截斷;狀態比特值為0,代表該類異常尚未發生或未被截斷。
[0025]進一步的,匯總電路根據狀態寄存器中的結果,將各類異常信息的狀態進行匯總,當狀態寄存器有任一狀態比特位變為1時,則會向CPU內部既有的調試控制電路發出暫停CPU的請求。
[0026]第二方面,本專利技術還提供了應用于第一方面所述的一種防止CPU調試失控的方法的電路,包括添加至CPU內部的控制寄存器、選通電路、狀態寄存器和匯總電路,控制寄存器連接CPU內部寄存器配置通路,控制寄存器依次連接選通電路、狀態寄存器和匯總電路,匯總電路連接CPU內既有的調試控制電路。
[0027]相對于現有技術,本專利技術所述的一種防止CPU調試失控的方法及電路具有以下有益效果:
[0028]本專利技術所述的一種防止CPU調試失控的方法及電路通過在CPU內添加軟件可訪問防異常失控電路,以極小的電路開銷,不僅可以有效避免在調試CPU時發生由內部異常引起的調試失控現象,而且可以非常方便地定位調試失控的原因,提高軟件人員的調試效率。
附圖說明
[0029]構成本專利技術的一部分的附圖用來提供對本專利技術的進一步理解,本專利技術的示意性實施例及其說明用于解釋本專利技術,并不構成對本專利技術的不當限定。在附圖中:
[0030]圖1為本專利技術實施例所述的一種防止CPU調試失控的方法流程圖;
[0031]圖2為本專利技術實施例所述的防異常失控電路結構圖;
[0032]圖3為本專利技術實施例所述的利用防異常失控電路的軟件調試控制流程圖。
具體實施方式
[0033]需要說明的是,在不沖突的情況下,本專利技術中的實施例及實施例中的特征可以相互組合。
[0034]在本專利技術的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內”、“外”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本專利技術和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本專利技術的限制。此外,術語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數量。由此,限定有“第一”、“第二”等的特征可以明示或者隱含地包括一個或者更多個該特征。在本專利技術的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
[0035]在本專利技術的描述中,需要說明的是,除非另有明確的規定和限定,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種防止CPU調試失控的方法,其特征在于,包括以下步驟:S1、CPU正常執行主程序,當CPU內部發生異常,內部甄別電路觸發對應處理機制;S2、中斷處理程序根據異常信息進行處理,CPU從斷點處繼續執行之前被打斷的主程序;S3、當步驟S2出現調試失控狀態,在CPU內添加防異常失控電路;S4、強制CPU進入暫停狀態,等待調試加入。2.根據權利要求1所述的一種防止CPU調試失控的方法,其特征在于:步驟S3中利用的防異常失控電路包括控制寄存器、選通電路、狀態寄存器和匯總電路,防異常失控電路強制CPU進入暫停狀態,等待調試加入的具體方法包括如下步驟:A1、控制寄存器接收軟件配置控制信息;A2、選通電路對異常信號進行截斷,并將異常截斷結果存儲在狀態寄存器內;A3、匯總電路根據狀態寄存器中的結果,將各類異常信息的狀態進行匯總;A4、CPU根據匯總結果,通過內部的調試控制電路發出暫停CPU的請求。3.根據權利要求2所述的一種防止CPU調試失控的方法,其特征在于:控制寄存器負責接收軟件配置信息,其至少應包含如下使能控制比特位:(1)非法指令異常控制位,負責選通非法指令異常是否能向后級傳輸;(2)非法權限異常控制位,負責選通非法權限異常是否能向后級傳輸;(3)訪問空間未定義異常控制位,負責選通訪問空間未定義異常是否能向后級傳輸;(4)校驗錯誤異常控制位,負責選通校驗錯誤異常是否能向后級傳輸;...
【專利技術屬性】
技術研發人員:林海波,艾方,王粟,肖佐楠,鄭茳,
申請(專利權)人:天津國芯科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。