




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、5 29.20)3Neusott Institute of Information當(dāng)異常出現(xiàn)時,異常模式分組的R14和SPSR用于保存當(dāng) 前程序的位置和狀態(tài),即R14_<exception mode> = return link SPSR_<exception_mode> = CPSRCPSR4:0 = exception mode numberCPSR 5= 0/* 在 ARM狀態(tài)執(zhí)行*/if <exception mode> = Reset or FIQ then CPSR 6 = 1/*禁止快速中斷*/* 否則 CPSR 6 不變*/CPSR 7 =
2、1/*禁止正常中斷*/PC = exception vector address當(dāng)處理異常返回時,將SPSR傳送到CPSR, R14傳送到PC。 這可用兩種方法完成,即 使用帶S位的數(shù)據(jù)處理指令,將PC作為目的寄存器; 使用帶恢復(fù)CPSR的多加裁指令。R14. und=address of next instruction after the undefined instructionSPSR_und二CPSRCPSRT4:0=0bll011 /*進入未定義模式*/ CPSR 5 =0 /*在ARM狀態(tài)執(zhí)行*/*CPSR6不變*/CPSR 7 =1 "禁止正常中斷檸 If high
3、vectors configured thenPC=0xFFFF0004ElsePC=0x00000004在仿真未定義指令后,使用下列指令返回,即 MOVS PC, R14上面的指令恢夏PC (從R14md)和CPSR (從SPSR.und),并返 回到未定義指令后鬲下一條指令。A(rt29.20!3Neusott Institute ol Information3.軟件中斷異常:中斷指令SWI (Software Interrupt Instruction) 嘉菇蟹待定的管理(操作系統(tǒng))函數(shù)。當(dāng)執(zhí)行R14_svc=address of next instruction after the S
4、WI instructionSPSR_svc=CPSRCPSRT4:0=0bl0011 /* 進入管理模式*/ CPSR 5 =0 /*在ARM狀態(tài)執(zhí)行*/CPSR 6不變*/ CPSR7=1 /*禁止正常中斷*/ If high vectors configured then PC=0xFFFF0008ElesPC=0x00000008ApN29.20!3Neusoft Institute of Information完成SWI操作后,使用下列指令恢復(fù)PC (從R14_svc)和CPSR (從SPSR_svc),并返 回到SWI看令后的下一條指令,即MOVS PC, R14Neusoft I
5、nstitute of Information存儲器系統(tǒng)發(fā)出存儲器中止(abort)信號。響 應(yīng)取指激活的中止標(biāo)記所取的指令無效。若處理器試圖執(zhí)行無效指令,則產(chǎn)生預(yù)取中止異常。若指令未執(zhí)行(例如,指令在流水線中發(fā)生了 轉(zhuǎn)移),則不發(fā)生預(yù)取中止。在ARMv5及以上版本 中,執(zhí)行BKPT指令也會產(chǎn)生預(yù)取中止異常。當(dāng)試圖執(zhí)行一條中止的指令時,將執(zhí)行下列操 作:ApN29.2013Neusoft Institute of InformationApN29.2OI3Neusoft Institute of InformationR14_abt=address of the aborted instruc
6、tion + 4 SPSR_abt=CPSRCPSR4:0=0bl0111 /* 進入中止模式*/CPSR5=0 /*在ARM狀態(tài)執(zhí)行*/* CPSR 6不變*/CPSR7=1 /*禁止正常中斷*/If high vectors configured thenPC=0xFFFF000CElsePC=OxOOOOOOOC確定中止原因后,使用下面指令從中止模式返回,即 SUBS PC, R14, #4上面的指令恢復(fù)氏(從RU.abt)和CPSR(從SPSR.abt),并返回 到中止的指令A(yù)pN 29.20)3Neusoft Institute of Information5數(shù)據(jù)中止(數(shù)據(jù)訪問存儲器
7、中止)存儲器系統(tǒng)發(fā)出存儲器中止信號。響應(yīng)數(shù)據(jù)訪問 (加載或存儲)激活的中止標(biāo)記數(shù)據(jù)為無效。在下面的任 何指令或異常改變cpu狀態(tài)之前,數(shù)據(jù)中止異常發(fā)生。執(zhí) 行下列操作:R14_abt=address of the aborted instruction + 8 SPSR_abt=CPSRCPSR4:0=0bl01U /*進入中止模式*/CPSR 5 =0 /*在ARM狀態(tài)執(zhí)行*/* CPSR 6不變*/CPSR 7=1 /*禁止正常中斷*/6 中斷請求(IRQ)異常通過處理器上的IRQ輸入引腳,由外部產(chǎn)生 IRQ異常。IRQ異常的優(yōu)先級比FIQ異常的低。當(dāng)進入 FIQ處理時,會屏蔽掉IRQ異常
8、。若CPSR的I位置為1,則禁止IRQ中斷。若I位 清零,則ARM在指令執(zhí)行完之前檢查IRQ輸入。只能在特權(quán)模式下改變I位,當(dāng)檢測到IRQ時, 執(zhí)行下列操作:ApN29.2013Neusoft Institute of Information7快速中斷請求(FIQ)異常通過處理器上的FIQ輸入引腳,由外部產(chǎn)生FIQ 異常。FIQ被設(shè)計成支持?jǐn)?shù)據(jù)傳送和通道處理,并有 足夠的私有(private)寄存器,從而在這樣的應(yīng)用中 可避免對寄存器保存的需求,減少了上下文切換的 總開銷。當(dāng)CPSR的F位置1時,禁止快速中斷。若F位清 零,則ARM在執(zhí)行指令時檢查FIQ輸入。只能在特權(quán) 模式下改變F位,當(dāng)檢測
9、到FIQ時,執(zhí)行下列操作,HApm 29.2013Neusoft Institute of Information異常優(yōu)先級優(yōu)先級異常1 (最高)復(fù)位2數(shù)據(jù)中止3FIQ4IRQ5預(yù)取中止6(最低)未定義指令、SWIApN29.20J3Neusoft Institute ol Information異常的返回如果在進入終端時使用了??臻g來存儲普通寄 存器數(shù)據(jù),則返回時需要重新加載這些數(shù)據(jù)。如,進入IRQ異常處理程序時保存返回地址及 寄存器R0R12:SUBR14,R14, #4STMFDSP!, R0-R12, R14則,返回時可使用指令:LDMFDSP!, R0-R12, PC以上指令從SP所
10、指堆棧空間中恢復(fù)R0R12寄存器數(shù)據(jù),并將返回地址(原R14數(shù)據(jù))賦予PC實現(xiàn) 返回,同時從SPSR.irq恢復(fù)狀態(tài)數(shù)據(jù)到CPSR寄存器。Apm 29.20)3Neusoft institute of Information6.2 ARM處理器異常向量表及加載程序設(shè)計 6.2.1異常向量表 1、分支指令構(gòu)成的異常向量表Bstart bootBundefined hand1erBSWI_handlerBprefetch handlerBabort handlerNOPBIRQ handlerBFIQ handler329.2093Neusoft Institute of Information
11、2、加載PC寄存器指令構(gòu)成的異常向量表(方式1)LDRPC, startbootLDRPC,LDRPC,LDRPC,undefined handlerSWI handlerprefetchabort handlerLDRLDRPC,二 IRQ handlerPC,= FIQ handlerLDRPC,=XOP329.2093Neusoft Institute of Information6.2.2在復(fù)位時使用匯編語言裝載向量表MOVADRLDMIA(8 words)STM IALDMIAaddressesSTMIAr& #0r9, Vector Init Blockr9!, r0-r7
12、 ;(opy the vectorsr8!, r0-r7r9!, r0-r7 ;Copy the 1)(1) edr8!, r0-r7Apm 29.20)3Neusoft Institute of Information方式1調(diào)用方法 void IRQhandler(void) IRQ異常處理程序void IRQInstall(void)unsigned *irqvec = (unsigned *)0x18;Install_Handler (unsigned) IRQ handler, irqvec); 一Apm 29.20)3Neusoft Institute of Information6.2.3使用C語言裝載向量表方式2unsigned InstallHandler (unsigned location, unsigned *vector) unsigned vec, oldvec;vec = (unsigned)location -(unsigned)vector - 0x8) | 0xe59ff00
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國埋地管道重防腐靜電噴涂設(shè)備數(shù)據(jù)監(jiān)測研究報告
- 統(tǒng)編版二年級語文下冊第八單元達標(biāo)測試卷(含答案)
- 上海市曹楊二中2024-2025學(xué)年高二上學(xué)期期末考試化學(xué)試卷(含答案)
- 遼寧省鞍山市高新區(qū)2024-2025學(xué)年九年級下學(xué)期開學(xué)考試化學(xué)試題(含答案)
- 技校汽車底盤試題及答案
- 3 2025年耳鼻喉科相關(guān)疾病試題
- 色彩生命測試題及答案
- 遺產(chǎn)繼承分配方案合同
- 高等教育自學(xué)考試《00065國民經(jīng)濟統(tǒng)計概論》模擬試卷一
- 2025年度主管護師考試專項復(fù)習(xí)試題庫70題及答案(四)
- 部隊花樣主食培訓(xùn)課件
- 駕駛員安全培訓(xùn)(客運)-駕駛員職業(yè)道德
- 二《市場調(diào)查》(課件)-【中職專用】高二語文同步課件(高教版2023·職業(yè)模塊)
- 安全總監(jiān)安全教育培訓(xùn)課件
- 主動脈球囊反搏術(shù)患者的護理查房
- 說課的技巧和方法專題講座
- 新概念英語1一課一練全冊1-144課
- 教師專業(yè)發(fā)展與教育教學(xué)質(zhì)量提升的關(guān)系研究
- SolidWorks 2020 建模與仿真 課件全套 第1-6章 SolidWorks 2020 入門-動畫與仿真
- 微生物技術(shù)發(fā)展史(食品微生物課件)
- 養(yǎng)老護理技術(shù)操作規(guī)范及評分標(biāo)準(zhǔn)
評論
0/150
提交評論