当前位置: 技术问答>linux和unix
关于《LINUX设备驱动程序 第三版》里面的中断部分的问题
来源: 互联网 发布时间:2016-06-09
本文导语: 《LINUX设备驱动程序 第三版》的第十章中断处理中,就为什么要禁止中断举了一个plip网络接口的例子,但是鉴于本人愚笨,不太能看清楚,归纳了以下几个问题请高手指教: 1.中断处理的时候(或者说是中断上半部)为什...
《LINUX设备驱动程序 第三版》的第十章中断处理中,就为什么要禁止中断举了一个plip网络接口的例子,但是鉴于本人愚笨,不太能看清楚,归纳了以下几个问题请高手指教:
1.中断处理的时候(或者说是中断上半部)为什么要关闭中断?!
2.以上所关闭的中断是单个中断还是所有中断?
3.LDD3中第274页讲到“如果要禁用所有中断...使用local_irq_save或local_irq_disable”,但是后面又说“在2.6内核中,没有办法全局禁用整个系统的所有中断。......”这两句话有什么怎么理解啊?!
|
1.中断处理的时候(或者说是中断上半部)为什么要关闭中断?!
编写中断处理程序时不用考虑重入问题,极大的减小了中断处理程序的编写难度。
2.以上所关闭的中断是单个中断还是所有中断?
关闭当前中断线的单个中断。(也有例外,快速中断-时钟中断 关闭所有的)
3.LDD3中第274页讲到“如果要禁用所有中断...使用local_irq_save或local_irq_disable”,但是后面又说“在2.6内核中,没有办法全局禁用整个系统的所有中断。......”这两句话有什么怎么理解啊?!
我想应当指:local_irq_disable关闭当前CPU的中断,但对于其他CPU就没有办法了。
编写中断处理程序时不用考虑重入问题,极大的减小了中断处理程序的编写难度。
2.以上所关闭的中断是单个中断还是所有中断?
关闭当前中断线的单个中断。(也有例外,快速中断-时钟中断 关闭所有的)
3.LDD3中第274页讲到“如果要禁用所有中断...使用local_irq_save或local_irq_disable”,但是后面又说“在2.6内核中,没有办法全局禁用整个系统的所有中断。......”这两句话有什么怎么理解啊?!
我想应当指:local_irq_disable关闭当前CPU的中断,但对于其他CPU就没有办法了。