<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > ARM中斷處理流程

ARM中斷處理流程

——
作者: 時(shí)間:2007-04-19 來(lái)源: 收藏

1.寄存器R16用作CPSR(Current Program Status Register,當前程序狀態(tài)寄存器),CPSR可在任何運行模式下被訪(fǎng)問(wèn),它包括條件標志位、中斷禁止位、當前處理器模式標志位,以及其他一些相關(guān)的控制和狀態(tài)位。

每一種運行模式下又都有一個(gè)專(zhuān)用的物理狀態(tài)寄存器,稱(chēng)為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器),當異常發(fā)生時(shí),SPSR用于保存CPSR的當前值,從異常退出時(shí)則可由SPSR來(lái)恢復CPSR。

由于用戶(hù)模式和系統模式不屬于異常模式,他們沒(méi)有SPSR,當在這兩種模式下訪(fǎng)問(wèn)SPSR,結果是未知的

   當中斷產(chǎn)生的時(shí)候,把CPSR保存在SPSR是自動(dòng)完成的。

 

對異常的響應

當一個(gè)異常出現以后,微處理器會(huì )執行以下幾步操作: (這些是中斷發(fā)生時(shí),自動(dòng)處理的

1、將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開(kāi)始執行。若異常是從狀態(tài)進(jìn)入,LR寄存器中保存的是下一條指令的地址(當前PC+4或PC+8,與異常的類(lèi)型有關(guān));若異常是從Thumb狀態(tài)進(jìn)入,則在LR寄存器中保存當前PC的偏移量,這樣,異常處理程序就不需要確定異常是從何種狀態(tài)進(jìn)入的。例如:在軟件中斷異常SWI,指令MOV PC,R14_svc總是返回到下一條指令,不管SWI是在狀態(tài)執行,還是在Thumb狀態(tài)執行。

2、將CPSR復制到相應的SPSR中。

3、根據異常類(lèi)型,強制設置CPSR的運行模式位。

4、強制PC從相關(guān)的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。

還可以設置中斷禁止位,以禁止中斷發(fā)生。

如果異常發(fā)生時(shí),處理器處于Thumb狀態(tài),則當異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM狀態(tài)

 

從異常返回

異常處理完畢之后,ARM微處理器會(huì )執行以下幾步操作從異常返回:

1、將連接寄存器LR的值減去相應的偏移量后送到PC中。

2、將SPSR復制回CPSR中。

3、若在進(jìn)入異常處理時(shí)設置了中斷禁止位,要在此清除。

可以認為應用程序總是從復位異常處理程序開(kāi)始執行的,因此復位異常處理程序不需要返回。




關(guān)鍵詞: ARM 中斷處理

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>