中断处理:原理、探测与处理程序实现
1. 中断资源统计
在深入探讨中断处理之前,先来看一些中断资源的统计信息:
| 中断号 | 计数1 | 计数2 | 描述 |
| ---- | ---- | ---- | ---- |
| 80 | 4 | 2 | IO - SAPIC - edge keyboard |
| 89 | 0 | 0 | IO - SAPIC - edge PS/2 Mouse |
| 239 | 5606341 | 5606052 | SAPIC timer |
| 254 | 67575 | 52815 | SAPIC IPI |
| NMI | 0 | 0 | 不可屏蔽中断 |
| ERR | 0 | 无 | 错误中断 |
这些统计信息能让我们对系统中不同类型中断的发生频率有一个初步的了解。
2. 自动检测中断号
在驱动程序初始化时,确定设备将使用的中断请求(IRQ)线是一个关键问题。驱动程序需要这个信息来正确安装中断处理程序。虽然可以要求用户在加载驱动时指定中断号,但这不是一个好做法,因为大多数用户并不清楚这个号码。因此,自动检测中断号是驱动程序可用性的基本要求。
2.1 基于默认行为的检测
有些设备具有很少改变的默认行为。以并行端口的 short 驱动为例,如果 short_irq 未指定(小于 0),则根据 short_base 的值来分配默认的中断号:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



