一、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 作業系統的特權任務模式。系統復位和軟體中斷時才進入這個模...