




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
互動教學(xué)
——ARM內(nèi)核的異常處理1.ARM內(nèi)核中異常的含義是什么?異常是指程序執(zhí)行過程中出現(xiàn)的意外事件2.ARM內(nèi)核有幾種異常,分別是什么,它們在什么條件下發(fā)生?
異常類型向量地址優(yōu)先級異常中斷含義復(fù)位(Reset)0x000000001當(dāng)處理器的復(fù)位引腳有效時,系統(tǒng)產(chǎn)生復(fù)位異常中斷,程序跳轉(zhuǎn)到復(fù)位異常中斷處理程序處執(zhí)行。復(fù)位異常中斷通常用在下面幾種情況下:系統(tǒng)加電時系統(tǒng)復(fù)位時跳轉(zhuǎn)到復(fù)位中斷向量處執(zhí)行,稱為軟復(fù)位未定義的指令undefinedinstruction0x000000046當(dāng)ARM處理器或者是系統(tǒng)中的協(xié)處理器認(rèn)為當(dāng)前指令未定義時,產(chǎn)生未定義的指令(undefinedinstruction)異常中斷??梢酝ㄟ^該異常中斷機制仿真浮點向量運算軟件中斷(SWI)0x000000086這是一個由用戶定義的中斷指令??捎糜谟脩裟J较碌某绦蛘{(diào)用特權(quán)操作異常類型向量地址優(yōu)先級異常中斷含義指令預(yù)取中止PrefechAbort0x0000000C5如果處理器預(yù)取的指令的地址不存在,或者該地址不允許當(dāng)前指令訪問,當(dāng)該被預(yù)取的指令執(zhí)行時,處理器產(chǎn)生指令預(yù)取中止(PrefechAbort)異常中斷數(shù)據(jù)訪問中止DataAbort0x000000102如果數(shù)據(jù)訪問指令的目標(biāo)地址不存在,或者該地址不允許當(dāng)前指令訪問,處理器產(chǎn)生數(shù)據(jù)訪問中止異常中斷外部中斷請求(IRQ)0x000000184當(dāng)處理器的外部中斷請求引腳有效,而且CPSR寄存器的I控制位被清除時,處理器產(chǎn)生外部中斷請求(IRQ)異常中斷。系統(tǒng)中各外設(shè)通常通過該異常中斷請求處理器服務(wù)快速中斷請求(FIQ)0x0000001C3當(dāng)處理器的外部快速中斷請求引腳有效,而且CPSR寄存器的F控制位被清除時,處理器產(chǎn)生外部中斷請求(FIQ)3.異常處理的一般流程包含哪些主要步驟?異常產(chǎn)生異常向量表異常處理程序(ARM)〔可選〕異常處理程序(Thumb)異常響應(yīng)異常返回異常響應(yīng)的過程〔復(fù)位異常除外〕出現(xiàn)xxx異常時,ARM內(nèi)核盡可能執(zhí)行完當(dāng)前正在執(zhí)行的指令,然后依次自動實現(xiàn)以下響應(yīng)過程將當(dāng)前CPSR的內(nèi)容拷貝到SPSR_xxx將響應(yīng)異常時的PC-4保存到LR_xxx,假設(shè)出現(xiàn)異常時處理器為Thumb狀態(tài),那么將對LR_xxx進行修正〔見后〕設(shè)置CPSR中的相應(yīng)位強制處理器進入ARM工作狀態(tài)設(shè)置CPSR的M[4:0],使處理器進入相應(yīng)的工作模式設(shè)置中斷禁止位I=1,禁止IRQ中斷假設(shè)是復(fù)位或FIQ異常,還將設(shè)置中斷禁止位F=1,禁止FIQ中斷將異常向量地址強制賦給PC,跳轉(zhuǎn)執(zhí)行異常處理程序4.不同類型異常發(fā)生時,內(nèi)核如何響應(yīng),分別跳轉(zhuǎn)到什么地址執(zhí)行程序?
內(nèi)核響應(yīng)過程:當(dāng)異常發(fā)生時,處理器會把PC設(shè)置為一個特定的存儲器地址,這一地址放在被稱為向量表的特定地址范圍內(nèi)。向量表的入口是一些跳轉(zhuǎn)指令,跳轉(zhuǎn)到專門處理某個異?;蛑袛嗟淖映绦颉.惓5刂酚猛緩?fù)位-復(fù)位沒有定義LR數(shù)據(jù)中止LR-8指向?qū)е聰?shù)據(jù)中止異常的指令FIQLR-4指向發(fā)生異常時正在執(zhí)行的指令I(lǐng)RQLR-4指向發(fā)生異常時正在執(zhí)行的指令預(yù)取指令中止LR-4指向?qū)е骂A(yù)取指令異常的那條指令SWILR執(zhí)行SWI指令的下一條指令未定義指令LR指向未定義指令的下一條指令異常和返回地址5.什么是異常向量表,表中一般存放何種指令?為什么?為什么把FIQ中斷異常入口地址放在異常向量表的頂端?異常向量表一般從0地址開始某些內(nèi)核〔如ARM9/10,ARM720T〕異常向量表可以設(shè)置為從其它非0地址〔如0xFFFF0000〕開始每個異常向量占4個字節(jié),通常用于存放轉(zhuǎn)移指令,以實現(xiàn)從異常向量地址到異常處理程序地址的跳轉(zhuǎn)FIQ中斷向量被安排在向量表的頂端,便于對FIQ中斷的快速響應(yīng)〔不需跳轉(zhuǎn)〕異常向量表FIQIRQ(Reserved)DataAbortPrefetchAbortSoftwareInterruptUndefinedInstructionReset0x1C0x180x140x100x0C0x080x040x006.在Thumb工作狀態(tài)下響應(yīng)異常,系統(tǒng)將進入何種工作狀態(tài)?異常處理過程中能否進入Thumb狀態(tài)?
處理器響應(yīng)異常時自動進入ARM狀態(tài),且必須用一條ARM指令來實現(xiàn)從異常的返回,但在異常處理過程中可以切換到Thumb狀態(tài)7.異常處理為什么要保護現(xiàn)場和恢復(fù)現(xiàn)場?保護現(xiàn)場主要保護哪些內(nèi)容?保護現(xiàn)場一般采用什么方法?
為了在異常處理完畢能恢復(fù)原來的程序執(zhí)行狀態(tài),響應(yīng)異常時需保護被中斷程序的的執(zhí)行現(xiàn)場,異常處理完畢應(yīng)該恢復(fù)被中斷程序的執(zhí)行現(xiàn)場內(nèi)容:將當(dāng)前CPSR的內(nèi)容拷貝到SPSR_xxx將響應(yīng)異常時的PC-4保存到LR_xxx,假設(shè)出現(xiàn)異常時處理器為Thumb狀態(tài),那么將對LR_xxx進行修正方法:將需要保護的通用存放器內(nèi)容壓入堆棧有時還須將某些影子存放器的內(nèi)容入?!踩缰袛嗲短住?.不同類型異常的返回地址為什么不同,分別如何確定?為什么原工作狀態(tài)〔ARM或Thumb〕不同,需要采用不同的返回地址?異常返回地址確實定復(fù)位異常處理程序不需要返回除復(fù)位外的其它異常的實際返回地址與異常的類型有關(guān)SWI和未定義指令異常指令執(zhí)行導(dǎo)致異常返回地址=LR〔SWI或未定義指令的下一條指令〕FIQ、IRQ和預(yù)取指令中止異常返回地址=LR-4數(shù)據(jù)中止異常正在執(zhí)行的指令無法執(zhí)行完成返回地址=LR-8〔重新執(zhí)行未能執(zhí)行完的指令〕假設(shè)響應(yīng)異常時為Thumb狀態(tài),內(nèi)核將自動修正LR,返回地址仍按上述方法計算9.從異常返回需要執(zhí)行哪兩個根本操作?為什么這兩個操作不能用兩條指令來分別實現(xiàn)?ARM采用何種機制來實現(xiàn)用一條指令同時完成這兩個操作?根本操作:1.將當(dāng)前SPSR_xxx的內(nèi)容拷貝到CPSR2.根據(jù)異常類型和LR_xxx的返回地址恢復(fù)PC原因:假設(shè)先恢復(fù)CPSR,那么系統(tǒng)工作模式恢復(fù)為進入異常前的模式,LR_xxx將無法再訪問假設(shè)先恢復(fù)PC,那么在此之后的恢復(fù)CPSR的指令將不會被執(zhí)行ARM提供了2種特殊機制來用一條指令實現(xiàn)兩個操作〔同時恢復(fù)CPSR和PC〕當(dāng)返回地址保存在LR_xxx時,采用數(shù)據(jù)處理指令返回機制從SWI和未定義異常返回MOVSPC,LR從FIQ、IRQ和預(yù)取指異常(PrefechAbort)返回SUBSPC,LR,#4 從數(shù)據(jù)中止異常(DataAbort)返回SUBSPC,LR,#8 當(dāng)SPSR和返回地址保存在堆棧時,采用堆棧返回機制〔常用于IRQ中斷嵌套〕入棧前應(yīng)根據(jù)異常類型對返回地址進行調(diào)整使用帶“^”的出棧指令LDM,例如 LDMFDSP!,{PC}^可以與恢復(fù)現(xiàn)場的出棧操作合并,例如LDMFDSP!,{R0-R12,PC}^10.各種異常的優(yōu)先級如何排序?是否允許異常的嵌套?異常的優(yōu)先級各異常的優(yōu)先級順序復(fù)位RESET〔1,最高優(yōu)先級〕數(shù)據(jù)中止異?!?〕快速中斷請求FIQ〔3〕外部中斷請求IRQ〔4〕預(yù)取指中止異?!?〕軟中斷SWI〔6〕未定義指令〔7,最低優(yōu)先級〕各異常同時發(fā)生時,將優(yōu)先處理優(yōu)先級較高的異常SWI和未定義指令異常不可能同時發(fā)生1.進入某種異常模式后,出現(xiàn)未屏蔽的異常仍然將按其優(yōu)先級順序進行響應(yīng),即異常嵌套2.一般應(yīng)防止出現(xiàn)異常嵌套情況,假設(shè)無特殊處理,同類型異常的自嵌套或幾個異常的循環(huán)嵌套會導(dǎo)致程序死鎖一些特殊的嵌套例子:如果數(shù)據(jù)中止異常和FIQ同時發(fā)生,將先響應(yīng)前者,但由于響應(yīng)數(shù)據(jù)中止異常
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年一年級下學(xué)期數(shù)學(xué)《總復(fù)習(xí)》(教案)
- 六年級下冊數(shù)學(xué)教案-1.4 求比一個數(shù)多(少)百分之幾的數(shù)是多少 青島版
- 六年級上冊數(shù)學(xué)教案-2.2 圓的周長 ︳西師大版
- 學(xué)習(xí)2025年雷鋒精神六十二周年主題活動實施方案 (3份)-66
- 數(shù)學(xué)-云南省師范大學(xué)附屬中學(xué)2025屆高三下學(xué)期開學(xué)考試試題和答案
- 2025年度東莞市入學(xué)積分制社區(qū)教育志愿者服務(wù)協(xié)議
- 2025年度交通事故人傷私了協(xié)議(賠償期限與方式)
- 二零二五年度醫(yī)療機構(gòu)與康復(fù)醫(yī)院醫(yī)生合作合同
- 2025年度安保服務(wù)滿意度調(diào)查合同范本
- 二零二五年度白酒品牌授權(quán)區(qū)域代理及市場拓展合同
- 班會課件:逆風(fēng)飛翔破繭成蝶-從《哪吒之魔童鬧?!房辞啻浩诘某砷L與責(zé)任
- 2.1 堅持依憲治國 教案 -2024-2025學(xué)年統(tǒng)編版道德與法治八年級下冊
- 【語文試卷+答案】2024-2025學(xué)年泉州高二上期末質(zhì)檢
- 《修繕定額講解》課件
- 大學(xué)學(xué)生宿舍管理員工作培訓(xùn)
- 初三物理常識試卷單選題100道及答案
- 浙江2024公務(wù)員考試真題及答案
- 高中英語新課程標(biāo)準(zhǔn)解讀課件
- 1.2《友邦驚詫論》教學(xué)設(shè)計-【中職專用】高二語文同步講堂(高教版2024·拓展模塊上冊)
- 夢中的婚禮鋼琴簡譜(共6頁)
- 新生兒心理的發(fā)生
評論
0/150
提交評論