中断处理流程深度剖析
1.中断概念
CPU在工作的过程中,经常需要与外设进行交互,交互的方式包括‘轮询方式’,‘中断方式’。
1.轮询方式:
CPU不断地查询设备的状态,该方式实现简单,但是CPU的利用率低,不适合多任务系统。
2.中断方式:
CPU告知硬件开始一项工作后,就去做别的事了,当硬件将这件工作做完就会想CPU发送一个信号,告知它已经完成了工作。
举一个例子描述两种方式:假如现在CPU要通过串口发送两组数据,而串口发送一组数据的需要的时间为3秒。轮询方式:串口在发送数据的3秒时间内,CPU每隔一段等待时间查询串口状态,期间只做了‘等待‘以及‘查询’两件事,利用率低;中断方式:CPU通知串口发送数据,然后转向处理其他事,当串口发送完数据就会向CPU发送一个中断信号通知CPU。
2.中断处理流程
1.非向量中断:
2.向量中断:
总结:非向量中断与向量中断的不同在于:
在发生了非向量中断时,有统一的中断入口,并且要判断中断源;
在发生了向量中断时,CPU直接跳转到用户设置好的中断处理程序处,无需判断中断源,因此,与非向量中断相比,向量中断更加简单方 便。