中断

来源:互联网 发布:淘宝618是什么时候 编辑:程序博客网 时间:2024/04/28 17:26

本周任务是中断,let's start from the ABC.

中断控制器收到中断请求消息,通知CPU —> CPU保存当前环境,调ISR中断服务程序处理 —> ISR读取,识别中断类型 —> 清除已处理中断,进入新的中断 —> 恢复被中断程序

 

申请和释放中断,内核中提供request_irq( )和free_irq( )函数。

申请IRQ:

参数含义依次如下:  1.irq申请的中断号。

                           2.void (*handler)( )函数指针——中断处理函数,当irq这个中断发生,handler函数便得到调用。

                           3.irqflags中断标志位,分快速、慢速和共享中断三种。如果设置了SA_INTERRUPT,即中断处理程序是快速处理程序,其调用时屏蔽所有中断。

                           4.devname相应中断的设备名。

                           5. void *dev_id 共享中断使用,因为共享的原因,使得一条中断信号线上可能有多个设备。释放中断时,我们需要清楚的知道具体是哪个设备的中断处理完成,具体释放哪个设备的中断。dev_id的唯一性避免同中断信号线上其他设备无法使用中断,无法正常工作。

                           

 

原创粉丝点击