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

第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、一般习惯把中断向量表放在地址低端

谢谢大家!!


相关文章:
ARM的异常处理过程分析
改变处理器状态进入 ARM 状态;改变处理器模式进入相应 的异常模式;设置中断禁止位...我们知道在 ARM 架构里,PC 值指向当前执行指令的地址加 8 处,也就是说, 当...
异常中断处理
ARM异常中断处理概述 1) 在正常程序执行过程中,每执行一条 ARM 指令,程序...各异常中断的中短向量地址以及中断的处理优先级 中断向量地址 0x0 0x4 0x8 ...
ARM异常中断机制
ARM9(以 S3C2410 为例)中断机制 ( 为例) 一、ARM 异常机制介绍 ARM9 处理...第 七章 ARM异常中断 暂无评价 87页 免费 第8课 ARM的异常中断处理... 18...
ARM的七种异常类型_图文
复位异常 (1)当内核的 nRESET 信号被拉低时,ARM 处理器放弃正在执行的指令,...因此当前 PC 的值为当前执行指令的地址+8 (即正确的中断返回地址+4) 因此 R14...
异常及中断处理
例如:mcr p15, 0, r0, c12, c0, 0 1.复位异常当处理器的复位引脚有效时...第8课 ARM的异常中断处理... 18页 免费 第7章ARM异常中断处理及... 52页...
ARM中断类型及处理方式
教案正文( 一) 学院部门: 学院部门: 计算机系 任课教师: 任课教师:杨宗德 第 2 次课 周次 授课 题目 授课方式 第 9 周 第 6 章 ARM 异常中断处理及...
ARM7异常处理所涉及寄存器的变化
ARM 处理器硬件约定异常发生时, 处理器按照异常的种类自动地转移表 2-8 所列...而中断处理程序提供的服务则不是为了当前进程的; 中断只能在指令之间被响应,而...
关于ARM核异常与中断处理机制研究
关于ARM异常中断处理机制研究 一.ARM 处理器异常及其对应的模式 当一个异常发生时, ARM 处理器总是切换到 ARM 状态(即非 Thumb 状态)。 Thumb 指令集没...
ARM中断控制器
ARM 处理器内核具有两个中断输入:向量中断请求(IRQ)和快速中断请求 (FIQ)。...ARM模式和异常中断 1页 免费 arm中断设置过程 2页 免费 第8ARM系统中...
试验八 ARM 异常中断试验
按照大课所讲的知识。ARM 处理能够对所“感知”到的“异常”进行处理 的秘密在于其中断向量表(见课件第 13 页) : 地址 0x00 0x04 0x08 异常 复位 未定义...
更多相关标签:
arm异常中断一般处理 | arm中断处理过程 | arm 中断处理流程 | arm处理器的中断有 | arm中断处理 | arm嵌入式中断处理 | arm异常处理 | arm异常处理过程 |