新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM中斷異常及其處理器模式

ARM中斷異常及其處理器模式

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
ARM 處理器核有七種異常中斷:

1.復(fù)位(包括上電)

本文引用地址:http://m.butianyuan.cn/article/201611/316918.htm

2.FIQ(快速中斷)

3.IRQ(一般中斷)

4.SWI(軟件中斷)

5.預(yù)取址中止

6.數(shù)據(jù)中止

7.未定義指令異常

ARM核發(fā)生以上異常時(shí),便會(huì)進(jìn)入相應(yīng)的處理器模式進(jìn)行相應(yīng)的異常處理。

其中ARM的處理器模式有以下7種:

1.管理模式(SVC):Supervisor也是處理器上電默認(rèn)的運(yùn)行模式,可由復(fù)位(包括上電)和SWI(軟件中斷)觸發(fā)進(jìn)入

2.快速中斷模式(FIQ):由快速中斷異常異常觸發(fā)進(jìn)入進(jìn)行相應(yīng)的中斷處理子程序

3.一般中斷模式(IRQ):由一般中斷異常觸發(fā)進(jìn)入進(jìn)行相應(yīng)的中斷處理

4.中止模式(abort):由預(yù)取址中止異常和數(shù)據(jù)中止異常觸發(fā)進(jìn)入的

5.未定義模式:由未定義指令異常觸發(fā)進(jìn)入

6.用戶(hù)模式(user):用戶(hù)軟件修改CPSR進(jìn)入

7.系統(tǒng)模式(system):用戶(hù)軟件修改CPSR進(jìn)入

由此可見(jiàn),處理器模式是相應(yīng)的處理器異常的處理模式,但是用戶(hù)模式和系統(tǒng)模式并不能由異常觸發(fā)進(jìn)入,而必須是由軟件修改CPSR的值進(jìn)入的。此外系統(tǒng)模式和用戶(hù)模式共用15個(gè)寄存器和CPSR??偨Y(jié)處理器異常和處理器模式的關(guān)系為:7 TO 5。

當(dāng)一個(gè)異常觸發(fā)觸發(fā)模式的改變時(shí),CPU內(nèi)核自動(dòng)(硬件)做如下動(dòng)作:

1.把CPSR保存到相應(yīng)的異常模式下的SPSR(除了系統(tǒng)模式和用戶(hù)模式?jīng)]有自己的SPSR)

2.把PC保存到相應(yīng)的異常模式下的LR(各個(gè)模式都有自己的LR寄存器,系統(tǒng)模式和用戶(hù)模式共用)

3.設(shè)置CPSR為相應(yīng)的異常模式。

4.設(shè)置PC為相應(yīng)的異常處理程序的入口地址。

值得注意的是所有的處理器模式都可以通過(guò)修改CPSR來(lái)進(jìn)入(即使沒(méi)有發(fā)生處理器異常),但是僅僅是進(jìn)入模式而已,并沒(méi)有發(fā)生上面的三個(gè)步驟即:把CPSR保存到SPSR中,把PC保存到LR中,設(shè)置PC為相應(yīng)的異常處理向量,這些都沒(méi)有發(fā)生,而僅僅是處于該模式而已。這可以用來(lái)在系統(tǒng)初始化時(shí)給各個(gè)模式的堆棧指針(R13)進(jìn)行初始化.



關(guān)鍵詞: ARM中斷異常處理器模

評(píng)論


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

關(guān)閉