ARM處理器模式介紹和模式切換

2021-06-26 01:12:54 字數 1568 閱讀 7375

arm體系結構支援7種處理器模式:

使用者模式:正常程式工作模式,不能直接切換到其它模式。

快中斷模式:支援高速資料傳輸及通道處理。fir異常響應時,進入此模式

中斷模式:通用中斷處理。irq異常響應時,進入此模式。

管理模式:作業系統保護**,系統復位和軟體中斷時,進入此模式。

中止模式:支援虛擬記憶體,儲存器保護。

未定義模式:支援硬體協處理器和軟體**。未定義指令異常響應時,進入此模式。

系統模式:用於支援os的特權任務。與使用者模式類似,但可以直接切換到其它模式。

除 使用者模式外,其它都為特權模式。某些arm內部暫存器和一些片內外設在硬體設計上只允許特權模式下訪問。特權模式可以自由切換處理器模式。但

使用者模式不能直接切換到別的模式。

arm7tdmi核心包含1個cpsr和5個供異常處理程式使用的spsr.

arm7tdmi核心所有處理器狀態都儲存在cpsr中。

cpsr包含:

4個條件**標誌。

2個中斷禁止位。

5個隊當預處理器模式進行編碼的位。

1個用於只是當前執行指令(arm還是thumb)的位。

每個異常模式(快中斷模式,中斷模式,管理模式,中止模式,未定義模式)還帶有乙個

程式狀態儲存暫存器 spsr。用於儲存任務在異常發生之前的cpsr.

4個條件**標誌:

n:運算結果的b31值。

z:指令結果為0時,z=1(通常表示比較結果相等) . 否則z=0.

c: 使用加法運算時,b31位產生進製,c=1.否則c=0. 使用減法運算時,b31借位時,c=0,否則c=1。

v: 加減運算時,有符號溢位,v=1,否則v=0。

2個中斷禁止位:

i: 置位,irq 中斷被禁止。

f:置位,fiq中斷被禁止。

1個用於只是當前執行指令(arm還是thumb)的位:

置位:表示處理器在thumb.

清零:處理器在arm。

5個隊當預處理器模式進行編碼的位:

10000:使用者。

10001:快中斷。

10010:中斷

10011:管理

10111:中止

11011:未定義

11111:系統。

注意,在不同模式下,可見的暫存器不同。

使用mrs指令可以讀取狀態暫存器指令。

mrs r1, cpsr

mrs r2,spsr

使用msr指令,可以寫狀態暫存器。

例1:使能irq中斷:

mrs r0, cpsr //把cpsr內容放到ro中

bic r0, r0, #0x80 //將i 位清除。irq enable

msr cpsr_c ,r0

mov pc, lr

注意:axd中的processor registers項中,cpsr,spsr顯示模式如下:

nzcvqift_svc

nzcv:分別表示4個標誌位。小寫字母表示0 , 大寫字母表示1

ift分別表示irq,fiq,和執行指令標誌位。

svc表示工作模式為:管理模式。

ARM處理器模式切換

參考 arm體系的cpu有以下7種工作模式 1 使用者模式 usr 正常的程式執行狀態 2 快速中斷模式 fiq 3 中斷模式 irq 4 管理模式 svc 作業系統使用的保護模式 5 系統模式 sys 執行具有特權的作業系統任務 6 資料訪問終止模式 abt 資料或指令預取終止時進入該模式 7 未...

ARM處理器工作模式介紹

從今天開始學習arm異常中斷處理相關的知識點 首先學習arm的工作模式。arm處理器共有7種執行模式,如下表所示。arm處理器的7種執行模式 處理器模式描述 使用者模式 user 正常程式執行模式 快速中斷模式 fiq 用於高速資料傳輸和通道處理 外部中斷模式 irq 用於通常的中斷處理 特權模式 ...

ARM處理器模式

cpsr暫存器 arm v4的cpsr暫存器 和儲存它的spsr暫存器 中的位分配如下圖所示。處理器模式決定了哪些暫存器是活動的以及對cpsr訪問權。處理器模式要麼是特權模式,要麼是非特權模式。特權模式允許對cpsr的完全讀 寫訪問 與些相反,非特權模式只允許對cpsr的控制域進行讀訪問,但允許對條...