Interrupt Controller
2015-09-25 11:16
190 查看
1. 中断处理是程序执行流程(顺序执行,跳转执行,中断处理)之一,发生中断后,arm处理器在执行完当前指令后跳转到中断对应的中断处理程序处执行,中断处理程序执行完成后,又回到原来跳转处的下一条指令处开始接着执行。
2. 中断处理流程: (1)中断发生后,中断控制器给 cpu 发送中断请求。
(2)如果 cpu 能够响应中断,则将运行环境保存起来,跳到中断异常处进行执行中断处理。
(3)识别中断来源,跳到相应中断服务程序处执行。
(4)中断服务执行完成后,恢复之前的运行环境,返回到原来的程序处继续执行。
3. 中断控制器及其相关寄存器
(1) 由上图,中断相关寄存器对中断的管理有分类汇总的特点。
(2) 如果发生相应中断则在没有被INTMAK 和 INTSUBMAK屏蔽的前提下,SRCPND 和 SUBSRCPND 及 EINTPEND 和 INTPND中的对应位将被置1, cpu 通过EINTPEND 和 INTPND来确定是哪个中断发生了。
(3) 例如,如果ENT4中断发生了,则SUBSRCPND将被置1,如果在INTSUBMAK没有屏蔽的情况下,则SRCPND将被置1,如果在INTMAK没有屏蔽的情况下EINTPEND 和 INTPND中的对应位将被置1。
4. 中断模式(IRQ,FIQ)和中断优先级的设置。
5. 中断处理函数
声明时,需要将中断处理函数的地址写到中断向量的相应的位置处。中断处理函数需要清中断标志,并执行相应的操作。先清除 SRCPND再清除 INTPND 。
6. 中断发生后具体的跳转过程,以及中断处理完成后返回的具体过程,在各个过程中arm 自动完成的操作和需要手动编程完成的操作。
2. 中断处理流程: (1)中断发生后,中断控制器给 cpu 发送中断请求。
(2)如果 cpu 能够响应中断,则将运行环境保存起来,跳到中断异常处进行执行中断处理。
(3)识别中断来源,跳到相应中断服务程序处执行。
(4)中断服务执行完成后,恢复之前的运行环境,返回到原来的程序处继续执行。
3. 中断控制器及其相关寄存器
(1) 由上图,中断相关寄存器对中断的管理有分类汇总的特点。
(2) 如果发生相应中断则在没有被INTMAK 和 INTSUBMAK屏蔽的前提下,SRCPND 和 SUBSRCPND 及 EINTPEND 和 INTPND中的对应位将被置1, cpu 通过EINTPEND 和 INTPND来确定是哪个中断发生了。
(3) 例如,如果ENT4中断发生了,则SUBSRCPND将被置1,如果在INTSUBMAK没有屏蔽的情况下,则SRCPND将被置1,如果在INTMAK没有屏蔽的情况下EINTPEND 和 INTPND中的对应位将被置1。
4. 中断模式(IRQ,FIQ)和中断优先级的设置。
5. 中断处理函数
声明时,需要将中断处理函数的地址写到中断向量的相应的位置处。中断处理函数需要清中断标志,并执行相应的操作。先清除 SRCPND再清除 INTPND 。
6. 中断发生后具体的跳转过程,以及中断处理完成后返回的具体过程,在各个过程中arm 自动完成的操作和需要手动编程完成的操作。
相关文章推荐
- 告示:CSDN博客通道支持Windows Live Writer写blog离线好友
- Android是如何绘制View的
- Windows下的信号(Signal)
- 触发器UPDATE遇到一个问题
- crazyflie2.0_crazyflie-firmware_PARAM和LOG实现原理
- HDU 3277 Marriage Match III(中等,好题)[二分最大流]+拆点
- HeadFirst设计模式学习--策略模式(Strategy Pattern)
- Google Shell Style Guide
- 数据结构之线段树
- 最长上升子序列 O(nlogn)解法 (java)
- Google Shell Style Guide
- linux分享一:进程全攻略--守护进程(服务)
- 创建电话本
- phpcms v9 代码分析笔记1
- IPsec
- Linux中命令cat /proc/meminfo读出的内核信息进行解释
- Understanding LSTM Networks
- HTTP Status 404 - /project/deleteProjectReback/18
- Nginx——使用 Nginx 提升网站访问速度【转载+整理】
- php里input数组的应用