ARM的編程模式和7種模式


ARM采用的是32位架構

ARM閱讀

    --Byte:        8   bits

    --Halfword:  16  bits(2 byte)  半字

    --Word:       32  bits(4 byte)

 

大部分ARM core提供:  core(核心)

  --ARM指令集(32 bit)        (有些占內存、時間快)

 --Thumb指令集(16 bit)      (省內存、但是浪費時間)

 --Thumb2指令集(16 & 32bit)(ARM v7(S5PV210) 大概2005年才開始推出) 

 

Jazelle cores 支持 Java bytecode

/************************************************************************************************/

ARM有7種基本工作模式(6個特權模式和一個用戶模式)

----User(用戶模式): 非特權模式,大部分任務執行在這種模式                     

 

----FIQ(快速中斷):當一個高優先級(fast)中斷產生時將會進入這種模式   -- |

----IRQ(普通中斷):當一個低優先級(nomal)中斷產生時會進入這種模式      |

----Supervisor(管理模式):當復位或軟中斷指令執行時將會進入這種模式        |-------異常模式

----Abort(異常模式):當存取異常時會進入這種模式                                    |

----Under(未定義模式):當執行未定義指令時會進入這種模式                  -- |

 

----System(系統模式):使用和User模式相同寄存器的特權模式

 

注意:

     除了User(用戶模式)是Normal(普通模式)外,其他6種都是Privilege(特權模式)。

     Privilege中除Sys模式外,其余5種為異常模式

     各種模式的切換,可以是程序員通過代碼主動切換(通過寫CPSR寄存器);也可以是CPU在某些情況下自動切換。

     各種模式下權限和可以訪問的寄存器不同。

 

 

為什么需要那么多種模式?

CPU 是硬件,OS是軟件,軟件的設計要依賴硬件的特性,硬件的設計要考慮軟件需要,便於實現軟件特性。

操作系統有安全級別要求,因此CPU設計多種模式為了方便操作系統的多種角色安全等級需要。

 

/************************************************************************************************/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM