Cortex-A相对经典ARM处理器的扩展

来源:互联网 发布:overcooked for mac 编辑:程序博客网 时间:2024/05/01 21:37
(一)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         这一部分的地址用来接芯片内部的外设,这一部分的地址和芯片内部的电路连接在一起,用来控制片内外设
















原创粉丝点击