ARM處理器工作模式介紹

2021-09-02 11:38:57 字數 1563 閱讀 8597

從今天開始學習arm異常中斷處理相關的知識點;首先學習arm的工作模式。

arm處理器共有7種執行模式,如下表所示。

arm處理器的7種執行模式

處理器模式描述

使用者模式(user)

正常程式執行模式

快速中斷模式(fiq)

用於高速資料傳輸和通道處理

外部中斷模式(irq)

用於通常的中斷處理

特權模式(supervisor)

供作業系統使用的一種保護模式

資料訪問中止模式(abort)

用於虛擬儲存及儲存保護

未定義指令中止模式(undefined)

用於支援通過軟體**硬體的協處理器

系統模式(system)

用於執行特權級的作業系統任務

除了使用者模式之外的其它6種處理器模式稱為特權模式。在這些模式下,程式可以訪問所有的系統資源,也可以任意地進行處理器模式的切換。其中,除系統模式外,其他5種特權模式又稱為異常模式。

處理器模式可以通過軟體控制進行切換,也可以通過外部中斷或異常處理過程進行切換。大多數的使用者程式執行在使用者模式下。這時,應用程式不能夠訪問一些受作業系統保護的系統資源。應用程式也不能直接進行處理器模式的切換。當需要進行處理器模式切換時,應用程式可以產生異常處理,在異常處理過程中進行處理器模式的切換。這種體系結構可以使整個作業系統控制整個系統的資源。

當應用程式發生異常中斷時,處理器進入相應的異常模式。在每一種異常模式中都有一組暫存器,供相應的異常處理程式使用,這樣可以保證在進入異常模式時,使用者模式下的暫存器不被破壞。

系統模式並不是通過異常過程進入的,它和使用者模式具有完全一樣的暫存器。但是系統模式屬於特權模式,可以訪問所用的系統資源,也可以直接進行處理器模式切換。它主要供作業系統任務使用。通常作業系統的任務需要訪問所有的系統資源,同時該任務仍然使用使用者模式的暫存器組,而不是使用異常模式下相應的暫存器組,這樣就可以保證當異常中斷發生時任務的狀態不被破壞。

怎麼讓cpu工作於某種模式,可以通過設定cpu的cpsr暫存器。cpsr暫存器格式如下:

各個位的功能介紹如下:

m0~m4:被稱為模式位;可以通過這5位來設定cpu的工作模式;

t(bit5):用來表示操作狀態;如果是1表示工作在thumb狀態,如果有0表示工作在arm狀態;

f(bit6):如果設定為1,則表示禁止fiq中斷;

i(bit7):如果設定為1,則表示禁止irq中斷;

v(bit28):對於加減運算指令,當運算元和運算結果為二進位制的補碼表示的帶符號數時,v=1表示符號位溢位;

c(bit29):在加法指令中,當結果產生了進製,則c=1,表示無符號數運算發生上溢位;其他情況c=0;在減法指令中,當運算發生借位,則c=0;表示無符號數運算發生下溢位;其他情況c=1;

z(bit30):當z=1時表示運算結果為零;z=0時表示運算結果不為零;

n(bit31):當n=1時表示運算的結果為負數;當n=0時表示結果為正數或零。

本文完畢!

ARM處理器工作模式

arm處理器共有 7種工作模式,如表 3 1所示 表 3 1 arm 處理器工作模式 處理器工作模式 特權模式 異常模式 說明 使用者 user 模式 使用者程式執行模式 系統 system 模式 該組模式下可以任意訪問系統資源 執行特權級的作業系統任務 一般中斷 irq 模式 通常由系統異常狀態切...

ARM處理器工作模式

arm有7種處理器模式,其由cpsr的 4 0 位決定。使用者模usr 正常程式動行的工作模式。只能讀cpsr不能寫 系統模式sys 與使用者模式共用一套暫存器。用於支援作業系統的特權任務模式,但它具有直接切換到其它模式的特權。管理模式svc 作業系統的特權任務模式。系統復位和軟體中斷時才進入這個模...

arm處理器工作模式

arm有8個基本工作模式 1.user 使用者模式 非特權模式,大部分任務執行在這種模式,執行在作業系統的使用者態,沒有許可權去操作其他硬體資源,只能執行處理使用者自己的資料,也不能切換到其他模式,要訪問硬體資源或切換到其他模式,只能通過軟中斷或者產生異常。2.fiq 快速中斷 當乙個高優先順序 f...