《異常中斷處理》PPT課件

《異常中斷處理》PPT課件

ID:36870137

大?。?16.60 KB

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

時(shí)間:2019-05-10

《異常中斷處理》PPT課件_第1頁(yè)
《異常中斷處理》PPT課件_第2頁(yè)
《異常中斷處理》PPT課件_第3頁(yè)
《異常中斷處理》PPT課件_第4頁(yè)
《異常中斷處理》PPT課件_第5頁(yè)
資源描述:

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

1、第9章異常中斷處理1AssembleLanguageofARM9.1ARM異常中斷處理概述控制程序的執(zhí)行流程有3種方式:正常情況下,程序每執(zhí)行一條指令,程序計(jì)數(shù)器寄存器pc將增加4或2字節(jié);通過(guò)跳轉(zhuǎn)指令,程序可以跳轉(zhuǎn)到特定的地址標(biāo)號(hào)處執(zhí)行,或者跳轉(zhuǎn)到特定的子程序處執(zhí)行;B指令BL指令BLX指令,BX指令當(dāng)異常中斷發(fā)生時(shí),系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。2AssembleLanguageofARM異常中斷名稱含義復(fù)位當(dāng)處理器的復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行。未定義指令當(dāng)ARM處理器

2、或協(xié)處理器遇到不能處理的指令時(shí),產(chǎn)生未定義指令異常??墒褂迷摦惓C(jī)制進(jìn)行軟件仿真。軟件中斷(SWI)該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令。可使用該異常機(jī)制實(shí)現(xiàn)系統(tǒng)功能調(diào)用。指令預(yù)取中止若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),存儲(chǔ)器會(huì)向處理器發(fā)出中止信號(hào),但當(dāng)預(yù)取的指令被執(zhí)行時(shí),才會(huì)產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)訪問(wèn)中止若處理器數(shù)據(jù)訪問(wèn)指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn)時(shí),產(chǎn)生數(shù)據(jù)中止異常。外部中斷請(qǐng)求(IRQ)當(dāng)處理器的外部中斷請(qǐng)求引腳有效,且CPSR中的I位為0時(shí),產(chǎn)生IRQ異常。系

3、統(tǒng)的外設(shè)可通過(guò)該異常請(qǐng)求中斷服務(wù)??焖僦袛嗾?qǐng)求(FIQ)當(dāng)處理器的快速中斷請(qǐng)求引腳有效,且CPSR中的F位為0時(shí),產(chǎn)生FIQ異常。9.1.1ARM體系中異常中斷種類3AssembleLanguageofARM中斷向量表指定了各異常中斷及其處理程序的對(duì)應(yīng)關(guān)系,通常放在內(nèi)存的低地址端。在ARM體系中,異常中斷向量表的大小為32字節(jié),其中每個(gè)異常中斷占據(jù)4個(gè)字節(jié),保留4個(gè)字節(jié)。每個(gè)異常中斷對(duì)應(yīng)的中斷向量表中的4個(gè)字節(jié)空間中存放一條跳轉(zhuǎn)指令或者一條向PC寄存器中賦值的數(shù)據(jù)訪問(wèn)指令。9.1.2異常中斷向量表及異常中斷優(yōu)先級(jí)4AssembleLang

4、uageofARM各異常中斷的中斷向量地址及其異常中斷處理優(yōu)先級(jí)表中斷向量地址異常中斷類型異常中斷模式優(yōu)先級(jí)*0x0復(fù)位特權(quán)模式(SVC)10x4未定義的指令未定義指令中止模式(Undef)60x8軟件中斷(SWI)特權(quán)模式(SVC)60x0c指令預(yù)取中止中止模式50x10數(shù)據(jù)訪問(wèn)中止中止模式20x14保留未使用未使用0x18外部中斷請(qǐng)求(IRQ)外部中斷(IRQ)模式40x1c快速中斷請(qǐng)求(FIQ)快速中斷(FIQ)模式3*注:1最高;6最低5AssembleLanguageofARM9.1.3異常中斷使用的寄存器各異常中斷對(duì)應(yīng)著一定的

5、處理器模式。應(yīng)用程序通常運(yùn)行在用戶模式下。各種不同的處理器模式對(duì)應(yīng)于該處理器模式的物理寄存器組。6AssembleLanguageofARM異常處理中的寄存器使用與異常發(fā)生相關(guān)的模式改變意味著所調(diào)用的異常處理程序至少要訪問(wèn):私有的SP_(stackpointer).私有的LR_(linkregister).私有的SPSR_(savedprogramstatusregister).在FIQ異常處理中,另有5個(gè)私有的通用寄存器(r8_fiqtor12_fiq).其它的寄存器是所有模式公用的.異常處理程序必須

6、確保其他的寄存器在退出前恢復(fù)到原來(lái)的狀態(tài)這可以通過(guò)將任何正在使用的寄存器的內(nèi)容保存在堆棧中,并在返回前恢復(fù)來(lái)實(shí)現(xiàn)任何所需寄存器的初始化要由應(yīng)用程序的起始代碼來(lái)完成,參閱:“EmbeddedSoftwareDevelopment”7AssembleLanguageofARM8AssembleLanguageofARM處理器模式描述用戶模式(usr)正常程序執(zhí)行的模式快速中斷模式(fiq)用于高速數(shù)據(jù)傳輸或通道處理外部中斷模式(irq)用于通用的中斷處理特權(quán)模式(svc)供操作系統(tǒng)使用的保護(hù)模式(復(fù)位或軟中斷)中止模式(abt)當(dāng)數(shù)據(jù)或指令預(yù)

7、取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。未定義指令中止模式(und)當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持通過(guò)軟件仿真硬件的協(xié)處理器。系統(tǒng)模式(sys)用于運(yùn)行具有特權(quán)級(jí)的操作系統(tǒng)任務(wù)。ARM中的處理器模式9AssembleLanguageofARMVectorTableVectortablecanbeat 0xFFFF0000onARM720T andonARM9/10familydevicesFIQIRQ(Reserved)DataAbortPrefetchAbortSoftwareInterruptUndefinedIns

8、tructionReset0x1C0x180x140x100x0C0x080x040x00當(dāng)異常產(chǎn)生時(shí),ARMcore:拷貝CPSR到SPSR_設(shè)置適當(dāng)?shù)腃PSR位:改變處理器狀態(tài)

當(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)系客服處理。