linux-kernel – 对于共享中断行,如何找到要使用的中断处理程序?
对于共享中断线,我可以有几个中断处理程序.内核将按顺序调用该特定共享行的所有处理程序.
我的问题是如何确定,有没有办法检查一个内存映射寄存器,告诉特定设备的状态或是否有其他硬件机制?处理程序如何知道相应的设备确实是发出中断的设备? 这些信息是通过设备和处理器中断线之间的中断控制器进行中继的吗? 解决方法内核将按顺序调用该特定共享行的所有处理程序.究竟.说Dev1和Dev2共享IRQ10.当为IRQ10生成中断时,将逐个调用在该行注册的所有ISR. 在我们的场景中,假设Dev2是产生中断的那个.如果首先注册Dev1的ISR,则首先调用它的ISR(即Dev1的ISR).在该ISR中,将验证中断状态寄存器的中断.如果没有设置中断位(这种情况,导致Dev2引发中断),那么我们可以确认Dev1没有产生中断 – 所以Dev1的ISR应该返回内核IRQ_NONE – 这意味着:“我没有处理那个中断“,所以内核继续下一个ISR(即Dev2的ISR),反过来,它确实会验证它的相应设备是否产生了中断,因此,这个处理程序应该处理它并最终返回IRQ_HANDLED – 这意味着:”我处理了这个”. 有关更多信息,请参阅返回值IRQ_NONE/IRQ_HANDLED. 处理程序如何知道相应的设备是否发出了中断? 通过仅读取中断状态寄存器. 这些信息是通过设备和处理器中断线之间的中断控制器进行中继的吗? 我不确定这个.但操作系统将负责根据ISR的返回值调用ISR. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在python中使用路径/usr/share/pyshared有什么用
- 从Linux终端管理Windows Powershell
- linux – 在64位机器上运行32位二进制文件
- linux-kernel – Linux:使用U-Boot和Flat Image
- virtualbox – 虚拟框中的全屏Arch Linux
- linux-kernel – 在copy_from_user()声明的头文件
- LINUX实战:Linux下正确使用YUM和RPM安装软件
- linux – sqlplus:加载共享库时出错:libsqlplu
- LINUX教程:使用nmcli命令配置网络
- linux – 创建没有mount的虚拟软盘映像?