arm工作模式

一、Arm工作模式:

Arm微處理器支持7種工作模式,分別爲:

1.用戶模式(Usr)用於正常執行程序

2.快速中斷模式(FIQ)用於高速數據傳輸

3.外部中斷模式(IRQ)用於通常的中斷處理

4.管理模式(SVC)操作系統使用的保護模式(高權限),復位和軟件中斷進入

5.數據訪問終止模式(abt)當數據或指令預取終止時進入該模式,可用於虛擬內存及存儲保護

6.系統模式(sys)運行均有特權的操作系統任務

7.未定義指令終止模式(und)用於支持硬件協處理器的軟件仿真(浮點、微量運算)

其中除了用戶模式以外,其餘所有6種模式稱之爲非用戶模式(特權模式,權限比用戶模式高),

其中特權模式中除去系統模式外的5種模式稱之爲異常模式(在用戶模式和系統模式看來這些都屬於異常),常用於處理中斷或異常,以及需要訪問受保護的系統資源等情況。

異常模式優先級如下:

1(最高)SVC復位

2數據中止

3 FIQ(快速中斷請求)

4 IRQ(外部中斷請求)

5 abt預取指令中止

6(最低)und未定義指令,SWI

從編程的角度看,arm微處理器的工作狀態有兩種,並可在兩種狀態之間切換:

(1)arm狀態,此時處理器執行32位的字對齊的arm指令

(2)thumb狀態,此時處理器執行16位的,半字對齊的thumb指令

(爲了兼容老芯片)在程序運行的過程中,可以在兩種狀態之間進行相應的轉換。

處理器工作狀態的轉變並不影響處理器的工作模式和相應寄存器中的內容。

二、存儲器格式(字對齊):

Arm體系結構將存儲器看做是從零地址開始的字節的線性組合。

從0~3字節放置第一個存儲的字(32位)數據,

從4~7字節放置第二個存儲的字數據,一次排列。作爲32位的微處理器,arm體系結構所支持的最大尋址空間爲4GB。

存儲器格式:

Arm體系結構可以用兩種方法存儲字數據,稱之爲大端格式和小端格式(如上上章所講)。

大端格式:字數據的高字節存儲在低地址中,而字數據的低地址存放在高地址中。比較直觀

小端格式:與大段格式相反。易計算機存儲

如:int ox12345678

大端:12 34 56 78

小羰:78 56 34 12

三、指令長度:

Arm微處理器的指令長度是32位的,也可以爲16位(thumb狀態下)。Arm微處理器中支持字節(8位),半字(16位),字(32位)三種數據類型,其中,字需要4字節對齊,半字需要2字節對齊。

注:所謂的指令長度是一條完整的指令的長度,而不是單純的mov這3個字母長度

四、Arm的工作模式切換

有兩種方法:

被動切換:在arm運行的時候產生一些異常或者中斷來進行模式切換

主動切換:通過軟件改變,即軟件設置寄存器來經行arm的模式切換,因爲arm的工作模式都是可以通過相應寄存器的賦值來切換的。

注:當處理器運行在用戶模式下,某些被保護的系統資源是不能被訪問的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章