ARM概述

 一、前言:嵌入式系統: 是指以應用爲中心,以計算機技術爲基礎,軟件和硬件可以裁剪, 適應應用系統對功能的、可靠性、體積和功耗嚴格要求的專用計算機系統。
        ARM技術的發展歷程:第一片ARM處理器是在1983年10月到1985年4月位於英國劍橋的ACRON COMPUTER公司開發的。於1985年4月26日在ACRON公司進行了首批ARM樣片測試併成功運行了測試程序。1990年11月ARM公司在英國劍橋的一個穀倉裏成立最初只有12人。
1、ARM體系的結構版本:
    版本1  :   V1體系
        *處理乘法指令以外的基本數據處理指令。
        *基於字節、字和多字的LOAD/STORE指令。
        *包括子程序BL在內的跳轉指令。
        *共操作系統使用的軟件中斷指令:SWI。
        *本版本總地址空間是26位,目前已經不在使用。(2^26 = 64MB)
    版本2  :   V2體系
        *乘法指令和乘加指令。
        *支持協處理器的指令。
        *對於FIQ模式,提供額外的兩個備份寄存器。
        *SWP指令及SWPB指令。
        *本版本總地址空間是26位,目前已經不在使用。
    版本3  :    V3體系
        *地址擴展到32位,除去3G版本以外的其他版本是向前兼容的,支持26位地址空間。
        *程序狀態寄存器從原來的R15移動到新的專用寄存器:Current Program Status Register
        *增加了SPSR用於異常中斷程序時,保存被中斷程序的狀態。Saved Program Status Register
        *增加了兩種處理器模式,是操作系統代碼可以方便地使用數據訪問中止異常、指令預取異常和未定義指令異常。
        *增加了MSR,MRS。用於訪問CPSR,SPSR寄存器。
        *修改了原來版本中的從異常返回的指令。
    版本4  :  V4體系
        *半字的讀取和寫入指令。
        *讀取(LOAD)帶符號的字節和半字數據的指令。
        *增加了T變種,可以使處理器切換到Thumb狀態。
        *增加了處理器的特權模式。在該模式下使用的是用戶模式下的寄存器。
        *版本4中明確定義了哪些指令會引起未定義指令異常。版本4不再強制要求於以前的26位地址空間兼容。
    版本5  :  V5體系
        *提高了T變種中ARM/THUMB混合使用的效率。
        *對T變種的指令和非T變種的指令使用相同的代碼生成技術。
        *增加了前導零計數(COUNT LEADING ZEROS)指令,該指令可以使整數除法和中斷優先級排隊操作的更爲有效。
        *增加了軟件斷點指令。
        *爲協處理器提供了更多的可選擇的指令。
        *更加嚴格的定義了乘法指令堆條件標誌位的影響。
    版本6  :  V6體系
        *2001年發佈,其主要特點是增加了SIMD功能擴展。它適合永電池供電的高性能便攜式設備。
2、ARM體系變種及命名格式
  ARM體系的變種:
     
T(THUMB)。
      M(長乘法指令)。
      E(增強型DSP指令)。
      J(JAVA加速器JAZELLE)。
      SIMD(ARM多媒體擴展)。
 命名格式
      ARM v5  T exP
     ┃ ┃ ┃ ┃
     ┃ ┃ ┃ ┖要排除的功能
     ┃ ┃ ┖變種名稱
     ┃ ┖版本號
     ┖ARM字符串
3、ARM處理器系列 
   ARM7:
           ARM7TDMI,ARM7TDMI-S,ARM7EJ-S,ARM720T-4
            AMR7 T D M I - S
              ┃ ┃┃┃┃  ┃
              ┃ ┃┃┃┃  ┖可綜合(SYNTHESIZABLE)版本軟核
              ┃ ┃┃┃┖EmbededICE硬件調試仿真功能
              ┃ ┃┃┖64位乘法指
              ┃ ┃┖片上調試
              ┃ ┖THUMB指令
              ┖AMR7
    ARM9:
            ARM9系列處理器使用了ARM9TDMI內核,其中包含了16位的THUMB指令集。
    ARM9E:
            ARM9E系列處理器使用單一的處理器內核提供了微控制器、DSP、JAVA應用系統的解決方案,從而極大的減小了芯片的大小及複雜程度,
降低了功耗縮短了產品面世的時間。
    ARM10E:
            ARM10E系列處理器有高性能和低功耗的特點。其採用了新的節能模式,提供了64位的讀取和寫入體系,包含向量操作的滿足IEEE754的
浮點運算協處理器,系統集成更加方便,擁有完整的硬件和軟件可開發工具。
     包含:ARM1020E,ARM1022E,ARM1026EJ-S
    SECURCORE:
     提供了基於高性能的32位RISC技術的安全解決方案。
          包含:SECURCORE SC100, SECURCORE SC110, SECURCORE SC200,SECURCORE SC210。
4、ARM處理器模式
   7種運行模式:
        USR(用戶模式).          特權模式 :SYS(系統)       異常模式:FIQ(快速中斷)          IRQ(外部中斷)             SVE(特權)               ABT(數據訪問中止)         UND(未定義)
5、ARM寄存器介紹
   37個寄存器:
       第一類:31個通用寄存器,包括PC在內。都是32位的。
       第二類:6個狀態寄存器,都是32位的目前只使用了一部分的位。
     
         寄存器R13在ARM中常用作棧指針,每一種異常模式擁有自己的物理的R13。應用程序初始化該R13,使其指向該異常模式專用的棧地址。
當進入異常模式時,可以將需要使用的寄存器保存在R13所指向的棧指針中,退出時將保存在R13所指的棧中的寄存器彈出。
         寄存器R14,又稱連接寄存器LR,每一種處理器模式自己物理R14中存放在當前程序的返回地址,使用如下指令可實現子程序的返回操作:
        MOV   PC    ,LR
        BX       LR
        在子程序入口使用下面的指令將PC保存在棧中:STMFD     SP!  ,{<register>,LR}   ,相應返回指令:LDMFD     SP!  ,{<register>,PC} 
        寄存器R15,又稱PC,讀取PC值與寫入PC值的非對稱操作需要特別注意,如MOV  PC ,PC 兩個PC所代表的值是不一樣的。
6、ARM處理器對異常中段的處理過程
       *保存處理器當前狀態、中斷屏蔽位以及各條件標誌位(將CPSR內容保存到SPSR中)
       *設置當前程序狀態寄存器CPSR中的相應位,使處理器進入相應的執行模式
       *將寄存器Ir_mode設置成返回地址
       *將程序計數器值PC設置成異常中斷的中斷向量地址,並跳到相應的異常中斷處理程序執行
7、從異常中斷處理程序中返回
       *恢復中斷程序的處理器狀態
       *返回到發生異常中斷指令下一條指令處執行
       *復位異常中斷處理程序不需要返回

      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章