一,嵌入式linux内核中断的理解
1, 计算机为什么有中断机制
由于外设的处理速度远远慢于CPU的处理速度 为了保证CPU和外设的数据通信正确,一般呢首先可能考虑使用轮询机制(轮询就是死等),如果轮询的时间过程长,会大大降低CPU的利用率(CPU不能干其他的事情,只能等待当前这个硬件)此时还可以考虑使用中断机制,当CPU发现设备没有准备就绪, CPU干其他的事情(比如做一个算法)一旦外设准备好了,外设会给CPU发送一个中断电信号 ,CPU一旦接收到了这个中断电信号,CPU停止当前的 任务,转去处理外设,处理完毕以后,再去接着执行原先被打断的任务,大大提高了CPU的利用率!以CPU读取UART数据为例进行阐述!
2,中断的硬件连接:外设产生的中断电信号,不会直接给CPU,而是这个中断电信号首先要经过中断控制器,经过中断控制器的一番判断以后,中断控制器最终决定这个中断信号是否发送CPU
中断控制器的功能:
A.能够使能或者禁止某个外设中断
B.能够设置外设中断的优先级
C.能够设置外设中断将来以什么样的方式(IRQ/FIQ)发送给CPU
D.能够设置外设中断的有效触发电信号
高电平触发中断
低电平触发中断
上升沿触发中断
下降沿触发中断
双边沿触发中断
3,.中断的处理过程
明确:中断本质就是一种异常以按键为例,谈谈中断的整个处理过程: