推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

ARM异常中断以及对ARM异常返回地址的分析

更新时间:2019-09-15 09:37:40 大小:98K 上传用户:杨义查看TA发布的资源 标签:arm 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

文档为ARM异常中断以及对ARM异常返回地址的分析详解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,

部分文件列表

文件名 大小
ARM异常中断以及对ARM异常返回地址的分析.pdf 98K

部分页面预览

(完整内容请下载后查看)
1ARM7 异常的分类  
异常类型  
具体含义  
复位(Reset)  
未定义指令  
(Undefined)  
软件中断  
处理器的复位电平有效时,产生复位异常  
ARM 处理器或协处理器遇到不能处理的指令时生未定义的指令异  
常,可使用该异常进行软件仿真  
该异常由执行 SWI 指令产生,可用于用户模式下的程序调用特权操作指  
令。可使用该异常机制实现系统功能调用。  
(SWI)  
指令预取中止  
处理器试图去执行一条被标记为预取无效的指令时,将产生指令预取中  
(Prefetch Abort) 止异常  
数据中止  
(Data Abort)  
外部中断请求  
( IRQ)  
它由 Load/Store 产生,若处理器数据访问指令的地址不存在,或者是地  
址不允许当前指令访问时,产生数据中止异常  
当处理器的外部中断请求引脚有效CPSR 中的 I 位为 0 IRQ  
异常。系统的外设可通过该异常请求中断服务。  
当处理器的快速中断请求引脚有效CPSR 中的 F 位为 0 FIQ  
异常。  
快速中断请求  
( FIQ)  
2、各异常分析  
举个小例子,下面是一段 ARM 汇编代码: (后面的返回地址分析中将会用到此图)  
地址  
指令  
0x3000  
0x3004  
0x3008  
0x300C  
MOV r3,#1  
MOV r0,#0  
MOV r1,#1  
MOV r2,#2  
2、 各异常发生时处理器的动作以及返回地址的计算  
复位异常:  
R14_svc  
=
=
UNPREDICTABLE value  
UNPREDICTABLE value  
SPSR_svc  
if high vectors  
PC = 0xFFFF0000  
Else  
PC = 0x00000000  
复位异常是没有返回地址的,所以 R14,SPSR 寄存器中的值是不确定的,复位后程序从  
0x00000000 或者是 0xFFFF0000 处开始执行。  
未定义指令异常:  
发生原因: 当 ARM 处理器执行协处理器指令时,需等待外部协处理器响应后才  
能够执行指令,如果没有协处理器响应,未定义指令异常中断出现。  
If the ARM processor executes a coprocessor instruction, it waits for any external  
coprocessor to acknowledge that it can execute the instruction. If no coprocessor responds, an  
Undefined Instruction exception occurs// 摘自 ARM Arcitecture Reference Manual(1)  
P57  
处理器动作伪代码:  
R14_und  
=
address of next instruction after the Undefined instruction .  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载