ARM學習筆記(二)

來源:互聯網
上載者:User

 

嵌入式處理器分類
目前的嵌入嵌入式處理器按其體繫結構不同可分為五大類:
  ARM(Advance RISC Machine)
  MIPS
  POWER PC
  X86
  SH系列

ARM體繫結構的版本(V1-V6)
每一個ARM處理器都有一個特定的指令集架構ISA(Instruction Set Architecture),每一個ISA版本可以有多種   不同的處理器實現。
  ARM ISA至今已有六種不同版本V1-V6:
  
        V1-V2定址空間都為64M;
  V3定址空間擴充到32位(4G),增加了當前程式狀態寄存器CPSR(Current Program Status Register)和程式    狀態儲存(備份)寄存器SPSR(Saved Program Status Register)以便處理異常;
  V4為目前應用最廣的體繫結構,在V3的基礎上增加了16位的Thumb指令集;
  V5-V6。

ARM處理器的資料類型
字(Word):ARM體繫結構中字長為32位,其它8/16位處理器結構中字長一般為16位;
  半字(Half-Word):16位;
  位元組(Byte):8位。

ARM微處理器的工作狀態
ARM微處理器一般有兩種工作狀態,並可能兩種狀態之間切換。
  1ARM狀態:此時處理器執行32位的字對齊的ARM指令;
  2Thumb狀態:此時處理器執行16位的半字對齊的Thumb指令。

ARM處理器的工作模式
        1User:非特權模式,也是正常程式執行的模式,大部分任務在這種模式下執行;
  2FIQ:當一個高優先順序的中斷(fast)產生時會進入這種模式,用於高速資料轉送和通道處理;
  3IRQ:當一個低優先順序的中斷(normal)產生時會進入這種模式,用於通常的中斷處理;
  4Supervisor:當複位或非強制中斷指令執行時會進入這種模式,是供作業系統使用的一種保護模式;
  5Abort:當存取產生異常時進入這種模式,用於虛擬儲存及儲存保護;
  6Undef:當執行未定義指令時會進入這種模式,用於軟體模擬硬體的副處理器;
  7System:使用和User模式相同寄存器組的特權模式,用於完成特權級的作業系統任務。
  
  其中2-6為異常模式(Exception Mode),2-7為特權(Privileged Mode)模式。
  
  模式的改變方法有:軟體控制(通過軟體改變CPSR的模式位,外部中斷,異常處理。通常在User模式下不        能訪問受保護的系統資源,一般不能改變模式,異常發生時可能導致模式改變。

ARM寄存器描述
ARM有37個32位長的寄存器,其中:
    1個用作PC(Program Counter);
    1個用作CPSR(Current Program Status Register);
    5個用作SPSR(Saved Program Status Register);
    30個通用寄存器(General-purpose registers includes program counter)。
  當前的處理器工作模式決定那些寄存器可以操作,任何模式都可以存取:
    相應的R0-R12的子集;
    相應的R13(The Stack Pointer,堆棧指標寄存器)SP;
    相應的R14(The Subroutine Link Register,子程式串連寄存器)LR;
    相應的R15(The Program Counter);
    相應的CPSR(Current Program Status Register)。
  特權模式(除System外)還可以存取SPSR(Saved Program Status Register)。

  通用寄存器包括R0-R15,可分為三類:
    未分組寄存器(R0-R7);
    分組寄存器(R8-R14);
    程式計數器PC(R15)。
  
  寄存器R15用作PC,由於ARM體繫結構採用了多級流水線技術,對於ARM指令集而言,R15-程式計數器總   是指向當前指令的下兩條指令的地址,即PC的值為當前指令的地址加上8個位元組。
  寄存器R16用作CPSR,可在任何CPU工作模式下被訪問,它包括條件標誌位,中斷禁止位,當前處理器模  式標誌位以及其它一些控制項和狀態位。
    每一種CPU工作模式下都有一個專用的物理狀態寄存器SPRS(備份程式狀態寄存器),當異常發        生時SPRS用於儲存當前CPRS的值,當從異常中退出時可由SPSR恢複CPSR。
       
        程式狀態寄存器
        31 30 29 28 27  26位到第8位 7 6 5 4 3 2 1 0
N Z C V Q reserved for future expansion I F T M M M M M

        其中各位的具體含義如下:
         條件碼標誌的具體含義
                 N(negative):當用兩個用補碼錶示的帶符號數進行運算時,N=1表示運算結果為負,N=0表示結果為                                         正或0;
                 Z(Zero):Z=1表示運算結果為0,Z=1表示運算結果為非零;
                 C(Carry:進位/借位):有4種方法設定C值
                        加法運算(包括比較指令CMN),當運算結果產生進位時C=1,否則C=0;
                        減法運算(包括比較指令CMP),當運算結果產生了借位(無符號溢出)時C=0,否則C=1;
                        對移位操作,C值為移位結果的最後一位;
                        對於其它非加減法指令,C值通常不變。
                 V(Overflow):有兩種方法設定V值
                        對於加減法運算,當運算元和運算結果為二進位的補碼形式表示的帶符號數時,V=1表示符號位溢                        出;對於其它非加減法運算指令,C值通常不變。
                Q:有ARM V5及以上版本E系列處理器中,用Q位表示增強DSP運算指令是否發生了溢出,在其它版                       本的處理器中,Q標誌位無效。
          中斷禁止位I,F:
                I=1,禁止IRQ中斷;
                F=1,禁止FRQ中斷。
          T標誌位反映處理器的運行狀態
               對ARM體繫結構V5及以上的版本的T系列處理器,T=1表示運行於Thumb狀態,T=0表示運行於                 ARM狀態。
          模式位M[4:0]的值,處理器模式,可訪問的寄存器
           M[4:0]=0b10000,使用者模式(User),R0-R14、PC、CPSR;
           M[4:0]=0b10001,FIQ模式,R0-R7、R8_fiq-R14_fiq、PC、CPSR、SPSR_fiq;
           M[4:0]=0b10010,IRQ模式,R0-R12、R13_irq、R14_irq、PC、CPSR、SPSR_irq;
           M[4:0]=0b10011,Supervisor模式,R0-R12、R13_svc、R14_svc、PC、CPSR、SPSR_svc;
           M[4:0]=0b10111,Abort中止模式,R0-R12、R13_abt、R14_abt、PC、CPSR、SPSR_abt;
           M[4:0]=0b11011,Undel未定義模式,R0-R12、R13_und、R14_und、PC、CPSR、SPSR_und。

 

ARM  Register  organization

  <!--[if !vml]--><!--[endif]--> Privileged modes
 
    <!--[if !vml]--><!--[endif]--> Exception modes
 
User System SuperVisor Abort Undefined Interrupt Fast Interrupt
R0 R0 R0 R0 R0 R0 R0
R1 R1 R1 R1 R1 R1 R1
R2 R2 R2 R2 R2 R2 R2
R3 R3 R3 R3 R3 R3 R3
R4 R4 R4 R4 R4 R4 R4
R5 R5 R5 R5 R5 R5 R5
R6 R6 R6 R6 R6 R6 R6
R7 R7 R7 R7 R7 R7 R7
R8 R8 R8 R8 R8 R8 R8_fiq
R9 R9 R9 R9 R9 R9 R9_fiq
R10 R10 R10 R10 R10 R10 R10_fiq
R11 R11 R11 R11 R11 R11 R11_fiq
R12 R12 R12 R12 R12 R12 R12_fiq
R13 R13 R13_svc R13_abt R13_und R13_irq R13_fiq
R14 R14 R14_svc R14_abt R14_und R14_irq R14_fiq
PC PC PC PC PC PC PC
 
CPSR CPSR CPSR CPSR CPSR CPSR CPSR
    SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq
圖中陰影部分表示分組寄存器

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.