從程式設計的角度看,arm微處理器的工作狀態有兩種,並可在兩種狀態之間切換:
(1)
arm狀態,此時處理器執行32位的字對齊的arm指令
(2)
thumb狀態,此時處理器執行16位的,半字對齊的thumb指令(為了相容老晶元)
在程式執行的過程中,可以在兩種狀態之間進行相應的轉換。處理器工作狀態的轉變並不影響處理器的工作模式和相應暫存器中的內容。
儲存器格式(字對齊):
arm體系結構將儲存器看做是從零位址開始的位元組的線性組合。從零位元組到三位元組放置第乙個儲存的字(32位)資料,從第四個位元組到第七個位元組放置第二個儲存的字資料,一次排列。作為32位的微處理器,arm體系結構所支援的最大定址空間為4gb。
儲存器格式:
arm體系結構可以用兩種方法儲存字資料,稱之為大端格式和小端格式。
小端格式:與大段格式相反。
指令長度:
arm微處理器的指令長度是32位的,也可以為16位(thumb狀態下)。arm微處理器中支援位元組(8位),半字(16位),字(32位)三種資料型別,其中,字需要4位元組對齊,半字需要2位元組對齊。
注:所謂的指令長度是一條完整的指令的長度,而不是單純的mov這3個字母長度
arm的工作模式切換有兩種方法:
被動切換:在arm執行的時候產生一些異常或者中斷來經行模式切換
主動切換:通過軟體改變,即軟體設定暫存器來經行arm的模式切換,應為arm的工作模式都是可以通過相應暫存器的賦值來切換的。
tips:當處理器執行在使用者模式下,某些被保護的系統資源是不能被訪問的。
工作模式的分類:
除了使用者模式以為,其餘所有6種模式稱之為非使用者模式(特權模式,許可權比使用者模式高),其中特權模式中除去系統模式外的5種模式稱之為異常模式(在使用者模式和系統模式看來這些都屬於異常),常用於處理中斷或異常,以及需要訪問受保護的系統資源等情況。
如表所示:
處理器工作模式
特權模式
異常模式
說明
使用者(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在指令的解碼階段不能識別該指令操作時,會進入未定義模式。
ARM工作模式
從程式設計的角度看,arm微處理器的工作狀態有兩種,並可在兩種狀態之間切換 1 arm狀態,此時處理器執行32位的字對齊的arm指令 2 thumb狀態,此時處理器執行16位的,半字對齊的thumb指令 為了相容老晶元 在程式執行的過程中,可以在兩種狀態之間進行相應的轉換。處理器工作狀態的轉變並不影...
arm工作模式
一 arm工作模式 arm微處理器支援7種工作模式,分別為 1 使用者模式 usr 用於正常執行程式 2 快速中斷模式 fiq 用於高速資料傳輸 3 外部中斷模式 irq 用於通常的中斷處理 4 管理模式 svc 作業系統使用的保護模式 高許可權 復位和軟體中斷進入 5 資料訪問終止模式 abt 當...
一 ARM工作模式
1 工作狀態 從程式設計的角度看,arm微處理器的工作狀態一般有兩種,並可在兩種狀態之間切換 第一種為 arm狀態,此時處理器執行32位的字對齊的arm指令。第二種為 thumb狀態 此時此時處理器執行16位的 半字對齊的arm指令。當arm微處理器執行32位的arm指令集時,工作在arm狀態 當a...