欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種中斷不響應(yīng)的檢測(cè)方法及系統(tǒng)的制作方法

文檔序號(hào):6424206閱讀:198來(lái)源:國(guó)知局
專利名稱:一種中斷不響應(yīng)的檢測(cè)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種中斷不響應(yīng)的檢測(cè)方法及系統(tǒng)。
背景技術(shù)
目前,并沒(méi)有關(guān)于MIPS架構(gòu)CPU下中斷或者異常無(wú)法響應(yīng)的分析與解決方案。最接近的現(xiàn)有技術(shù)方案是定位軟件代碼中導(dǎo)致異常的原因,其思想主要是根據(jù)當(dāng)前產(chǎn)生的異常信息回溯出發(fā)生異常函數(shù)的調(diào)用棧,然后跟蹤此函數(shù)調(diào)用路徑分析異常發(fā)生的原因。然而發(fā)生異常的函數(shù)可能被不同的函數(shù)調(diào)用?;厮莺瘮?shù)的調(diào)用棧的方案如下 步驟一在異常處理程序里面通過(guò)讀取CPO的EPC寄存器獲取導(dǎo)致異常發(fā)生的指令地址,記為E_PC。步驟二 由E_PC向下遍歷當(dāng)前發(fā)生異常的函數(shù)的二進(jìn)制代碼直到該導(dǎo)致異常的函數(shù)入口地址,匹配構(gòu)建棧的指令和存放返回地址的指令。匹配到存放返回地址的指令,如"sw ra, XX(sp) ”,則可以根據(jù)sp寄存器的值加上XX的值獲取到此異常函數(shù)的返回地址。再匹配到構(gòu)建函數(shù)棧的指令,如“addiu sp, sp,_YY”,則可以根據(jù)sp寄存器的值加上YY的值獲取到調(diào)用此異常函數(shù)的函數(shù)的棧指針。步驟三繼續(xù)遞歸執(zhí)行步驟二,則可以回溯出整個(gè)函數(shù)調(diào)用關(guān)系。在回溯出函數(shù)調(diào)用棧以后,最底部的就是導(dǎo)致異常的函數(shù),然后根據(jù)回溯的函數(shù)路徑逐步分析找到導(dǎo)致異常的原因。上述方案的缺陷如下I、上述方案能夠?qū)嵤┏晒τ袀€(gè)必須的先決條件,那就是發(fā)生異常后能夠進(jìn)入異常處理程序。如果無(wú)法進(jìn)入異常處理程序,那么就無(wú)法獲取到EPC的值,更無(wú)從談起回溯函數(shù)的調(diào)用棧。2、上述方案只是說(shuō)明了一種回溯函數(shù)調(diào)用路徑的方法,在打印出調(diào)用路徑以后仍需人工分析在此函數(shù)調(diào)用路徑中到底哪里是導(dǎo)致異常發(fā)生的真正原因??梢?jiàn)并不能直接定位。3、眾所周知,在MIPS架構(gòu)的CPU下,中斷是屬于不同的異常類型中的一種。而在嵌入式產(chǎn)品中,尤其是通信領(lǐng)域,中斷扮演著相當(dāng)重要的角色。如,有操作系統(tǒng)的脈搏之稱的系統(tǒng)時(shí)鐘就是靠時(shí)鐘中斷實(shí)現(xiàn),如網(wǎng)絡(luò)數(shù)據(jù)包的接收也是由中斷通知操作系統(tǒng)。萬(wàn)一中斷無(wú)法響應(yīng),導(dǎo)致時(shí)鐘中斷遞交不到操作系統(tǒng)中,或者硬件收到的網(wǎng)絡(luò)數(shù)據(jù)包無(wú)法交給驅(qū)動(dòng)程序處理,此時(shí)并不會(huì)進(jìn)入異常處理程序,更不會(huì)進(jìn)入中斷的處理程序,所以靠上述回溯出函數(shù)調(diào)用路徑的方法無(wú)法解決中斷或者異常的底層問(wèn)題。4、最重要的一點(diǎn),從中斷或者異常發(fā)生到進(jìn)入中斷或者異常處理程序之前,操作系統(tǒng)需要在這期間做很多底層的操作,如判斷異常類型,判斷中斷類型,獲取中斷或者異常服務(wù)程序的函數(shù)地址,等等。這些操作都是上述方案無(wú)法回溯到的。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種中斷不響應(yīng)的檢測(cè)方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中存在的如果中斷或異常無(wú)法進(jìn)入異常處理程序,則無(wú)法定位哪里是導(dǎo)致異常發(fā)生的真正原因,即使可以進(jìn)入異常處理程序,也需要人工分析導(dǎo)致異常發(fā)生的真正原因的問(wèn)題。本發(fā)明是這樣實(shí)現(xiàn)的,一種中斷不響應(yīng)的檢測(cè)方法,所述方法包括以下步驟讀取異常入口地址中的數(shù)據(jù);通過(guò)系統(tǒng)符號(hào)表得到excNormVec函數(shù)的入口地址;讀取所述入口地址的數(shù)據(jù)直到函數(shù)的末尾;比較所述讀取異常入口地址中的數(shù)據(jù)與讀取所述excNormVec入口地址的數(shù)據(jù)直 到函數(shù)的末尾的數(shù)據(jù)是否相同;如果相同,則分析出異常分發(fā)函數(shù)能夠正常工作;如果不相同,則分析出沒(méi)有將異常分發(fā)函數(shù)正確放入在異常入口點(diǎn),輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。本發(fā)明的另一目的在于提供一種中斷不響應(yīng)的檢測(cè)系統(tǒng),所述系統(tǒng)包括第一讀取模塊,用于讀取E_VEC(異常入口)地址中的數(shù)據(jù);第一獲取模塊,用于通過(guò)系統(tǒng)符號(hào)表得到excNormVec函數(shù)的入口地址;第二讀取模塊,用于讀取所述入口地址的數(shù)據(jù)直到函數(shù)的末尾;比較模塊,用于比較所述讀取異常入口地址中的數(shù)據(jù)與讀取所述excNormVec入口地址的數(shù)據(jù)直到函數(shù)的末尾的數(shù)據(jù)是否相同;分析模塊,用于如果比較模塊比較出相同,則分析出異常分發(fā)函數(shù)能夠正常工作;如果不相同,則分析出沒(méi)有將異常分發(fā)函數(shù)正確放入在異常入口點(diǎn);輸出模塊,用于輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。在本發(fā)明中,通過(guò)本發(fā)明能夠極大的提高開(kāi)發(fā)效率和診斷能力,解決了現(xiàn)有技術(shù)中存在的如果中斷或異常無(wú)法進(jìn)入異常處理程序,則無(wú)法定位哪里是導(dǎo)致異常發(fā)生的真正原因,即使可以進(jìn)入異常處理程序,也需要人工分析導(dǎo)致異常發(fā)生的真正原因的問(wèn)題。


圖I是本發(fā)明一實(shí)施例提供的中斷不響應(yīng)的檢測(cè)方法的實(shí)現(xiàn)流程示意圖。圖2是本發(fā)明實(shí)施例提供的調(diào)用intConnect (70, sysClkInt,0)后excBsrTbl [256]向量表的結(jié)構(gòu)示意圖。
圖3是本發(fā)明實(shí)施例提供的中斷不響應(yīng)的檢測(cè)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請(qǐng)參閱圖1,為本發(fā)明實(shí)施例提供的中斷不響應(yīng)的檢測(cè)方法的實(shí)現(xiàn)流程,其包括以下步驟在步驟SlOl中,讀取E_VEC (異常入口)地址中的數(shù)據(jù);在步驟S102中,通過(guò)系統(tǒng)符號(hào)表得到excNormVec函數(shù)的入口地址;
在步驟S103中,讀取所述入口地址的數(shù)據(jù)直到函數(shù)的末尾;在步驟S104中,比較所述讀取異常入口地址中的數(shù)據(jù)與讀取所述excNormVec A口地址的數(shù)據(jù)直到函數(shù)的末尾的數(shù)據(jù)是否相同;在步驟S105中,如果相同,則分析出異常分發(fā)函數(shù)能夠正常工作;在步驟S106中,如果不相同,則分析出沒(méi)有將異常分發(fā)函數(shù)正確放入在異常入口點(diǎn),輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。
·
在本發(fā)明實(shí)施例中,在步驟SlOl之前,還包括步驟系統(tǒng)初始化入口 ;將異常分發(fā)函數(shù)放入在異常入口點(diǎn)。其中,異常入口點(diǎn)在本實(shí)施例中所使用MIPS平臺(tái)下為0x80000080地址處,當(dāng)異?;蛘咧袛喟l(fā)生時(shí),CPU設(shè)置了 CAUSE寄存器中發(fā)生的異常類型后就到此地址處取指令執(zhí)行。此處異常分發(fā)函數(shù),所做的工作就是根據(jù)CAUSE寄存器指示的異常類型跳轉(zhuǎn)到不同的異常處理函數(shù)中。作為本發(fā)明一優(yōu)選實(shí)施例,所述方法還包括以下步驟在步驟S201中,獲取系統(tǒng)中中斷向量表excBsrTbl 口的起始地址;在步驟S202 中,讀取 excBsrTbl+offset 中的數(shù)據(jù),記為 ISRWrapAddr ;在步驟S203中,讀取以ISRWrapAddr為起始地址的預(yù)設(shè)個(gè)數(shù)字節(jié)的數(shù)據(jù);如20字節(jié)的數(shù)據(jù);在步驟S204中,解析讀出的預(yù)設(shè)個(gè)數(shù)字節(jié)數(shù)據(jù),得到ISR函數(shù)的地址;在步驟S205中,通過(guò)系統(tǒng)符號(hào)表得到所注冊(cè)的ISR函數(shù)的地址;在步驟S206中,比較解析得到的ISR函數(shù)的地址與通過(guò)系統(tǒng)符號(hào)表得到所注冊(cè)的ISR函數(shù)的地址是否相同;在步驟S207中,如果相同,則分析出注冊(cè)的ISR能夠正常工作;在步驟S208中,如果不相同,則分析出沒(méi)有將ISR注冊(cè)到中斷向量表中的正確位置,輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。在本發(fā)明實(shí)施例中,在步驟S201之前,還包括以下步驟創(chuàng)建ISR包裹函數(shù);將I SR包裹函數(shù)放置中斷向量表相應(yīng)位置。其中,ISR包裹函數(shù)是以下面的代碼片段為模板0x0 3c08xxxx Iui t0, xxxx/*xxxx 為 ISR 高 16 位地址 */0x4 3c04yyyy Iui a0, yyyy/*yyyy 為 ISR 高 16 位參數(shù) */0x8 3508zzzz ori t0, t0, zzzz/*zzzz 為 ISR 低 16 位地址 */Oxc :01000008 jr t0/* 跳轉(zhuǎn)到 ISR 執(zhí)行 */0x10 3484pppp ori a0, a0, pppp/*pppp 為 ISR 低 16 位參數(shù) */其中最左邊第I列是ISR包裹函數(shù)的相對(duì)地址,第2列是對(duì)應(yīng)的十六進(jìn)制機(jī)器碼,第3列是機(jī)器碼對(duì)應(yīng)的人們可讀懂的匯編代碼。xxxxzzzz構(gòu)成了 ISR的地址,yyyypppp構(gòu)成了 ISR的參數(shù)。創(chuàng)建ISR包裹函數(shù)時(shí),就會(huì)將ISR的地址和參數(shù)分別填入上面的各個(gè)字段中,然后會(huì)將此ISR包裹函數(shù)的地址存放于excBsrTbl [256]向量表中。具體存放于表中的哪個(gè)位置,是由intConnect函數(shù)傳進(jìn)來(lái)的vector參數(shù)決定。如調(diào)用intConnect (70, sysClklnt,0)后excBsrTbl [256]向量表的結(jié)構(gòu)如圖2所示
例如,在中斷發(fā)生時(shí),異常分發(fā)函數(shù)會(huì)調(diào)用excIntStub函數(shù)執(zhí)行,然后此函數(shù)就會(huì)去CAUSE寄存器或者CPU中斷向量寄存器中查看發(fā)生了什么類型的中斷,然后根據(jù)中斷類型得到ISR的包裹函數(shù)在excBsrTbl [256]向量表中的偏移,則可以進(jìn)入ISR中,進(jìn)行相應(yīng)的中斷處理。其中,為了能夠正確的處理中斷,需要將異常分發(fā)函數(shù)正確放至異常入口點(diǎn),且需要將ISR注冊(cè)到中斷向量表中的正確位置,如果這二個(gè)條件不符合,則會(huì)導(dǎo)致中斷無(wú)法響應(yīng)的問(wèn)題。另外,影響中斷能否響應(yīng)的關(guān)鍵地方還包括關(guān)于MIPS的寄存器以及CPU本身關(guān)于中斷的寄存器是否設(shè)置正確,如果設(shè)置不正確,同樣導(dǎo)致中斷無(wú)法響應(yīng)。作為本發(fā)明另一優(yōu)選實(shí)施例,所述方法還包括以下步驟在步驟S301中,獲取CPO中STATUS寄存器的內(nèi)容;在步驟S302中,將所述內(nèi)容與Oxl相與取出IE位;在步驟S303中,判斷IE是否等于0 ;在步驟S304中,若IE等于0,則輸出信息,提示用戶打開(kāi)IE位;在步驟S305中,若IE不等于0,檢測(cè)中斷屏蔽寄存器;在步驟S306中,判斷是否打開(kāi)了相應(yīng)中斷;在步驟S307中,如果沒(méi)有打開(kāi)相應(yīng)中斷,則輸出信息,提示用戶打開(kāi)相應(yīng)中斷屏蔽位;在步驟S308中,如果打開(kāi)相應(yīng)中斷,則檢測(cè)結(jié)束。由上可知,在MIPS架構(gòu)CPU下,CPO的寄存器有兩個(gè)跟中斷相關(guān),第一個(gè)就是CPO的STATUS狀態(tài)寄存器,該寄存器有一個(gè)全局中斷使能位IE,還有八個(gè)中斷屏蔽位IM。第二個(gè)跟中斷相關(guān)的寄存器就是CAUSE寄存器,CAUSE寄存器中有八個(gè)IP位指示發(fā)生了什么類型的中斷。因?yàn)镃AUSE寄存器的IP位是由硬件置位,程序員并不需要寫入。要使中斷能夠進(jìn)入CPU并進(jìn)入中斷服務(wù)程序處理,必須打開(kāi)全局中斷使能位IE和打開(kāi)相應(yīng)的中斷屏蔽位頂。另外,如果主CPU使用的向量化中斷,那么直接檢查主CPU中的中斷屏蔽寄存器即可,而不需要檢查STATUS的頂位。由本發(fā)明實(shí)施例提供的方法能夠準(zhǔn)確的定位中斷無(wú)法響應(yīng)的原因。本發(fā)明實(shí)施例提供的方法能應(yīng)用在例如在時(shí)鐘中斷的例子中,最后檢測(cè)的結(jié)果是因?yàn)橹袛嗥帘渭拇嫫髦械臅r(shí)鐘中斷位沒(méi)有打開(kāi),所以時(shí)鐘中斷沒(méi)有遞交到操作系統(tǒng)中。在另外一個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)的例子中,發(fā)現(xiàn)數(shù)據(jù)包無(wú)法進(jìn)入網(wǎng)卡驅(qū)動(dòng)程序中,經(jīng)過(guò)本程序檢測(cè),發(fā)現(xiàn)是由于注冊(cè)的過(guò)程中出了問(wèn)題,沒(méi)有注冊(cè)到中斷向量表的正確位置。本發(fā)明實(shí)施例提供的方法能夠極大的提高開(kāi)發(fā)效率和診斷能力。請(qǐng)參閱圖3,為本發(fā)明實(shí)施例提供的中斷不響應(yīng)的檢測(cè)系統(tǒng)的結(jié)構(gòu),為了便于說(shuō)明,僅不出了與本發(fā)明實(shí)施例相關(guān)的部分。所述中斷不響應(yīng)的檢測(cè)系統(tǒng)包括第一讀取模塊100、第一獲取模塊101、第二讀取模塊102、比較模塊103、分析模塊104、以及輸出模塊105。所述第一讀取模塊100,用于讀取E_VEC(異常入口)地址中的數(shù)據(jù);第一獲取模塊101,用于通過(guò)系統(tǒng)符號(hào)表得到excNormVec函數(shù)的入口地址;第二讀取模塊102,用于讀取所述入口地址的數(shù)據(jù)直到函數(shù)的末尾;
比較模塊103,用于比較所述讀取異常入口地址中的數(shù)據(jù)與讀取所述excNormVec入口地址的數(shù)據(jù)直到函數(shù)的末尾的數(shù)據(jù)是否相同;分析模塊104,用于如果比較模塊103比較出相同,則分析出異常分發(fā)函數(shù)能夠正常工作;如果不相同,則分析出沒(méi)有將異常分發(fā)函數(shù)正確放入在異常入口點(diǎn);輸出模塊105,用于輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。在本發(fā)明實(shí)施例中,所述系統(tǒng)還包括初始化模塊、以及放入模塊。初始化模塊,用于初始化入口 ;放入模塊,用于將異常分發(fā)函數(shù)放入在異常入口點(diǎn)。作為本發(fā)明一優(yōu)選實(shí)施例,所述系統(tǒng)還包括第二獲取模塊、第三讀取模塊、第四讀取模塊、解析模塊、ISR函數(shù)的地址獲取模塊、地址比較模塊、第二分析模塊、以及第二輸 出模塊。第二獲取模塊,用于獲取系統(tǒng)中中斷向量表excBsrTbl 口的起始地址;第三讀取模塊,用于讀取excBsrTbl+offset中的數(shù)據(jù),記為ISRWrapAddr ;第四讀取模塊,用于讀取以ISRWrapAddr為起始地址的預(yù)設(shè)個(gè)數(shù)字節(jié)的數(shù)據(jù);如20字節(jié)的數(shù)據(jù);解析模塊,用于解析讀出的預(yù)設(shè)個(gè)數(shù)字節(jié)數(shù)據(jù),得到ISR函數(shù)的地址;ISR函數(shù)的地址獲取模塊,通過(guò)系統(tǒng)符號(hào)表得到所注冊(cè)的ISR函數(shù)的地址;地址比較模塊,用于比較解析得到的ISR函數(shù)的地址與通過(guò)系統(tǒng)符號(hào)表得到所注冊(cè)的ISR函數(shù)的地址是否相同;第二分析模塊,用于如果地址比較模塊比較出相同,則分析出注冊(cè)的ISR能夠正常工作;如果不相同,則分析出沒(méi)有將ISR注冊(cè)到中斷向量表中的正確位置;第二輸出模塊,用于輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。在本發(fā)明實(shí)施例中,所述系統(tǒng)還包括創(chuàng)建模塊、以及放置模塊。創(chuàng)建模塊,用于創(chuàng)建ISR包裹函數(shù);放置模塊,用于將ISR包裹函數(shù)放置中斷向量表相應(yīng)位置。作為本發(fā)明另一優(yōu)選實(shí)施例,所述系統(tǒng)還包括內(nèi)容獲取模塊、相與模塊、判斷模塊、提示模塊、檢測(cè)模塊、第二判斷模塊、第二提示模塊。內(nèi)容獲取模塊,用于獲取CPO中STATUS寄存器的內(nèi)容;相與模塊,用于將所述內(nèi)容與Oxl相與取出IE位;判斷模塊,用于判斷IE是否等于0 ;提示模塊,用于若IE等于0,則輸出信息,提示用戶打開(kāi)IE位;檢測(cè)模塊,用于若IE不等于0,檢測(cè)中斷屏蔽寄存器;第二判斷模塊,用于判斷是否打開(kāi)了相應(yīng)中斷;第二提示模塊,用于如果沒(méi)有打開(kāi)相應(yīng)中斷,則輸出信息,提示用戶打開(kāi)相應(yīng)中斷屏蔽位;如果打開(kāi)相應(yīng)中斷,則檢測(cè)結(jié)束。綜上所述,通過(guò)本發(fā)明實(shí)施例能夠極大的提高開(kāi)發(fā)效率和診斷能力;解決了現(xiàn)有技術(shù)中存在的如果中斷或異常無(wú)法進(jìn)入異常處理程序,則無(wú)法定位哪里是導(dǎo)致異常發(fā)生的真正原因,即使可以進(jìn)入異常處理程序,也需要人工分析導(dǎo)致異常發(fā)生的真正原因的問(wèn)題。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以在存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如ROM/RAM、磁盤、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種中斷不響應(yīng)的檢測(cè)方法,其特征在于,所述方法包括以下步驟 讀取異常入口地址中的數(shù)據(jù); 通過(guò)系統(tǒng)符號(hào)表得到excNormVec函數(shù)的入口地址; 讀取所述入口地址的數(shù)據(jù)直到函數(shù)的末尾; 比較所述讀取異常入口地址中的數(shù)據(jù)與讀取所述excNormVec入口地址的數(shù)據(jù)直到函數(shù)的末尾的數(shù)據(jù)是否相同; 如果相同,則分析出異常分發(fā)函數(shù)能夠正常工作; 如果不相同,則分析出沒(méi)有將異常分發(fā)函數(shù)正確放入在異常入口點(diǎn),輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。
2.如權(quán)利要求I所述的方法,其特征在于,在所述讀取E_VEC地址中的數(shù)據(jù)的步驟之前,還包括以下步驟 系統(tǒng)初始化入口; 將異常分發(fā)函數(shù)放入在異常入口點(diǎn)。
3.如權(quán)利要求I所述的方法,其特征在于,所述方法還包括以下步驟 獲取系統(tǒng)中中斷向量表excBsrTbl[]的起始地址; 讀取 excBsrTbl+offset 中的數(shù)據(jù),記為 ISRWrapAddr ; 讀取以ISRWrapAddr為起始地址的預(yù)設(shè)個(gè)數(shù)字節(jié)的數(shù)據(jù); 解析讀出的預(yù)設(shè)個(gè)數(shù)字節(jié)數(shù)據(jù),得到ISR函數(shù)的地址; 通過(guò)系統(tǒng)符號(hào)表得到所注冊(cè)的ISR函數(shù)的地址; 比較解析得到的ISR函數(shù)的地址與通過(guò)系統(tǒng)符號(hào)表得到所注冊(cè)的ISR函數(shù)的地址是否相同; 如果相同,則分析出注冊(cè)的ISR能夠正常工作; 如果不相同,則分析出沒(méi)有將ISR注冊(cè)到中斷向量表中的正確位置,輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。
4.如權(quán)利要求3所述的方法,其特征在于,在所述調(diào)用intVecBaseGetO得到excBsrTbl []的起始地址的步驟之前,還包括以下步驟 創(chuàng)建ISR包裹函數(shù); 將ISR包裹函數(shù)放置中斷向量表相應(yīng)位置。
5.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括以下步驟 獲取CPO中STATUS寄存器的內(nèi)容; 將所述內(nèi)容與Oxl相與取出IE位; 判斷IE是否等于0; 若IE等于0,則輸出信息,提示用戶打開(kāi)IE位; 若IE不等于0,檢測(cè)中斷屏蔽寄存器; 判斷是否打開(kāi)了相應(yīng)中斷; 如果沒(méi)有打開(kāi)相應(yīng)中斷,則輸出信息,提示用戶打開(kāi)相應(yīng)中斷屏蔽位; 如果打開(kāi)相應(yīng)中斷,則檢測(cè)結(jié)束。
6.一種中斷不響應(yīng)的檢測(cè)系統(tǒng),其特征在于,所述系統(tǒng)包括 第一讀取模塊,用于讀取E_VEC(異常入口)地址中的數(shù)據(jù);第一獲取模塊,用于通過(guò)系統(tǒng)符號(hào)表得到excNormVec函數(shù)的入口地址; 第二讀取模塊,用于讀取所述入口地址的數(shù)據(jù)直到函數(shù)的末尾; 比較模塊,用于比較所述讀取異常入口地址中的數(shù)據(jù)與讀取所述excNormVec入口地址的數(shù)據(jù)直到函數(shù)的末尾的數(shù)據(jù)是否相同; 分析模塊,用于如果比較模塊比較出相同,則分析出異常分發(fā)函數(shù)能夠正常工作;如果不相同,則分析出沒(méi)有將異常分發(fā)函數(shù)正確放入在異常入口點(diǎn); 輸出模塊,用于輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 初始化模塊,用于初始化入口 ; 放入模塊,用于將異常分發(fā)函數(shù)放入在異常入口點(diǎn)。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 第二獲取模塊,用于獲取系統(tǒng)中中斷向量表eXCBsrTbl[]的起始地址; 第三讀取模塊,用于讀取excBsrTbl+offset中的數(shù)據(jù),記為ISRWrapAddr ; 第四讀取模塊,用于讀取以ISRWrapAddr為起始地址的預(yù)設(shè)個(gè)數(shù)字節(jié)的數(shù)據(jù); 解析模塊,用于解析讀出的預(yù)設(shè)個(gè)數(shù)字節(jié)數(shù)據(jù),得到ISR函數(shù)的地址; ISR函數(shù)的地址獲取模塊,通過(guò)系統(tǒng)符號(hào)表得到所注冊(cè)的ISR函數(shù)的地址; 地址比較模塊,用于比較解析得到的ISR函數(shù)的地址與通過(guò)系統(tǒng)符號(hào)表得到所注冊(cè)的ISR函數(shù)的地址是否相同; 第二分析模塊,用于如果地址比較模塊比較出相同,則分析出注冊(cè)的ISR能夠正常工作;如果不相同,則分析出沒(méi)有將ISR注冊(cè)到中斷向量表中的正確位置; 第二輸出模塊,用于輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 創(chuàng)建模塊,用于創(chuàng)建ISR包裹函數(shù); 放置模塊,用于將ISR包裹函數(shù)放置中斷向量表相應(yīng)位置。
10.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 內(nèi)容獲取模塊,用于獲取CPO中STATUS寄存器的內(nèi)容; 相與模塊,用于將所述內(nèi)容與Oxl相與取出IE位; 判斷模塊,用于判斷IE是否等于0 ; 提示模塊,用于若IE等于0,則輸出信息,提示用戶打開(kāi)IE位; 檢測(cè)模塊,用于若IE不等于0,檢測(cè)中斷屏蔽寄存器; 第二判斷模塊,用于判斷是否打開(kāi)了相應(yīng)中斷; 第二提示模塊,用于如果沒(méi)有打開(kāi)相應(yīng)中斷,則輸出信息,提示用戶打開(kāi)相應(yīng)中斷屏蔽位;如果打開(kāi)相應(yīng)中斷,則檢測(cè)結(jié)束。
全文摘要
本發(fā)明適用于計(jì)算機(jī)技術(shù)領(lǐng)域,提供了一種中斷不響應(yīng)的檢測(cè)方法及系統(tǒng)。所述方法包括以下步驟讀取異常入口地址中的數(shù)據(jù);通過(guò)系統(tǒng)符號(hào)表得到excNormVec函數(shù)的入口地址;讀取所述入口地址的數(shù)據(jù)直到函數(shù)的末尾;比較所述讀取異常入口地址中的數(shù)據(jù)與讀取所述excNormVec入口地址的數(shù)據(jù)直到函數(shù)的末尾的數(shù)據(jù)是否相同;如果相同,則分析出異常分發(fā)函數(shù)能夠正常工作;如果不相同,則分析出沒(méi)有將異常分發(fā)函數(shù)正確放入在異常入口點(diǎn),輸出錯(cuò)誤信息,報(bào)告出錯(cuò)點(diǎn)。通過(guò)本發(fā)明能夠極大的提高開(kāi)發(fā)效率和診斷能力。
文檔編號(hào)G06F11/00GK102789400SQ201110125949
公開(kāi)日2012年11月21日 申請(qǐng)日期2011年5月16日 優(yōu)先權(quán)日2011年5月16日
發(fā)明者邸寶生 申請(qǐng)人:深圳市普聯(lián)技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
安徽省| 集安市| 北宁市| 龙口市| 泰来县| 大连市| 峨眉山市| 都昌县| 鹿邑县| 通许县| 博白县| 仁化县| 崇明县| 福海县| 轮台县| 双牌县| 永定县| 阳江市| 杭州市| 中超| 诸城市| 陇南市| 石林| 崇礼县| 夏津县| 鹤峰县| 浦北县| 佳木斯市| 邮箱| 清河县| 偏关县| 仪陇县| 眉山市| 苏尼特右旗| 绥滨县| 高雄市| 保亭| 长顺县| 双江| 永吉县| 连州市|