ARM處理器工作模式

2021-07-25 15:03:31 字數 2955 閱讀 4321

arm有7種處理器模式,其由cpsr的[4:0]位決定。

使用者模usr:正常程式動行的工作模式。只能讀cpsr不能寫

系統模式sys:與使用者模式共用一套暫存器。用於支援作業系統的特權任務模式,但它具有直接切換到其它模式的特權。

管理模式svc:作業系統的特權任務模式。系統復位和軟體中斷時才進入這個模式

中止abt:在arm7中沒多大做用.另外還有未定義und中斷(irq),快速中斷(fiq)

除使用者模式外都 是特權模式。吸有在特權模式下才允許對當前的程式狀態暫存器的反有控制位直接進行讀寫訪問。

特權模式中除系統模式外都是異常模式。異常發生時總是切換到arm狀態。

何時近入到異常模式

1 復位進入管理模式,作業系統核心通常處於此種模式

2訪問失敗則進入中止模式

3 遇到不支援的指令時,進入未定義

4中斷模式與快速中斷模式分別對arm外理器2種不同等級別的中斷響應

特權模式可以訪問所有內部資源

使用者模式與作系統模式不能由異常進入必須通過修改cpsr才能實現。

arm處理器工作模式

處理器工作模式

特權模式

異常模式

說明

使用者(user)模式

使用者程式執行模式

系統(system)模式

該組模式下可以任意訪問系統資源

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

一般中斷(irq)模式

通常由系統異常狀態切換進該組模式

普通中斷模式

快速中斷(fiq)模式

快速中斷模式 管理

(supervisor)模式

提供作業系統使用的一種保護模式,swi命令狀態

中止(abort)模式

虛擬記憶體管理和記憶體資料訪問保護

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

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

cpu的模式可以簡單的理解為當前cpu的工作狀態,比如:當前作業系統正在執行使用者程式,那麼當前cpu工作在使用者模式,這時網絡卡上有資料到達,產生中斷訊號,cpu自動切換到一般中斷模式下處理網絡卡資料(普通應用程式沒有許可權直接訪問硬體),處理完網絡卡資料,返回到使用者模式下繼續執行使用者程式。

特權模式

除使用者模式外,其它模式均為特權模式(privileged modes)。arm內部暫存器和一些片內外設在硬體設計上只允許(或者可選為只允許)特權模式下訪問。此外,特權模式可以自由的切換處理器模式,而使用者模式不能直接切換到別的模式。

異常模式

特權模式中除系統(system)模式之外的其他5種模式又統稱為異常模式。它們除了可以通過在特權下的程式切換進入外,也可以由特定的異常進入。比如硬體產生中斷訊號進入中斷異常模式,讀取沒有許可權資料進入中止異常模式,執行未定義指令時進入未定義指令中止異常模式。其中管理模式也稱為超級使用者模式,是為作業系統提供軟中斷的特有模式,正是由於有了軟中斷,使用者程式才可以通過系統呼叫切換到管理模式。

(1)使用者模式:

使用者模式是使用者程式的工作模式,它執行在作業系統的使用者態,它沒有許可權去操作其它硬體資源,只能執行處理自己的資料,也不能切換到其它模式下,要想訪問硬體資源或切換到其它模式只能通過軟中斷或產生異常。

(2)系統模式:

系統模式是特權模式,不受使用者模式的限制。使用者模式和系統模式共用一套暫存器,作業系統在該模式下可以方便的訪問使用者模式的暫存器,而且作業系統的一些特權任務可以使用這個模式訪問一些受控的資源。

(3)一般中斷模式:

一般中斷模式也叫普通中斷模式,用於處理一般的中斷請求,通常在硬體產生中斷訊號之後自動進入該模式,該模式為特權模式,可以自由訪問系統硬體資源。

(4)快速中斷模式:

快速中斷模式是相對一般中斷模式而言的,它是用來處理對時間要求比較緊急的中斷請求,主要用於高速資料傳輸及通道處理中。

(5)管理模式:

管理模式是cpu上電後預設模式,因此在該模式下主要用來做系統的初始化,軟中斷處理也在該模式下,當使用者模式下的使用者程式請求使用硬體資源時通過軟體中斷進入該模式。

(6)終止模式:

中止模式用於支援虛擬記憶體或儲存器保護,當使用者程式訪問非法位址,沒有許可權讀取的記憶體位址時,會進入該模式,linux下程式設計時經常出現的segment fault通常都是在該模式下丟擲返回的。

(7)未定義模式:

未定義模式用於支援硬體協處理器的軟體**,cpu在指令的解碼階段不能識別該指令操作時,會進入未定義模式。

arm920t支援的7種處理器操作模式:

.使用者模式(user模式),執行應用的普通模式。

.快速中斷模式(fiq模式),用於支援高速資料傳輸或通道處理。

.中斷模式(irq模式),用於普通中斷處理。

.超級使用者模式(svc模式),作業系統的保護模式

.異常中斷模式(abt模式),輸入資料後登入或預取異常中斷指令

.系統模式(sys模式),是作業系統使用的乙個有特權的使用者模式

.未定義模式(und模式),執行了未定義指令時進入該模式

處理器的模式可以通過軟體控制進行切換,也可以通過外部中斷或是異常處理過程進行切換。

7種模式中除使用者模式外其它的6種處理器模式稱為privileged modes(特權模式)。

使用者模式:大多數使用者程式執行在使用者模式,此模式下程式不能夠訪問一些受作業系統保護的系統資源,應用程式也不能直接進行處理器模式的切換。

特權模式:程式可以訪問所有的系統資源,也可以任意地進行處理器模式的切換。

6種特權模式中除系統模式外,其他5種特權模式又稱之為異常模式。

異常模式:當應用程式發生異常中斷時,處理器進入相應的異常模式。每一種異常模式都有一組暫存器,供相應的異常處理程式使用,這樣可保證進入異常模式時,使用者模式下的暫存器(儲存了程式執行狀態)不被破壞。

系統模式:系統模式不是通過異常過程進入的,它和使用者模式具有完全一樣的暫存器。但是系統模式屬於特權模式,可以訪問所有的系統資源,也可以直接進行處理器模式的切換。它主要供作業系統任務使用。

ARM處理器工作模式

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

arm處理器工作模式

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

ARM處理器工作模式

arm有7種工作模式 user 非特權模式,大部分時候在這個模式下工作 fiq 當乙個高優先順序 fast 中斷產生時將會進入這種模式 irq 當乙個低優先順序 normal 中斷產生時進入這種模式 supervisor 當復位或軟中斷指令執行時進入 abort 當訪問異常時進入 undef 當執行...