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

第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复习题
MMU D. RAM 8.异常优先级最高的是( A ) A.复位 B 数据中止 C FIQ D ...用户模式_ 用户模式 7.ARM 处理的中断有两种处理模式, 分别为___中断 __...
ARM习题答案
例如响应一个来自外设的中断。 在处理异常之前,ARM7TDMI 内核保存当前的处理器...列计数递减 Stop 第 8ARM 汇编语言与嵌入式 C 混合编程 1.严格按照嵌入...
ARM的中断实验
同时,它们都属于 ARM 的异常模式,当一旦有中断发生...八、实验数据实验板上的 LED1 和 LED2 灯交替...第三讲 嵌入式 中断处理... 31页 1下载券 ARM第...
ARM理工学院试卷 参考答案
ARM 处理器中优先级别最高的异常为(E断 [A] FIQ [B] SWI [C] IRQ [D...#8] ;[R1+8]=R0 3、用 C 语言写出开外部中断 EINT19 和清除外部中断 ...
异常中断处理
ARM异常中断处理概述 1) 在正常程序执行过程中,每执行一条 ARM 指令,程序...各异常中断的中短向量地址以及中断的处理优先级 中断向量地址 0x0 0x4 0x8 ...
异常及中断处理
例如:mcr p15, 0, r0, c12, c0, 0 1.复位异常当处理器的复位引脚有效时...第8课 ARM的异常中断处理... 18页 免费 第7章ARM异常中断处理及... 52页...
嵌入式系统原理第二章习题
通过这两种指令,程序将跳转到相应的异 常中断处理程序处执行。 17 如果 FIQ、IRQ 和第 3 个异常(不是复位)同时发生,ARM 应如何处理? 如果第 3 个异常是数据...
深入探讨ARM CORTEX—M3处理器中断异常系统的使用
深入探讨 ARM CORTEX—M3 处理中断异常系统的使用 【摘要】本文介绍了 ARM ...满足本进程最大需求量, 还需要额外留出 8 个字,用于容纳第一级中断时被保护...
ARM中断控制器
ARM 处理器内核具有两个中断输入:向量中断请求(IRQ)和快速中断请求 (FIQ)。...ARM模式和异常中断 1页 免费 arm中断设置过程 2页 免费 第8ARM系统中...
ARM练习题
ARM 有 37 个寄存器, (1)未分组寄存器:R0-R7,共 8 个; (2)分组寄存器 ...6. ARM 处理器中优先级别最高的异常为 RESET,FIQ,IRQ 异常可以用来相应中断 ...
更多相关标签: