arm處理器模式和arm處理器狀態的區別

2021-06-18 00:53:22 字數 2050 閱讀 5306

arm處理器狀態

arm微處理器的工作狀態一般有兩種,並可在兩種狀態之間切換:

第一種為arm狀態,此時處理器執行32位的字對齊的arm指令;

第二種為thumb狀態,此時處理器執行16位的、半字對齊的thumb指令。

在程式的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,並且,處理器工作狀態的轉變並不影響處理器的工作模式和相應暫存器中的內容。但arm微處理器在開始執行**時,應該處於arm狀態。

arm處理器狀態

進入thumb狀態:當運算元暫存器的狀態位(位0)為1時,可以採用執行bx指令的方法,使微處理器從arm狀態切換到thumb狀態。此外,當處理器處於thumb狀態時發生異常(如irq、fiq、undef、abort、swi等),則異常處理返回時,自動切換到thumb狀態。

進入arm狀態:當運算元暫存器的狀態位為0時,執行bx指令時可以使微處理器從thumb狀態切換到arm狀態。此外,在處理器進行異常處理時,把pc指標放入異常模式鏈結暫存器中,並從異常向量位址開始執行程式,也可以使處理器切換到arm狀態。

對於coretex-a系列,還有一種工作狀態,即執行thumb-2指令集的thumbee的狀態,thumb-2指令集是32位與16位混合執行的指令集。

arm處理器模式

arm微處理器支援7種執行模式,分別為:

使用者模式(usr):arm處理器正常的程式執行狀態,非特權模式。

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

外部中斷模式(irq):用於通用的中斷處理。

管理模式(svc):作業系統使用的保護模式。

資料訪問終止模式(abt):當資料或指令預取終止時進入該模式,可用於虛擬儲存及儲存保護。

系統模式(sys):執行具有特權的作業系統任務。

定義指令中止模式(und):當未定義的指令執行時進入該模式,可用於支援硬體協處理器的軟體**。

對於coretex-a系列,還有一種特有模式(monitor):是為了安全而擴充套件出的用於執行安全監控**的模式,也是一種特權模式。

arm處理器模式

arm微處理器的執行模式可以通過軟體改變,也可以通過外部中斷或異常處理改變。大多數的應用程式執行在使用者模式下,當處理器執行在使用者模式下時,某些被保護的系統資源是不能被訪問的。

對於中斷和異常:

中斷時異常的一種,但是不能說中斷是由異常引發的,兩者的響應方式一樣;但是中斷可以被忽略,異常不能被忽略;中斷產生肯定會產生一次異常。

除使用者模式以外,其餘的所有6種模式稱之為非使用者模式,或特權模式;其中除去使用者模式和系統模式以外的5種又稱為異常模式,常用於處理中斷或異常,以及需要訪問受保護的系統資源等情況。

arm暫存器

arm處理器共有37個暫存器。其中包括:31個通用暫存器,包括程式計數器(pc)在內。這些暫存器都是32位暫存器。以及6個32位狀態暫存器。

關於暫存器這裡就不詳細介紹了,有興趣的人可以上網找找,很多這方面的資料。

異常處理

當正常的程式執行流程發生暫時的停止時,稱之為異常,例如處理乙個外部的中斷請求。在處理異常之前,當預處理器的狀態必須保留,這樣當異常處理完成之後,當前程式可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先順序進行處理。當乙個異常出現以後,arm微處理器會執行以下幾步操作:

進入異常處理的基本步驟:

arm微處理器對異常的響應過程用偽碼可以描述為:

r14_ = return link

spsr_= cpsr

cpsr[4:0] = exception mode number

cpsr[5] = 0 ;當執行於 arm 工作狀態時

if == reset or fiq then;當響應 fiq 異常時,禁止新的 fiq 異常

cpsr[6] = 1

psr[7] = 1

pc = exception vector address

異常處理完畢之後,arm微處理器會執行以下幾步操作從異常返回:

將連線暫存器lr的值減去相應的偏移量後送到pc中。

將spsr複製回cpsr中。

若在進入異常處理時設定了中斷禁止位,要在此清除。

ARM處理器模式

cpsr暫存器 arm v4的cpsr暫存器 和儲存它的spsr暫存器 中的位分配如下圖所示。處理器模式決定了哪些暫存器是活動的以及對cpsr訪問權。處理器模式要麼是特權模式,要麼是非特權模式。特權模式允許對cpsr的完全讀 寫訪問 與些相反,非特權模式只允許對cpsr的控制域進行讀訪問,但允許對條...

ARM處理器工作模式

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

ARM處理器模式切換

參考 arm體系的cpu有以下7種工作模式 1 使用者模式 usr 正常的程式執行狀態 2 快速中斷模式 fiq 3 中斷模式 irq 4 管理模式 svc 作業系統使用的保護模式 5 系統模式 sys 執行具有特權的作業系統任務 6 資料訪問終止模式 abt 資料或指令預取終止時進入該模式 7 未...