Cortex-A相對經典ARM處理器的擴展

(一)Cortex-A多了一種工作模式:monitor

1. usr 用戶模式:               非特權模式,大部分應用程序運行在這個模式下
2. fiq 快中斷模式:            高優先級的中斷
3. irq 普通中斷模式:        低優先級的中斷
4. svc 超級用戶模式(管理模式):      軟中斷和復位
5. abort 中止模式:             當存取異常
                                  讀取指令中止
                          讀取數據中止
6. undef 未定義指令模式:       執行到一個cpu不能識別的指令,當一個高版本的指令(cortex-a)運行到低版本的cpu(arm7)上是,可能會發生未定義指令異常
7. sytem 系統模式:                  特權模式,os處在系統模式下
8. monitor 安全模式:               爲安全而擴展出

(二)由於Cotex-A多了一種monitor工作模式,所以又多了三個寄存器(R13_mon,R14_mon,SPSR_mon)

cortex-a的寄存器個數
1. system和usr公用一組寄存器
2. r0-r7   一組 ,8種模式公用一組                            8
3. r8-r12  2組,fiq私有一組,其餘7種公用一組        2*5
4. r13(sp)     7組                                                        7
5. r14(lr)     7組                                                          7
6. r15(pc)     1組                                                       1
7. cpsr        1組                                                         1
8. spsr        6組                                                         6

Cotex-A 寄存器一共有40個寄存器
r0 -r12 一般用途
sp 棧指針  用來指向一個可以使用的內存
lr(r14) 鏈接寄存器,用來保存pc的值
pc  程序計數器,用來記錄程序執行的位置
cpsr 當前程序狀態寄存器,用來記錄cpu運行的狀態
spsr 保存程序狀態寄存器

(三)ARM數據類型
ARM採用32位架構
ARM約定:
Byte(字節)                 8bits
Halfword(半字)        16bits
Word(字)                  32bits
Doubleword(雙字)   64bits   (Cortex-A處理器特有)

(四)ARM指令集
大部分ARM  core提供:
  • ARM指令集(32-bit)
  • Thumb指令集(16-bit)
ARM11處理器:
  • ARM指令集(32-bit)
  • 16位和32位的Thumb-2指令集
Cotex-A 處理器
  • ARM指令集(32-bit)
  • 16位和32位的Thumb-EE指令集
Jazelle cores支持Java bytecode
當處理器執行在Jazelle狀態:
所有指令8bits寬
處理器執行word存取,一次取4條指令

(五)AMBA (arm微控制器總線架構)

AMBA:
       AHB      高速總線     cpu core ,DMA,SDRAM,SRAM,FLASH,APB BRIDGE
       APB      外設總線     GPIO,INTERRUPT,I2C,SPI,TIMER,ADC,USB

ARM處理器的後綴名
T: 支持thumb 指令
D: 支持片上DEBUG
M: 64位的長乘法
I: 嵌入式ICE邏輯單元
S: TDMI的縮寫
E: 支持DSP指令
J: java字節碼
F: 硬件浮點


(六) cpsr的位含義
N  運算結果爲負
Z  運算結果爲0
C  進位,借位
V  溢出位

處理的狀態 4種
T=0;J = 1  處理器處於Jazelle狀態
T = 0;J=0; 處理器處於 ARM 狀態
T = 1;J=0 處理器處於 Thumb 狀態
T = 1;J=1 處理器處於 ThumbEE 狀態

處理器模式  8種
10000  User mode;    10001 FIQ mode;           10011 SVC mode;
10111  Abort mode;   11011 Undfined mode;      11111 System mode;  
10110  Monitor mode;   10010 IRQ


(七)異常處理
1. 8種模式
7種特權,1種非特權(usr)
2. 7種特權:
2種 非異常的特權模式: system,mon
5種 異常的特權模式: fiq,irq,svc,undef,abort
3. 異常處理: 異常源一旦發生,cpu所做的處理,這個過程是cpu自動完成的,不需要代碼實現
   異常處理實現需要7步,4大3小
4. 異常返回:
恢復pc 
恢復cpsr

(八)異常向量表基地址:
arm7,ARM9,ARM10只可以在0(低端向量表)地址和0xffff0000(高端向量表)   
arm11,cortex-a 可以在任意設置異常向量表的基地址,由cp15當中的c12寄存器控制異常向量表的基地址

(九)S5PV210地址映射:
地址範圍                 範圍             用途
0x0 -0x1fffffff                 512M      boot  
0x0 -0xffff                 64K              IROM         norflash            三星固化的一段代碼,用來做啓動使用
0x20000-0x38000         96K              IRAM         內部靜態內存
0x20000000-0x3fffffff           512M            dram         用於外接動態內存
0x40000000-0x7fffffff           1G                 dram         用於外接動態內存
0xe0000000-0xffffffff            512M             SFR         這一部分的地址用來接芯片內部的外設,這一部分的地址和芯片內部的電路連接在一起,用來控制片內外設
















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