除使用者模式外,其它模式均為特權模式(privileged modes)。arm內部暫存器和一些片內外設在硬體設計上只允許(或者可選為只允許)特權模式下訪問。此外,特權模式可以自由的切換處理器模式,而使用者模式不能直接切換到別的模式。
異常模式
特權模式中除系統(system)模式之外的其他5種模式又統稱為異常模式。它們除了可以通過在特權下的程式切換進入外,也可以由特定的異常進入。比如硬體產生中斷訊號進入中斷異常模式,讀取沒有許可權資料進入中止異常模式,執行未定義指令時進入未定義指令中止異常模式。其中管理模式也稱為超級使用者模式,是為作業系統提供軟中斷的特有模式,正是由於有了軟中斷,使用者程式才可以通過系統呼叫切換到管理模式。
(1)使用者模式:
使用者模式是使用者程式的工作模式,它執行在作業系統的使用者態,它沒有許可權去操作其它硬體資源,只能執行處理自己的資料,也不能切換到其它模式下,要想訪問硬體資源或切換到其它模式只能通過軟中斷或產生異常。
(2)系統模式:
系統模式是特權模式,不受使用者模式的限制。使用者模式和系統模式共用一套暫存器,作業系統在該模式下可以方便的訪問使用者模式的暫存器,而且作業系統的一些特權任務可以使用這個模式訪問一些受控的資源。
(3)一般中斷模式:
一般中斷模式也叫普通中斷模式,用於處理一般的中斷請求,通常在硬體產生中斷訊號之後自動進入該模式,該模式為特權模式,可以自由訪問系統硬體資源。
(4)快速中斷模式:
快速中斷模式是相對一般中斷模式而言的,它是用來處理對時間要求比較緊急的中斷請求,主要用於高速資料傳輸及通道處理中。
(5)管理模式:
管理模式是cpu上電後預設模式,因此在該模式下主要用來做系統的初始化,軟中斷處理也在該模式下,當使用者模式下的使用者程式請求使用硬體資源時通過軟體中斷進入該模式。
(6)終止模式:
中止模式用於支援虛擬記憶體或儲存器保護,當使用者程式訪問非法位址,沒有許可權讀取的記憶體位址時,會進入該模式,linux下程式設計時經常出現的segment fault通常都是在該模式下丟擲返回的。
(7)未定義模式:
未定義模式用於支援硬體協處理器的軟體**,cpu在指令的解碼階段不能識別該指令操作時,會進入未定義模式。
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...