1. 程式人生 > >分析 ARM 處理器不同工作模式的作用,舉例說明切換過程。

分析 ARM 處理器不同工作模式的作用,舉例說明切換過程。

分析 ARM 處理器不同工作模式的作用,舉例說明切換過程。

ARM 處理器(以 ARM7TDMI 為例)的 7 中工作模式為:
(1) 使用者模式(usr):執行應用程式的普通模式。
(2) 系統模式(sys):執行具有特權的作業系統任務。
(3) 超級使用者模式(svc):作業系統的保護模式,主要用於 SWI 和 OS。這
個模式有額外的特權,允許進一步控制處理器。
(4) 中斷模式(irq):用作通用中斷處理。這個模式也是有特權的。導致 IRQ
的裝置有鍵盤、定時器、序列口、硬碟、軟盤、等等……
(5) 快速中斷模式(fiq):用來處理外設發起的快速中斷。用於支援高速資料
傳送與通道處理。這個模式是有特權的。
(6) 資料訪問中止模式(abt):當資料或指令預取終止時進入該模式,可用於
虛擬儲存及儲存保護。
(7) 未定義模式(und):當執行了未定義指令時進入該模式。
舉例:當系統響應中斷或異常、或訪問受保護的系統資源時,處理器會進入
特權模式(除使用者模式以外的所有模式)。 例如從 usr 模式切換到 irq 模式:
首先 CPU 會將返回地址儲存到相應模式的 lr 暫存器中,即將 usr 模式下的 pc 值,
儲存到 irq 模式下的 lr 暫存器中。
然後儲存 CPSR 到相應模式的 SPSR 暫存器中, 即 CPU 儲存 usr 模式下的 CPSR
到 irq 模式下的 SPSR 中。
最後將 pc 設定成 irq 模式下的某地址值繼續執行。