1-2 ARM概况
2016-08-18 11:41
609 查看
1. 一些对比
芯片 6410 210 2440
ARM核 arm11 A8 arm9
指令结构 armv6 armv7 armv4
芯片手册(S342440)中的Product Overview可查看ARM核
ARM核手册(ARM920T)可查看指令结构
2. ARM工作模式(参考《ARM Architecture Reference Manual》ARM体系结构参考手册)
3. ARM寄存器
r13 充当SP(stack pointer)堆栈指针
r14 充当LR链接寄存器,保存寄存器返回地址,以及中断后的返回地址
r15 程序计数器PC指针
3.1 条件码标志
N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。条件码标志各位的具体含义如下表所示:
在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版本的扩展。
芯片 6410 210 2440
ARM核 arm11 A8 arm9
指令结构 armv6 armv7 armv4
芯片手册(S342440)中的Product Overview可查看ARM核
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,安卓 |
USER | usr | 普通应用程序运行的普通模式,Linux用户态程序运行在该模式下 |
FIQ | fiq | 快速中断模式 |
IRQ | irq | 普通中断模式 |
Superviso | svc | 保护模式,系统级运行模式,Linux内核运行于该模式下 |
Abort | abt | 异常模式,访问虚拟内存时用 |
Undefind | und | 未定义模式,执行非ARM指令时用 |
System | sys | 系统模式,ARMv4以上才有的模式 |
不分组的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 个 |
r14 充当LR链接寄存器,保存寄存器返回地址,以及中断后的返回地址
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 |
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标志位无定义 |
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 |
相关文章推荐
- ARM学习笔记3
- 蓝鸥Unity开发基础—— 实践课程控制台玩家Demo
- php curl文件上传兼容php5.0~5.6各版本
- 2.Math对象
- Git常用命令
- stack 模拟 queue
- Jmeter性能测试之如何写Java请求测试用例类
- <a>标签中使用js函数
- 1-1-5 安装集成开发环境Eclipse
- csu 1106 最优对称路径(最短路+记忆化搜索)
- 浅析iOS中视频播放的几种方案
- 蓝鸥Unity开发基础—— 实践课程控制台地图Demo
- Upgrade VMware vSphere ESXi 5.1 to 5.5 step by step guide
- jquery动态生成html代码 怎么 获取id 或 class
- Mysql 常用命令
- 1-1-4 链接器脚本
- $.post传JSON到后台及接收方法
- Poj1325 Machine Schedule 最大二分图匹配 匈牙利算法
- awk使用总结
- 3.通过js代码设置css样式