12.ARM的編程模式和7中工作模式

ARM 213瀏覽


ARM的基本設定

  • ARM采用的是32位架構
  • ARM約定
  • Byte: 8bits (1byte)
  • HalfWord : 16bits(2byte)
  • Word: 32bits(4byte)

  • 大部分ARM core 提供:

    • ARM指令集(32-bit)
    • Thumb指令集(16-bit)
    • Thumb指令集(16 & 32bit)
  • jazelle cores 支持java bytecode

ARM 處理器工作模式

  • User : 非特權模式,大部分任務執行這種模式
  • FIQ : 當一個高優先級(fast) 中斷產生時將會進入這種模式
  • IRQ : 當一個低優先級(normal) 中斷產生時將會進入這種模式
  • Supervisor :當復位或軟中斷指令執行時將會進入這種模式
  • Abort : 當存取異常時將會進入這種模式
  • Undef : 當執行未定義指令時會進入這種模式

  • System : 使用和User模式相同寄存器集的特權模式

除User(用戶模式)是Normal(普通模式)外,其他6種都是Privilege(特權模式)。
Privilege中除Sys模式外,其余5種為異常模式。
各種模式的切換,可以是程序員通過代碼主動切換(通過寫CPSR寄存器);也可以是CPU在某些情況下自動切換。
各種模式下權限和可以訪問的寄存器不同

CPU為什么設計這些模式

CPU是硬件,OS是軟件,軟件的設計要依賴硬件的特性,硬件的設計要考慮軟件需要,便于實現軟件特性。
操作系統有安全級別要求,因此CPU設計多種模式是為了方便操作系統的多種角色安全等級需要。

七星彩走势图2元网官网