博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中断小笔记
阅读量:6502 次
发布时间:2019-06-24

本文共 642 字,大约阅读时间需要 2 分钟。

1.中断处理函数可以被其他中断线上的中断处理函数所中断

2.如果中断线是共享的,那么当该中断线上有中断发生时,cpu将响应该中断,并依次调用该中断线上的所有已注册的中断处理函数,每个中断处理函数将进行判断,是否是自己对应的硬件设备发生的中断,不是则返还IRQ_NONE,否则返回IRQ_HANDLE,并响应该中断。
3.在内核中执行do_IRQ()响应中断,首先判断该线上是否有中断处理程序,然后在该线上运行所有的中断处理程序。
4.总的来说中断是属于大家的,所有在同一个中断号内的需要处理的例程(同一中断号内的处理例程可能有多个)都将调用这个中断处理程序,然而在释放中断处理程序的最后一个参数中的dev_id(注册中断函数中也有这个参数,它的作用是为后来删除的时候提供唯一标志)来区分到底要删除那个处理程序.而确定到底是那个设备的则通过读取硬件设备的状态寄存器,以便中断处理程序进行检查
5.共享一个中断线的中断处理程序被挂在一个与中断线有关的队列中,当中断发生时,中断处理程序负责循环执行相应队列中的action,而与设备对应的处理程序会检测是不是它要服务的设备产生的中断,如果不是马上返回,如果是就接着进行服务。每一IRQ都于一个list相关联,如果IRQ是共享的,那么list里会有多个action,每一个action代表已经注册到该IRQ上的ISR。所以所有这些ISR都被执行了一次。所以,为了区分中断发生在什么设备,ISR通常都需要查询设备状态。
6.中断处理函数不能阻塞

转载地址:http://wlmyo.baihongyu.com/

你可能感兴趣的文章
(原创)Linux下查看系统版本号信息的方法
查看>>
oracle
查看>>
我也要谈谈大型网站架构之系列(2)——纵观历史演变(下)
查看>>
大话设计模式(Golang) 二、策略模式
查看>>
使用PostgreSQL 9.6 架设mediawiki服务器
查看>>
数据库服务器硬件对性能的影响
查看>>
LVM
查看>>
php 几个比较实用的函数
查看>>
(译)OpenGL ES2.0 – Iphone开发指引
查看>>
@RestController 与 @RequestMapping
查看>>
黑马程序员.bobo.DAY.1
查看>>
Unity shader 官网文档全方位学习(二)
查看>>
pbrun
查看>>
浏览器加载和渲染网页顺序
查看>>
深入剖析Android系统试读样章
查看>>
测试用例出错重跑--flaky插件
查看>>
yaf的安装
查看>>
比较java与C++的不同
查看>>
Twitter Storm入门
查看>>
使用scikit-learn进行文本分类
查看>>