当前位置:首页 >> 英语 >>

第8课 ARM的异常中断处理


? 第8课 ARM的异常中断处理
? ARM技术交流网
? arm79@sina.com

主要内容
1、ARM中断的概述 2、中断的进入与退出 3、中断向量表举例

ARM体系的程序控制方式
1、通过PC+4/+2:正常程序的顺序执行 2、通过跳转指令:跳转到label或子程序处执行 3、通过异

常中断:跳转入中断服务程序

ARM体系异常中断的种类

ARM的向量表

向量表入口跳转的指令实现
1、指令B B 0xXXXX XXXX 2、使用PC跳转 MOV PC, #imme_value LDR PC, [PC + offset]

立即数有限制 offset有限制

异常中断的优先级

中断的进入与退出
1、中断的进入
(1)保存现场 (2)设置CPSR中的相应位 (3)设置LR (4)设置PC的值

对应的伪代码(复位异常中断)

中断的退出
1、通用寄存器的恢复 2、状态寄存器的恢复 3、PC的恢复
PC要返回到发生异常中断的下一条指令处指令(有时 候是返回到发生异常中断的指令继续执行)

SWI和未定义指令异常中断的返回
1、中断发生时,PC = PC + 8 2、返回的指令实现
MOVS PC, LR

3、有数据栈时候的指令实现:
STMFD SP!, {reglist, lr} … LDMFD SP!, {reglist, lr}

IRQ和FIQ的异常中断的返回
1、中断发生后,PC = PC + 12 2、中断返回的指令实现
SUBS PC, LR, #4

3、有数据栈时候的指令实现: SUBS LR, LR, #4
STMFD SP!, {reglist, lr} … LDMFD SP!, {reglist, lr}^

指令预取中止的异常中断的返回
1、中断发生后,PC = PC + 8 注意这时候是返回到异常指令的地方继续执行。

2、中断返回的指令实现
SUBS PC, LR, #4

3、有数据栈时候的指令实现: SUBS LR, LR, #4
STMFD SP!, {reglist, lr} … LDMFD SP!, {reglist, lr}^

数据访问中止异常中断返回
1、中断发生后,PC = PC + 12 注意这时候是返回到异常指令的地方继续执行。

2、中断返回的指令实现
SUBS PC, LR, #8

3、有数据栈时候的指令实现: SUBS LR, LR, #8
STMFD SP!, {reglist, lr} … LDMFD SP!, {reglist, lr}^

U-boot代码的中断向量表实现(1)
.globl _start _start: b ldr pc, ldr pc, ldr pc, ldr pc, ldr pc, ldr pc, ldr pc, reset _undefined_instruction _software_interrupt _prefetch_abort _data_abort _not_used _irq _fiq

U-boot代码的中断向量表实现(2)
_undefined_instruction: _software_interrupt: _prefetch_abort: _data_abort: _not_used: _irq: _fiq: .word undefined_instruction .word software_interrupt .word prefetch_abort .word data_abort .word not_used .word irq .word fiq

.balignl 16,0xdeadbeef

中断向量表的考虑
1、系统设计首先考虑预留向量表及中断服务 程序的空间。 2、最好先搬移代码,然后重定位向量表。 3、一般习惯把中断向量表放在地址低端

谢谢大家!!


相关文章:
异常及中断处理
例如:mcr p15, 0, r0, c12, c0, 0 1.复位异常当处理器的复位引脚有效时...第8课 ARM的异常中断处理... 18页 免费 第7章ARM异常中断处理及... 52页...
ARM异常中断机制
ARM9(以 S3C2410 为例)中断机制 ( 为例) 一、ARM 异常机制介绍 ARM9 处理...第 七章 ARM异常中断 暂无评价 87页 免费 第8课 ARM的异常中断处理... 18...
ARM处理器中断处理的理解
取出具体的中断处理函数的入口地址赋给 PC ;将 r8 存入[SP+8],下一步取出...;没有办法,ARM 把所有的中断都归纳成一个 IRQ 中断异常和一个 FIRQ 中断异常...
ARM中断类型及处理方式
教案正文( 一) 学院部门: 学院部门: 计算机系 任课教师: 任课教师:杨宗德 第 2 次课 周次 授课 题目 授课方式 第 9 周 第 6 章 ARM 异常中断处理及...
ARM异常中断学习总结
三、异常中断 1.ARM 处理器复位后,处理器硬件将进行如下操作: (1) 强制进入管理模式; (2) 强制进入到 ARM 状态; (3) 跳转到绝对地址 PC=0x00000000 出...
ARM的七种异常类型_图文
复位异常 (1)当内核的 nRESET 信号被拉低时,ARM 处理器放弃正在执行的指令,...因此当前 PC 的值为当前执行指令的地址+8 (即正确的中断返回地址+4) 因此 R14...
ARM的异常处理过程分析
改变处理器状态进入 ARM 状态;改变处理器模式进入相应 的异常模式;设置中断禁止位...我们知道在 ARM 架构里,PC 值指向当前执行指令的地址加 8 处,也就是说, 当...
多周期MPIS指令集设计
第8课 ARM的异常中断处理... 18页 免费 cpu设计 131页 免费 MIPS流水线CPU...综述:本设计选用了如下指令,基于此设计出了单周期 MIPS 处理器,并在单周期的...
ARM的中断实验
异常向量地 址处,一般存有中断服务子程序的地址,...但是,通常由于生产 ARM 处理器的各厂家都集成了很多...中断 EXTIN8~23 共用一个 中断控制器,外部中断 ...
异常中断处理
ARM异常中断处理概述 1) 在正常程序执行过程中,每执行一条 ARM 指令,程序...各异常中断的中短向量地址以及中断的处理优先级 中断向量地址 0x0 0x4 0x8 ...
更多相关标签:
arm异常中断一般处理 | arm中断处理过程 | arm 中断处理流程 | arm 中断处理 | arm的中断处理 | arm 异常处理 | arm的异常处理 | arm 中断 |