ARM異常的響應(yīng)及返回
發(fā)布時(shí)間:2008/12/22 0:00:00 訪問次數(shù):1246
1.對(duì)異常的響應(yīng)
當(dāng)一個(gè)異常出現(xiàn)以后,arm微處理器會(huì)執(zhí)行以下幾步操作。
。1)將下一條指令的地址存入相應(yīng)連接寄存器lr,以便程序在處理異常返回時(shí)能從正確的位置重新開始執(zhí)行。若異常是從arm狀態(tài)進(jìn)入的,則lr寄存器中保存的是下一條指令的地址(當(dāng)前pc+4或pc+8,與異常的類型有關(guān));若異常是從thumb狀態(tài)進(jìn)入的,則在lr寄存器中保存當(dāng)前pc的偏移量,這樣,異常處理程序就不需要確定異常是從何種狀態(tài)進(jìn)入的。例如:在軟件中斷異常swi產(chǎn)生時(shí),指令mov pc' r14_svc總是返回到下一條指令,不管swi是在arm狀態(tài)執(zhí)行,還是在thumb狀態(tài)執(zhí)行。
。2)將cpsr復(fù)制到相應(yīng)的spsr中。
。3)根據(jù)異常類型,強(qiáng)制設(shè)置cpsr的運(yùn)行模式位。
(4)強(qiáng)制pc從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。
還可以設(shè)置中斷禁止位,以禁止中斷發(fā)生。如果異常發(fā)生時(shí),處理器處于thumb狀態(tài),則當(dāng)異常向量地址加載入pc時(shí),處理器自動(dòng)切換到arm狀態(tài)。
arm微處理器對(duì)異常的響應(yīng)過程用偽碼可以描述為:
2,從異常返回
異常處理完畢之后,arm微處理器會(huì)執(zhí)行以下幾步操作從異常返回。
(1)將連接寄存器lr的值減去相應(yīng)的偏移量后送到pc中。
。2)將spsr復(fù)制回cpsr中。
。3)若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,則要在此清除。
可以認(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。
1.對(duì)異常的響應(yīng)
當(dāng)一個(gè)異常出現(xiàn)以后,arm微處理器會(huì)執(zhí)行以下幾步操作。
(1)將下一條指令的地址存入相應(yīng)連接寄存器lr,以便程序在處理異常返回時(shí)能從正確的位置重新開始執(zhí)行。若異常是從arm狀態(tài)進(jìn)入的,則lr寄存器中保存的是下一條指令的地址(當(dāng)前pc+4或pc+8,與異常的類型有關(guān));若異常是從thumb狀態(tài)進(jìn)入的,則在lr寄存器中保存當(dāng)前pc的偏移量,這樣,異常處理程序就不需要確定異常是從何種狀態(tài)進(jìn)入的。例如:在軟件中斷異常swi產(chǎn)生時(shí),指令mov pc' r14_svc總是返回到下一條指令,不管swi是在arm狀態(tài)執(zhí)行,還是在thumb狀態(tài)執(zhí)行。
。2)將cpsr復(fù)制到相應(yīng)的spsr中。
。3)根據(jù)異常類型,強(qiáng)制設(shè)置cpsr的運(yùn)行模式位。
。4)強(qiáng)制pc從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。
還可以設(shè)置中斷禁止位,以禁止中斷發(fā)生。如果異常發(fā)生時(shí),處理器處于thumb狀態(tài),則當(dāng)異常向量地址加載入pc時(shí),處理器自動(dòng)切換到arm狀態(tài)。
arm微處理器對(duì)異常的響應(yīng)過程用偽碼可以描述為:
2,從異常返回
異常處理完畢之后,arm微處理器會(huì)執(zhí)行以下幾步操作從異常返回。
。1)將連接寄存器lr的值減去相應(yīng)的偏移量后送到pc中。
。2)將spsr復(fù)制回cpsr中。
。3)若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,則要在此清除。
可以認(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。
熱門點(diǎn)擊
- ARM通用寄存器
- FIQ異常的描述
- Viterbi譯碼
- ARM程序狀態(tài)寄存器
- ARM時(shí)序
- ARM乘法指令
- Thumb狀態(tài)下的寄存器
- ARM異常的響應(yīng)及返回
- ARM狀態(tài)寄存器訪問指令
- 常用自動(dòng)控制系統(tǒng)設(shè)計(jì)的案例要求和應(yīng)用對(duì)象
推薦技術(shù)資料
- DFRobot—玩的就是
- 如果說新車間的特點(diǎn)是“靈動(dòng)”,F(xiàn)QPF12N60C那么... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究