arm概述及其基本编程模型
arm体系结构的版本及命名方法
arm体系统构的6个版本的特点
arm体系的变种
1 thumb指令集(t变种)
2 长乘法指令(M变种)
3 增强型dsp指令(E变种)
4 java加速器jazelle(J变种)
5 arm媒体功能扩展(SIMD变种)
arm/thumb体系版本的命名格式
1 字符串ARMv
2 ARM指令的版本号 1-6
3 表示变种的字符 版本4之后M变种成为标准功能,不需要列出来
4 使用x表示排除某种写功能
arm处理器系列
arm7
arm9
arm9e
arm920T ARM922T ARM9440T
arm10e
securCore
intel的Xscale
intle的StrongARM
ARM处理器模式
7种运行模式
用户模式(User,usr) 正常程序执行的模式
快速中断模式(FIQ,fiq) 用于高速数据传输和通道处理
外部处理中断模式(IRQ,irq) 用于通常的中断处理
特权模式(Supervisor,sve) 供操作系统使用的一种保护模式
数据访问中止模式(Abort,abt) 用于虚拟存储及存储保护
未定指令中上模式(Undefine,und) 用于支持通过软件方针硬件的协处理器
系统模式(System,sys) 用于运行特权级的操作系统任务
各种处理模式下的寄存器
工作模式可以通过软件改变,也可以通过外部中断或异常处理改变
用户模式以外的模式称为非用户模式,特权模式(privileged modes)
用户模式和系统模式以外的模式称为异常模式(exception modes)
arm寄存器介绍
arm共有37个寄存器
31个通用寄存器
分为以下三类:
未备份寄存器(the unbanked registers) r0-r7
指的都是同一个物理寄存器
任何采用通用寄存器的应用的场合都可以使用
备份寄存器(the banked registers) r8-r14
r8-r12每个寄存器对应两个不同的物理寄存器
r13-r14每个寄存器对应6个不同的物理寄存器,一个是用户模式和系统模式共用,另外5个对应于其他5种处理模式,使用R13_<mode>来区分物理寄存器
mode可以是以下几种模式:usr svc abt und irq和fiq
r13常用作栈指针sp
r14又被称为连接寄存器lr,两种特列的作用
存入当前程序的返回地址
示例代码:
MOV PC ,LF
BX LR
在子程序入口使用下面的指令将PC保存到栈中
STMFD SP! ,{<REGISTERS>,IR}
子程序返回
LDMFD SP!,{<gefisters>,PC}
当异常中断发生时,设置成该异常模式将要返回的地址
程序计数器PC r15
pc 指向当前指令的下两条指令的地址,第0位和第1位总为0
尽量避免使用STR/STM指令来保存R15
6个状态寄存器
CPSR(当前状态寄存器),可以在任何处理模式下被访问
每一个处理模式下都有一个物理状态寄存器(用户模式和异常中断模式除外),SPSR(备份程序状态寄存器),在特定的异常驻中断发生时,存放当前状态寄存器的内容.
cpsr的格式如下:
31 30 29 28 27 26 7 6 5 4 3 2 1 0
N Z C V Q DNM(RAZ) I F T M4 M3 M2 M1 M0
条件标志位
N(negative) z(zero) c(carry) v(overflow)
arm指令根据cpsr中的条件标志位来选择性的执行,
影响条件标志位的指令
比较指令 cmp cmn teq tst
算术指令和逻辑指令的目标寄存器不是r15时
msr指令可以向cpsr/spsr中写入新值
ldm指令的变种可以将spsr的值复制到cpsr中
一些带"位设置"的算术和逻辑指令的变种
Q标志位
用于指示增强的dsp指令是否发生了溢出
cpsr的bit[27]
spsr的bit[27]
arm v5以前或非e系列的处理器,q标志位没有被定义
cpsr中的控制位
cpsr的低8位I F T M[4:0]
中断禁止位
当I=1时禁止IRQ中断
当F=1时禁止FIQ中断
T控制位用于控制指令的执行状态(说明本指令是arm指令还是thumb指令)
arm v4 t系列
T=0 表arm指令
T=1 表thumb指令
arm v5 非t系列
t=0 表arm指令
t=1 表强制下一条执行的指令产生未定义指令中断
M控制位 控制处理器模式
M[4:0] 处理器模式 可以访问的寄存器
0b10000 user pc r14-r0 cpsr
0b10001 fiq pc r14_fiq-r8_fiq r7-r0 cpsr spsr_fiq
0b10010 irq pc r14_irq-r13_irq r12-r0 cpsr spsr_irq
0b10011 supervisor pc r14_svc-r13_svc r12-r0 cpsr spsr_svc
0b10111 abort pc r14_abt-r13_abt r12-r0 cpsr spsr_abt
0b11011 undefined pc r14_und-r8_und r12-r0 cpsr spsr_und
0b11111 system pc r14-r0 cpsr
arm体系的异常中断
arm体系有三种方式控制程序的执行流程
1 正常程序执行过程中,每执行一条arm指令,程序计数寄存器(pc)的值加4个字 节;执行一条thumb指令,加两个字节
2 通过跳转指令,跳到特定的地址标号处执行,或特定子程序执行,
b指令执行跳转操作
bl指令执行跳转,保存子程序的返回地址
bx指令执行跳转,根据目标地址的最低位可以将程序状态切换到thumb状态
blx是以上两个指令的叠加
- 浏览: 249469 次
- 性别:
- 来自: 济南
相关推荐
ARM概述及其编程模型PPT学习教案.pptx
ARM概述及其编程模型实用教案.ppt
ARM概述及其编程模型PPT教学课件.pptx
ARM微处理器概述与编程模型
汇总了在达内培训学习ARM的过程中的资源,
ARM 汇编学习笔记 很好。学好嵌入式,各行各业都用到。
菜鸟的ARM学习笔记proteus仿真
ARM微处理器的编程模型
菜鸟的ARM学习笔记,通过一些例程的学习,掌握ARM的基本编程
ARM处理器的编程模型和arm处理器结构详解. ARM处理器的编程模型和arm处理器结构详解.
ARM 学习笔记
嵌入式硬件的基本组成,嵌入式系统的分类,2.2.2.1 ARM编程模型1-内存空间和数据,2.2.2.2 ARM编程模型2-状态模式和寄存器,2.2.2.3 ARM编程模型3-1-指令集概述,2.2.2.3 ARM编程模型3-2-ARM v4T指令集,2.2.2.3 ARM...
1,安装VMware-tool与实现文件共享;...6,烧写第一个程序到land flash;7,使用autotools自动生成Makefile;8,虚拟机上挂载u盘;9,虚拟机中linux配置串口;10,制作文件系统映象;11,自动生成make文件
ARM开发详解全集.rar 第1章 ARM微处理器的概述.doc 第2章 ARM微处理器的编程模型.pdf 第3章 ARM微处理器的指令系统.doc 第四章 ARM程序设计基础.doc ... 嵌入式UCLINUX及应用开发.pdf-Detailed Complete Works of ...
文档介绍了引言,1ARM学习笔记之中间件的概念,2ARM学习笔记之中间件的分类,3 ARM学习笔记之主流中间件技术平台,4ARM学习笔记之中间件技术的发展趋势,5 小结
ARM编程模型ARM编程模型ARM编程模型
ARM学习笔记汇编.pdf
ARM学习笔记
华清远见ARM接口编程学习笔记