目录
一、中断的概念
中断是指计算机运行过程中, 出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
二、CPU处理事情的方式
2.1 轮询方式
不断查询是否有事情需要处理,如果有则处理。由于需要不断的轮询,效率较低。
2.2 中断方式
当需要CPU处理的时候,产生一个信号,打断CPU正在做的事情,让CPU处理另一件事情,等另一件事情处理完以后,回到打断之前的地方接着执行。中断处理需要注意的地方
- 中断打断了其他程序的执行,所以中断处理的时候需要尽可能的快,不能在中断处理过程中做耗时很长的事情。
- 中断打断了其他程序的执行,所以在中断处理的时候,需要先保存现场(CPU的状态和CPU内部寄存器的值),在中断处理结束的时候,需要恢复现场。
三、ARM核中断处理过程
在ARM核中,中断也是一种异常,与处理异常的过程类似。
3.1 异常处理
3.2 IRQ异常指令流水线
IRQ异常举例
四、ARM核中断处理过程分析
五、中断相关的概念
5.1 中断源
产生中断的源头
5.2 中断号
是SOC芯片厂家对SOC芯片内部中断源的编号
SOC芯片内部中断源表明芯片在设计时已经规定了产生中断的设备
5.3 中断处理函数
中断产生之后,需要调用的函数
5.4 中断控制器
控制中断的优先级、中断是否允许被处理
5.5 内部中断和外部中断
5.5.1 内部中断
SOC芯片内部控制器产生的中断,例如:GPT定时器
5.5.2 外部中断
SOC芯片外部管脚通过电平触发产生的中断
- 高电平触发
- 低电平触发
- 上升沿触发
- 下降沿触发
- 双边沿触发