ARM處理器工作模式及暫存器結構

2021-07-15 02:16:45 字數 1347 閱讀 3854

一、arm七種處理器工作模式:

使用者模式 usr:正常程式執行模式

快速中斷模式fiq:用於高速資料傳輸和通道處理

外部中斷模式irq:用於通常的中斷處理

管理模式svc:供作業系統使用的一種保護模式(swi)

資料中止中斷模式abt:用於虛擬儲存及儲存保護

未定義指令中止模式und:用於支援通過軟體方針硬體的協處理器

系統模式sys:用於執行特級的作業系統任務

除了使用者模式,其他六種為特權模式,而六種特權模式除了系統模式之外的都是異常模式。

二、暫存器

arm結構具有31個通用暫存器和6個狀態暫存器,都是32位的暫存器;

通用暫存器分為:備份暫存器、未備份暫存器和程式計數器pc

1、未備份暫存器:r0-r7

2、備份暫存器:

r8-r12在快速中斷fiq情況下會有備份,r13、r14通常作為棧基址指標sp和鏈結暫存器lr,在異常模式下都會有備份。

3、程式計數器:r15 pc指標

使用pc指標注意存在讀寫不對稱的問題,由於ar流水作業,pc指標會指向當前執行指令後兩個指標。如果是arm指令pc指標是當前執行指令位址加兩個字,thumb指令為半字。

4、狀態暫存器:

cpsr、spsr在5種異常模式下各自有各自備份暫存器;狀態暫存器包含處理器執行模式設定m0-m4,t指示指令模式thumb或arm程式;f/i可以選擇是否遮蔽fiq、irq中斷;n負數、z零、v符號位溢位、c運算進製及q增強dsp指令溢位指示。

三、關於大小端的區別:

大端-高位元組在小位址端;小端-高位元組在大位址端。

四、異常中斷及對應的處理器模式

1、復位reset/軟復位 => svc模式 優先順序1(越大越低)

2、未定義指令中止 => undef模式 6

3、軟體中斷swi斷點 => svc模式 6

4、指令預取中止5、資料訪問中止2 => abt模式(bkpt)

5、外部中斷 => irq 4

6、快速中斷 => fiq 3

小貼士:

正常程式執行在使用者模式,系統核心使用到系統模式?

哪些資源可以設定不同模式下的許可權?如記憶體讀寫訪問的設定許可權;

跳轉及變數的定義都會影響效率:跳轉會清除指令流水;變數定義小於暫存器長度時需要額外的處理?

ARM微處理器的暫存器結構

arm處理器共有37個暫存器,被分為若干個組 bank 這些暫存器包括 31個通用暫存器,包括程式計數器 pc指標 均為32位的暫存器。6個狀態暫存器,用以標識cpu的工作狀態及程式的執行狀態,均為32位,目前只使用了其中的一部分。同時,arm處理器又有7種不同的處理器模式,在每一種處理器模式下均有...

ARM處理器工作模式

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

ARM處理器工作模式

arm有7種處理器模式,其由cpsr的 4 0 位決定。使用者模usr 正常程式動行的工作模式。只能讀cpsr不能寫 系統模式sys 與使用者模式共用一套暫存器。用於支援作業系統的特權任務模式,但它具有直接切換到其它模式的特權。管理模式svc 作業系統的特權任務模式。系統復位和軟體中斷時才進入這個模...