二 ARM工作模式

來源:互聯網
上載者:User

 

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

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

(2)       thumb狀態,此時處理器執行16位的,半字對齊的thumb指令(為了相容老晶片)

在程式啟動並執行過程中,可以在兩種狀態之間進行相應的轉換。處理器工作狀態的轉變並不影響處理器的工作模式和相應寄存器中的內容。

 

 

儲存空間格式(字對齊):

Arm體繫結構將儲存空間看做是從零地址開始的位元組的線性組合。從零位元組到三位元組放置第一個儲存的字(32位)資料,從第四個位元組到第七個位元組放置第二個儲存的字資料,一次排列。作為32位的微處理器,arm體繫結構所支援的最大定址空間為4GB。

 

儲存空間格式:

Arm體繫結構可以用兩種方法儲存字資料,稱之為大端格式和小端格式。

大端格式:字資料的高位元組儲存在低地址中,而字資料的低地址存放在高地址中。

小端格式:與大段格式相反。

 

 

指令長度:

Arm微處理器的指令長度是32位的,也可以為16位(thumb狀態下)。Arm微處理器中支援位元組(8位),半字(16位),字(32位)三種資料類型,其中,字需要4位元組對齊,半字需要2位元組對齊。

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

 

 

Arm工作模式:

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

1.  使用者模式(Usr)

用於正常執行程式

2.  快速中斷模式(FIQ)

用於高速資料轉送

3.  外部中斷模式(IRQ)

用於通常的中斷處理

4.  管理員模式(SVC)

作業系統使用的保護模式(高許可權)

5.  資料訪問終止模式(abt)

當資料或指令預取終止時進入該模式,可用於虛擬記憶體及儲存保護

6.  系統模式(sys)

運行均有特權的作業系統任務

7.  未定義指令終止模式(und)

當未定義的指令執行時進入該模式,可用於支援硬體

 

 

Arm的工作模式切換有兩種方法:

被動切換:在arm啟動並執行時候產生一些異常或者中斷來經行模式切換

主動切換:通過軟體改變,即軟體佈建寄存器來經行arm的模式切換,應為arm的工作模式都是可以通過相應寄存器的賦值來切換的。

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

 

工作模式的分類:

除了使用者模式以為,其餘所有6種模式稱之為非使用者模式(特權模式,許可權比使用者模式高),其中特權模式中除去系統模式外的5種模式稱之為異常模式(在使用者模式和系統模式看來這些都屬於異常),常用於處理中斷或異常,以及需要訪問受保護的系統資源等情況。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.