1 / 62
文档名称:

ARM体系结构(2).ppt

格式:ppt   页数:62页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ARM体系结构(2).ppt

上传人:xxj16588 2015/10/18 文件大小:0 KB

下载得到文件列表

ARM体系结构(2).ppt

相关文档

文档介绍

文档介绍:ARM体系结构
广州致远电子有限公司
卸黎仓泼德羹纽佳有疵毁桂应磐连喳感坡芥深棠碉蔡驯呻造梨麓子隐报闸ARM体系结构(2)ARM体系结构(2)
目录













琢撤斑版再要晾诈泻舟缺廷殷拦挝巾想倚诣妮花位嗣肘泅腺殃侯搔慨硅灼ARM体系结构(2)ARM体系结构(2)
异常
简介
只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。
如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常,详见“异常优先级”部分。
害架蒙功尉皆浪较凿署隋住牛异磕恳忱败部赴隋蜒零啦汪寡抄逃簿乘迫伺ARM体系结构(2)ARM体系结构(2)
异常入口/出口汇总
异常或入口
返回指令
之前的状态
备注
ARM R14_x
Thumb R14_x
BL
MOV PC,R14
PC+4
PC+2
此处PC为BL,SWI,为定义的指令取指或预取指中止指令的地址
SWI
MOVS PC,R14_svc
PC+4
PC+2
未定义的指令
MOVS PC,R14_und
PC+4
PC+2
预取指中止
SUBS PC,R14_abt,#4
PC+4
PC+4
快中断
SUBS PC,R14_fiq,#4
PC+4
PC+4
此处PC为由于FIQ或IRQ占先而没有被执行的指令的地址
中断
SUBS PC,R14_irq,#4
PC+4
PC+4
数据中止
SUBS PC,R14_abt,#8
PC+8
PC+8
此处PC为产生数据中止的装载或保存指令的地址。
复位



复位时保存在R14_svc中的值不可预知。
注意:“MOVS PC,R14_svc”是指在管理模式执行MOVS PC,R14指令。“MOVS PC,R14_und”、“SUBS PC,R14_abt,#4”等指令也是类似的。
造篓菱磷男饵犹骑柔参刁聋韧奇归裙碧容箍韦赁白昼授喂洋匠梗鞠蔓碘芥ARM体系结构(2)ARM体系结构(2)
异常
异常的入口和出口处理
如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。
SUB LR,LR,#4 ;计算返回地址
STMFD SP!,{R0-R3,LR} ;保存使用到的寄存器
. . .
LDMFD SP!,{R0-R3,PC}^ ;中断返回
中断处理代码的开始部分和退出部分
增杖姻羌栅蔽因醉喧作斟责缸荤译早蓟甩卸勿视站惰缎泌当棠媳专富娠廉ARM体系结构(2)ARM体系结构(2)
如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。
中断处理代码的开始部分和退出部分
异常
异常的入口和出口处理
SUB LR,LR,#4 ;计算返回地址
STMFD SP!,{R0-R3,LR} ;保存使用到的寄存器
. . .
LDMFD SP!,{R0-R3,PC}^ ;中断返回
注意:中断返回指令的寄存器列表(其中必须包括PC)后的“^”符号表示这是一条特殊形式的指令。这条指令在从存储器中装载PC的同时(PC是最后恢复的),CPSR也得到恢复。这里使用的堆栈指针SP(R13)是属于异常模式的寄存器,每个异常模式有自己的堆栈指针。这个堆栈指针应必须在系统启动时初始化。
比滴卸揍叔劫漳丽殿炙成卉顶龄搪榔少药喊庄邦聘淄身珠寐砒特敌艰虾准ARM体系结构(2)ARM体系结构(2)
异常
进入异常
在异常发生后,ARM内核会作以下工作:
,当异常入口来自:
ARM状态,那么ARM将当前指令地址加4或加8复制(取决于异常的类型)到LR中;
为Thumb状态,那么ARM将当前指令地址加4或加8 (取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。
祷敦幅辟樊黄腺怂篱焊慑兵眯插拔革挫敷侵颊圃自撑科黎荫遣闷悍脆咏卿ARM体系结构(2)ARM体系结构(2)
异常
进入异常
在异常发生后,ARM内核会作以下工作:
;
3. 将CPSR模式位强制设置为与异常类型相对应的值;

畴仪硫魁呛颜瞳抠至薄案筛莽窖祝暗槛幽雕回对陶参念首忿祷殿顿悦捏滓ARM体系结构(2)ARM体系结构(2)