(关于本章节笔记的详细实验代码,在这里https://github.com/elvinsys/arm_tq2440/tree/master/1_uboot/1-12.interrupt)
一、 中断处理流程
1. CPU工作过程中,需要与外设进行交互的方式分为:
轮询方式:CPU不断地查询设备的状态,该方式实现简单,但CPU利用率低,而且不适合多任务系统。
中断方式:CPU告知硬件开始一项工作后,就去做别的事了,当硬件王城该项工作后,像CPU发送一个信号。
2. 中断的生命周期
2.1 中断信号的产生(如串口控制器——中断源)
2.2 中断控制器
2.3 中断信号处理(CPU)
3. 中断源
在中断生命周期中,中断源负责产生中断信号,S3C2440包含60个中断源(参考芯片手册中“Interrupt Sources”)
4. 中断过滤
4.1 如果中断源是子中断(如:TX0),当中断产生时,使得SUBSRCPND相应位,置1.
4.2 在SUBMASK的相应位,置1时,该中断被屏蔽
4.3 若子中断没被SUBMASK屏蔽,或其他非子中断产生,则SRCPND相应位,置1
5. 中断处理
5.1 非向量方式,例如S3C2440
5.2 向量方式,例如S3C6410,S5PV210
5.3 非向量方式