1 / 62
文档名称:

ARM体系结构(2).ppt

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

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

分享

预览

ARM体系结构(2).ppt

上传人:yjjg0025 2015/11/6 文件大小: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)