自己學驅動17 ARM工作模式和ARM9暫存器

2021-06-28 20:18:32 字數 1758 閱讀 2243

1.arm體系cpu的7種工作模式

(1)使用者模式(usr):arm處理器正常的程式執行狀態。

(2)快速中斷模式(fiq):用於高速資料傳輸或通道處理。

(3)中斷模式(irq):用於通用的中斷處理。

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

(5)資料訪問終止模式(abt):當資料或指令預取終止時進入該模式,可用於虛擬儲存及儲存保護。

(6)系統模式(sys):執行具有特權的作業系統任務。

(7)未定義指令中止模式(und):當未定義的指令執行時進入該模式,可用於支援硬體協處理器的軟體**。

可以通過軟體進行模式的切換,或者發生各類中斷、異常時cpu自動進入相應的模式。除使用者模式以外的6種工作模式都屬於特權模式,大多數程式執行於使用者模式,進入特權模式是為了處理中斷、異常,或者訪問被保護的系統資源。

2.arm920t的暫存器

arm920t有31個通用的32位暫存器和6個程式狀態暫存器,這37個暫存器分為7組,進入某個工作模式時就使用它的那組暫存器。有些暫存器,不同的工作模式下有自己的副本,當切換到另乙個工作模式時,那個工作模式的暫存器副本將被使用:這些暫存器被稱為備份暫存器。從下圖中可以看出fiq模式的備份暫存器最多,這是為了提高fiq的響應速度,減少儲存暫存器值所花費的時間。

cpsr在七種模式下都是同乙個暫存器,所以可以修改裡面的值來轉換到不同的工作模式下。r0~r15可以直接訪問,除r15外均為通用暫存器,既可以用於儲存資料也可以用於儲存位址。r13~r15稍有特殊:r13又被稱為棧指標暫存器sp,通常用於儲存棧指標;r14又被稱為程式連線暫存器,當執行bl子程式呼叫指令時,r14中得到r15(程式計數器pc)的備份,而當發生中斷或異常時,對應的r14_svc、r14_irq、r14_fiq、r14_abt或r14_und儲存r15的返回值;r15又被稱為程式計數器pc。

3.cpsr暫存器

cpsr中主要包括以下幾種狀態位:

(1)t位:置位時,cpu處於thumb狀態;否則處於arm狀態。

(2)中斷禁止位:i位和f位屬於中斷禁止位。它們被置位時,irq中斷、fiq中斷分別被禁止。

(3)工作模式位:表明cpu當前處於什麼工作模式,可以更改這些位,使cpu進入指定的工作模式。

4.spsr暫存器

spsr暫存器,即程式狀態儲存暫存器,就是在除系統和使用者模式外的5種模式下來儲存cpsr暫存器的備份暫存器。當乙個異常發生時,將切換進入相應的工作模式,這時arm920t的cpu將自動完成如下事情。

(2)將cpsr的值複製到異常模式的spsr。

(3)將cpsr的工作模式位設為這個異常對應的工作模式。

(4)將pc值等於這個異常模式在異常向量表中的位址,即跳轉去執行異常向量表中的相應指令。

相反地,從異常工作模式退出回到之前的工作模式時,需要通過軟體完成如下事情。

(1)前面進入異常工作模式時,連線暫存器中儲存了前乙個工作模式的乙個指令位址,將它減去乙個適當的值後賦給pc暫存器。

(2)將spsr的值複製回cpsr。

從表中可以看出,進入和退出異常時pc的計算方法會根據不同的模式進行不同的計算,主要分為3類(在**中的(1)(2)(3)表示該模式屬於的分類):

ARM工作模式和彙編

各種模式的切換,可以是程式設計師通過 主動切換 通過寫cpsr暫存器 也可以是cpu在某些情況下自動切換。各種模式下許可權和可以訪問的暫存器不同 作業系統有安全級別要求,因此cpu設計多種模式是為了方便作業系統的多種角色安全等級需要。arm是io與記憶體統一編址的,正常工作之外的流程都叫異常,異常會...

ARM體系工作模式和工作狀態

一 arm體系cpu有以下7種工作模式 1 使用者模式 usr 正常的程式執行模式。不能直接切換到其他模式 2 系統模式 sys 執行作業系統的特權任務。與使用者模式類似,但具有直接切換到其他模式等特權 3 快速中斷模式 fiq 支援高速資料傳輸以及通道處理。fiq異常響應時進入此模式 4 中斷模式...

ARM程式設計模式和7鐘工作模式

1.1.arm 採用的是32位架構 1.2.arm約定 a.byte 8 bits b.halfword 16 bits 2 byte c.word 32 bits 4 byte 1.3.大部分arm core 提供 a.arm 指令集 32 bit b.thumb 指令集 16 bit c.thu...