ARM9_S3C2440學習(一)ARM體系的7種工作模式

來源:互聯網
上載者:User

ARM體系的7種工作模式

 

一、ARM體系的CPU有以下7種工作模式:

1、使用者模式(usr):正常的程式執行狀態

2、快速中斷模式(fiq):

3、中斷模式(irq):

4、管理員模式(svc):作業系統使用的保護模式

5、系統模式(sys):運行具有特權的作業系統任務

6、資料訪問終止模式(abt):資料或指令預取終止時進入該模式

7、未定義指令終止模式(und):未定義的指令執行時進入該模式

註解:

可以通過軟體來進行模式切換,或者發生各類中斷、異常時CPU自動進入相應的模式;

除使用者模式外,其餘6種工作模式都屬於特權模式;

特權模式中除了系統模式以外的其餘5種模式稱為異常模式;

大多數程式運行於使用者模式;

進入特權模式是為了處理中斷、異常、或者訪問被保護的系統資源;

二、ARM體系的CPU有兩種工作狀態

1、ARM

2、THumb

CPU上電處於ARM狀態

三、寄存器

ARM有31個通用的32位寄存器,6個程式狀態寄存器,共分為7組,有些寄存器是所有工作模式共用的,還有一些寄存器專屬於每一種工作模式;

R13——棧指標寄存器,用於儲存堆棧指標;

R14——程式串連寄存器,當執行BL子程式調用指令時,R14中得到R15的備份,而當發生中斷或異常時,R14儲存R15的傳回值;

R15——程式計數器;

快速中斷模式有7個備份寄存器R8—R14,這使得進入快速中斷模式執行很大部分程式時,甚至不需要儲存任何寄存器;

其它特權模式都含有兩個獨立的寄存器副本R13、R14,這樣可以令每個模式都擁有自己的堆棧指標和串連寄存器;

四、當前程式狀態寄存器(CPSR)

CPSR中各位意義如下:

T位:1——CPU處於Thumb狀態,  
0——CPU處於ARM狀態;

I、F(中斷禁止位): 1——禁止中斷,   0——中斷使能;

工作模式位:可以改變這些位,進行模式切換;

五、程式狀態儲存寄存器(SPSR)

當切換進入某一個特權模式時,SPSR儲存前一個工作模式的CPSR值,這樣,當返回前一個工作模式時,可以將SPSR的值恢複到CPSR中;

六、模式切換

當異常發生,CPU進入相應的異常模式時,以下工作是由CPU自動完成的:

1、在異常模式的R14中儲存前一工作模式的下一條即將執行的指令地址;

2、將CPSR的值複製到異常模式的SPSR中;

3、將CPSR的工作模式設為該異常模式對應的工作模式;

4、令PC值等於這個異常模式在異常向量表中的地址,即跳轉去執行異常向量表中的相應指令;

從異常工作模式退回到之前的工作模式時,需要由軟體來完成以下工作:

1、將異常模式的R14減去一個適當的值(4或8)後賦給PC寄存器;

2、將異常模式SPSR的值賦給CPSR;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.