ARM的處理器模式分幾種要看是ARM的哪個系列,但是以現在的系列來說,有九種模式,這九種模式就是CPU在運算的時候,本來在讀程序,突然系統發生異常,比如說藍屏,這個時候操作系統肯定有相關的處理,同時我們也需要CPU一些信號,那么我們就可以通話CPU的切換來進行處理,這樣實際上是在最低級別上考慮到的方式來完成了安全控制和效率控制,還有節能控制,所以這就是我們為什么要模式切換的原因,它模式與模式之間相對而言是比較獨立的。
Cortex-A九種處理器模式
1,user模式:用戶模式,大部分程序運行時候的非特權模式。
2,FIQ模式:快速中斷模式,進入FIQ中斷異常,中斷也會分類,除了硬件中斷還有軟件中斷,中斷的時候也會有消息傳過來,這個消息可能數據量比較大,而且要求還很大,還有的消息數據量比較小,它要求就會很小,這種要求大的中斷我們就稱為快速中斷,比較小的我們就稱為一般中斷。
3,IRQ模式:一般中斷模式。
4,Supervisor(SVC)模式:超級管理員,它主要是用來管理調用指令被執行或者reset的時候,這個模式的權限級別非常大,所以一般情況下是不能隨便用的。
5,Monitor(MON)模式:監視模式,就像后台服務,就像監測網絡信號,其實CPU不需要去處理一些用戶中斷,這個模式主要用來安全擴展模式,只用於安全。
6,Abort(ABY)模式:退出模式,通常開始發生了用戶級別的開始,就會出現這樣的退出,這個時候CPU就會說暫停下面的代碼運行,就直接退出。
7,Hyp(HYP)模式:是一個超級的監視者,它比超級管理員要稍微低一點,它主要是用來做一些虛擬化的擴展。
8,Undef(UND)模式:它就是未定義的指令執行的時候,比如說一條指令是CPU不識別的,就叫做未定義。
9,System(SYS)模式:系統模式,當系統自己異常的時候,就會發生這樣的模式,它有一個特點就是可以進行各個模式的切換,在不同的狀態的時候,訪問的寄存器就有可能不一樣,這個模式用到的寄存器與用戶模式是共享的,只是訪問級別不一樣。這九種模式里面User模式稱為非特權模式,其他的全部稱為特權模式。