新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM中斷異常及其處理器模式

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

        作者: 時間:2016-11-11 來源:網絡 收藏
        ARM 處理器核有七種異常中斷:

        1.復位(包括上電)

        本文引用地址:http://www.104case.com/article/201611/316918.htm

        2.FIQ(快速中斷)

        3.IRQ(一般中斷)

        4.SWI(軟件中斷)

        5.預取址中止

        6.數據中止

        7.未定義指令異常

        ARM核發生以上異常時,便會進入相應的處理器模式進行相應的異常處理。

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

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

        2.快速中斷模式(FIQ):由快速中斷異常異常觸發進入進行相應的中斷處理子程序

        3.一般中斷模式(IRQ):由一般中斷異常觸發進入進行相應的中斷處理

        4.中止模式(abort):由預取址中止異常和數據中止異常觸發進入的

        5.未定義模式:由未定義指令異常觸發進入

        6.用戶模式(user):用戶軟件修改CPSR進入

        7.系統模式(system):用戶軟件修改CPSR進入

        由此可見,處理器模式是相應的處理器異常的處理模式,但是用戶模式和系統模式并不能由異常觸發進入,而必須是由軟件修改CPSR的值進入的。此外系統模式和用戶模式共用15個寄存器和CPSR??偨Y處理器異常和處理器模式的關系為:7 TO 5。

        當一個異常觸發觸發模式的改變時,CPU內核自動(硬件)做如下動作:

        1.把CPSR保存到相應的異常模式下的SPSR(除了系統模式和用戶模式沒有自己的SPSR)

        2.把PC保存到相應的異常模式下的LR(各個模式都有自己的LR寄存器,系統模式和用戶模式共用)

        3.設置CPSR為相應的異常模式。

        4.設置PC為相應的異常處理程序的入口地址。

        值得注意的是所有的處理器模式都可以通過修改CPSR來進入(即使沒有發生處理器異常),但是僅僅是進入模式而已,并沒有發生上面的三個步驟即:把CPSR保存到SPSR中,把PC保存到LR中,設置PC為相應的異常處理向量,這些都沒有發生,而僅僅是處于該模式而已。這可以用來在系統初始化時給各個模式的堆棧指針(R13)進行初始化.



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 岳普湖县| 高台县| 广德县| 稻城县| 黄冈市| 三门县| 桃源县| 泸水县| 桐城市| 义乌市| 内黄县| 南靖县| 武夷山市| 淅川县| 武城县| 湖州市| 读书| 昌宁县| 新郑市| 安达市| 广河县| 秭归县| 手游| 西和县| 长宁县| 牙克石市| 陇西县| 宁城县| 水城县| 阜城县| 樟树市| 平舆县| 达州市| 顺义区| 灵石县| 土默特左旗| 洛隆县| 德钦县| 五指山市| 大英县| 同仁县|