1-2 ARM概況

1.  一些對比緩存

    芯片      6410     210     2440ide

    ARM核     arm11    A8      arm9spa

    指令結構  armv6    armv7   armv4指針


    芯片手冊(S342440)中的Product Overview可查看ARM核orm

    ARM核手冊(ARM920T)可查看指令結構接口


S3C2440 S3C6410 S5PV210
處理速度 405-533MHZ 533-667MHZ 800-1024MHZ
緩存 16K 16K 32K
內存接口 SDRAM SDRAM/DDR DDR/DDR2
支持的OS Linux,Wince Linux,Wince,安卓 Linux,Wince,安卓


2.  ARM工做模式(參考《ARM Architecture Reference Manual》ARM體系結構參考手冊)內存

USER usr 普通應用程序運行的普通模式,Linux用戶態程序運行在該模式下
FIQ fiq 快速中斷模式
IRQ irq 普通中斷模式
Superviso svc 保護模式,系統級運行模式,Linux內核運行於該模式下
Abort abt 異常模式,訪問虛擬內存時用
Undefind und 未定義模式,執行非ARM指令時用
System sys 系統模式,ARMv4以上纔有的模式


3.  ARM寄存器ci

不分組的r0-r7(8個) 分組寄存器r8-r14(23個) 程序計數器PC(1個)
r0-r7 7個工做模式(共享) 8 個
r8-r12 irq,usr,sys,svc,abt,und(共享) 5 個

fiq(獨享) 5 個
r13,r14 usr,sys(共享) 2 個

irq,fiq,svc,abt,und(獨享) 5 X 2 = 10 個
r15 7個工做模式(共享) 1 個
CPSR 7個工做模式(共享) 1 個
SPSR svc,abt,und,irq,fiq(獨享) 5 X 1 = 5 個


r13  充當SP(stack pointer)堆棧指針it

r14  充當LR連接寄存器,保存寄存器返回地址,以及中斷後的返回地址table

r15  程序計數器PC指針

31 30 29 28

27 ~ 8
7 6 5 4 3 2 1 0
N Z C V 保留 I F T M4 M3 M2 M1 M0


















N Negative/Less Than




I
IRQ disable
Z Zero








F
FIQ disable
C Carry/Borrow/Extend




T
State bit
V Overflow







M0~4 Mode bits


        3.1  條件碼標誌

         N、Z、C、V均爲條件碼標誌位。它們的內容可被算術或邏輯運算的結果所改變,而且能夠決定某條指令是否被執行。條件碼標誌各位的具體含義以下表所示:


標誌位 含                                義
N 當用兩個補碼錶示的帶符號數進行運算時,N=1表示運算的結果爲負數;N=0表示運算的結果爲正數或零
Z Z=1表示運算的結果爲零,Z=0表示運算的結果非零。
C 能夠有4種方法設置C的值:
 -加法運算(包括CMP):當運算結果產生了進位時(無符號數溢出),C=1,不然C=0。
 -減法運算(包括CMP):當運算時產生了借位時(無符號數溢出),C=0,不然C=1。
 -對於包含移位操做的非加/減運算指令,C爲移出值的最後一位。
 -對於其它的非加/減運算指令,C的值一般不會改變。
V 能夠有2種方法設置V的值:
 -對於加減法運算指令,當操做數和運算結果爲二進制的補碼錶示的帶符號數時,V=1表示符號位溢出
 -對於其它的非加/減運算指令,V的值一般不會改變。
Q 在ARM V5及以上版本的E系列處理器中,用Q標誌位指示加強的DSP運算指令是否發生了溢出。在其它版本的處理器中,Q標誌位無定義


  在ARM狀態下,絕大多數的指令都是有條件執行的;在THUMB狀態下,僅有分支指令是條件執行的。


        3.2 控制位

        CPSR的低8位(包括I、F、T和M[4:0])稱爲控制位,當發生異常時這些位能夠被改變。若是處理器運行於特權模式時,這些位也能夠由程序修改。

        中斷禁止位I、F:置1時,禁止IRQ中斷和FIQ中斷。

        T標誌位:該位反映處理器的運行狀態。當該位爲1時,程序運行於THUMB狀態,不然運行於ARM狀態。該信號反映在外部引腳TBIT上。在程序中不得修改CPSR中的TBIT位,不然處理器工做狀態不能肯定。

        運行模式位M[4:0]:這幾位是模式位,這些位決定了處理器的運行模式。具體含義以下表所示:

        保留位:CPSR中的其他位爲保留位,當改變CPSR中的條件碼標誌位或者控制位時,保留位不要改變,在程序中也不要用保留位存儲數據。保留位將用於ARM版本的擴展。


M[4:0] 處理器模式 ARM模式可訪問的寄存器 THUMB模式可訪問的寄存器
0b10000 用戶模式 PC,CPSR,R0~R14 PC,CPSR,R0~R7,LR,SP
0b10001 FIQ模式 PC,CPSR,SPSR_fiq,R14_fiq~R8_fiq,R0~R7 PC,CPSR,SPSR_fiq,LR_fiq,SP_fiq,R0~R7
0b10010 IRQ模式 PC,CPSR,SPSR_irq,R14_irq~R13_irq,R0~R12 PC,CPSR,SPSR_irq,LR_irq,SP_irq,R0~R7
0b10011 管理模式 PC,CPSR,SPSR_svc,R14_svc~R13_svc,R0~R12 PC,CPSR,SPSR_svc,LR_svc,SP_svc,R0~R7
0b10111 停止模式 PC,CPSR,SPSR_abt,R14_abt~R13_abt,R0~R12 PC,CPSR,SPSR_abt,LR_abt,SP_abt,R0~R7
0b11011 未定義模式 PC,CPSR,SPSR_und,R14_und~R13_und,R0~R12 PC,CPSR,SPSR_und,LR_und,SP_und,R0~R7
0b11111 系統模式 PC,CPSR,R0~R14 PC,CPSR,LR,SP,R0~R74
相關文章
相關標籤/搜索