ARM異常中斷處理.ppt

ARM異常中斷處理.ppt

ID:49262598

大小:561.00 KB

頁(yè)數(shù):29頁(yè)

時(shí)間:2020-02-02

ARM異常中斷處理.ppt_第1頁(yè)
ARM異常中斷處理.ppt_第2頁(yè)
ARM異常中斷處理.ppt_第3頁(yè)
ARM異常中斷處理.ppt_第4頁(yè)
ARM異常中斷處理.ppt_第5頁(yè)
資源描述:

《ARM異常中斷處理.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、嵌入式系統(tǒng)教案武漢創(chuàng)維特信息技術(shù)有限公司9/21/2021提綱132ARM異常中斷處理概述中斷處理程序的安裝第六章異常中斷處理異常的響應(yīng)和退出各種異常中斷的處理42ARM異常中斷處理概述當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常,例如處理一個(gè)外部的中斷請(qǐng)求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個(gè)異常同時(shí)發(fā)生,它們將會(huì)按固定的優(yōu)先級(jí)進(jìn)行處理。ARM體系結(jié)構(gòu)中的異常,與8位/16位體系結(jié)構(gòu)的中斷有很大的相似之處,但異常與中斷的概念并不完全等同。ARM異

2、常中斷處理概述3ARM體系結(jié)構(gòu)所支持的異常類(lèi)型異常類(lèi)型具體含義復(fù)位復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位處理程序處執(zhí)行。未定義指令遇到不能處理的指令時(shí),產(chǎn)生未定義指令異常。軟件中斷執(zhí)行SWI指令產(chǎn)生,用于用戶模式下的程序調(diào)用特權(quán)操作指令。指令預(yù)取中止處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)中止處理器數(shù)據(jù)訪問(wèn)指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn)時(shí),產(chǎn)生數(shù)據(jù)中止異常。IRQ外部中斷請(qǐng)求有效,且CPSR中的I位為0時(shí),產(chǎn)生IRQ異常。FIQ快速中斷請(qǐng)求引腳有效,且CP

3、SR中的F位為0時(shí),產(chǎn)生FIQ異常。ARM異常中斷處理概述4異常向量表(ExceptionVectors)地址異常進(jìn)入模式0x0000,0000復(fù)位管理模式0x0000,0004未定義指令未定義模式0x0000,0008軟件中斷管理模式0x0000,000C中止(預(yù)取指令)中止模式0x0000,0010中止(數(shù)據(jù))中止模式0x0000,0014保留保留0x0000,0018IRQIRQ0x0000,001CFIQFIQARM異常中斷處理概述5異常優(yōu)先級(jí)(ExceptionPriorities)優(yōu)先級(jí)異常1(最高)復(fù)位

4、2數(shù)據(jù)中止3FIQ4IRQ5預(yù)取指令中止6(最低)未定義指令、SWIARM異常中斷處理概述6對(duì)異常的響應(yīng)當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會(huì)執(zhí)行以下幾步操作將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開(kāi)始執(zhí)行。將CPSR復(fù)制到相應(yīng)的SPSR中。根據(jù)異常類(lèi)型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。對(duì)異常的響應(yīng)7異常響應(yīng)偽代碼處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM狀態(tài)。AR

5、M微處理器對(duì)異常的響應(yīng)過(guò)程用偽碼可以描述為:R14_=ReturnLinkSPSR_=CPSRCPSR[4:0]=ExceptionModeNumberCPSR[5]=0If==ResetorFIQthenCPSR[6]=1CPSR[7]=1PC=ExceptionVectorAddress對(duì)異常的響應(yīng)8從異常返回異常處理完畢之后,ARM微處理器會(huì)執(zhí)行以下幾步操作從異常返回:將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中

6、。將SPSR復(fù)制回CPSR中。若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除??梢哉J(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開(kāi)始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。對(duì)異常的響應(yīng)9中斷處理程序的安裝一般在系統(tǒng)的啟動(dòng)代碼中安裝異常處理程序。大致可以分為兩種情況:0地址處存儲(chǔ)器為ROM/FLASH0地址處存儲(chǔ)器為RAM中斷處理程序的安裝10在ROM/FLASH中安裝中斷處理程序在ROM/FLASH的異常中斷向量表中,可以使用LDR指令直接向程序計(jì)數(shù)器PC中賦值,也可以直接使用跳轉(zhuǎn)指令轉(zhuǎn)到異常中斷處理程序。使用LDR指令:Vec

7、tor_entry:LDRPC,Reset_HandleLDRPC,Undef_HandleLDRPC,SWI_Handle中斷處理程序的安裝11在ROM/FLASH中安裝中斷處理程序LDRPC,Prefetch_HandleLDRPC,Abort_HandleNOPLDRPC,IRQ_HandleLDRPC,FIQ_HandleVector_table:Reset_Handle:.LONGStart_BootUndef_Handle:.LONGUndef_Isr……中斷處理程序的安裝12在ROM/FLASH中安裝中

8、斷處理程序使用跳轉(zhuǎn)指令:Vector_entry:BReset_HandleBUndef_HandleBSWI_HandleBPrefetch_HandleBAbort_HandleNOPBIRQ_HandleBFIQ_Handle中斷處理程序的安裝13RAM中安裝中斷處理程序當(dāng)0地址處為RAM時(shí),中斷向量表必須使用數(shù)據(jù)讀取指令直接指向PC中賦

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。