此文档最初托管在 ETHZ。它仍然 在 Wayback 存档中,根据 ETH 许可证.
多个工业标准体系结构 (ISA) 设备无法共享 ISA IRQ(串行端口除外);但是,多个 PCI 设备可以共享一个 PCI IRQ。在使用 PCI 总线的计算机上,16 个标准 IRQ 可以被编程为 PCI 或 ISA 模式。一个 IRQ 无法同时被编程为两种模式。分析了 IRQ 分配冲突,并讨论了解决方法。
IRQ | 被使用 | 模块 |
---|---|---|
0 (F) (S) | 系统计时器 | 内核 |
1 (F) (S) | 键盘控制器 | 输入 |
2 (F) | 可编程中断控制器 - 重新映射到 IRQ9 | 内核 |
3 | 通常是 COM2。通常与 COM4 共享。 | V24 |
4 | 通常是 COM1。通常与 COM3 共享。 | V24 |
5 | 备用。通常是 LPT2。 | |
6 (F) | 软盘控制器 | 软盘 |
7 | 备用。通常是 LPT1。 | |
8 (F) (S) | 系统 CMOS/实时时钟 | 内核 |
9 (F) | 备用 | |
10 | 备用 | |
11 | 备用 | |
12 (F) | PS/2 鼠标端口 | 输入 |
13 (F) (S) | 在奔腾机器上备用。对于旧处理器:浮点运算单元 (FPU) 387 兼容。 | 内核 |
14 (D) | 主 IDE 控制器 | ATADisks |
15 (D) | 次级 IDE 控制器 | ATADisks |
(F) 固定,硬编码
(D) 由系统本身动态评估
ATADisks.Mod - 在 KernelLog 中确认
Adaptec7.Mod - 在 KernelLog 中确认
Net3Com509.Mod - 在 KernelLog 中确认
NetNe2000.Mod - 不
UsbUhci.Mod - 在 KernelLog 中确认
Sound.Mod - 不
(S) 仅供系统使用
通过 Oberon.Text 将 IRQ 传达给系统
必须在 Sound.Audio 部分指定声卡的 IRQ。预设为 7。
必须在 Sound.CDAtapi 部分指定 Atapi CD-ROM 的 IRQ。预设为 15。
必须在 Sound.CDMitsumi 部分指定 Mitsumi CD-ROM 的 IRQ。预设为 10。
分配给 PCI 和 AGP 设备的 IRQ 可以通过执行 PCI 分析器命令 PCITools.Scan 来确定。
有关 IRQ 的详细讨论,请参阅 IRQ 详细信息按编号.
以下是一些关于如何分配有限数量的 IRQ 的一般想法。
- 列出组件所需的 IRQ。首先考虑 ISA 遗留设备,因为它们可能需要设置跳线,并且需要打开机箱。
- 如果您使用的是 PnP 主板,请进入系统设置并检查“PnP OS 已安装”是否已设置。如果是,请将其重置。
- 如果主板提供,请为 ISA 遗留设备保留 IRQ。
- 在系统设置中,禁用将不会使用的设备,例如 IRA、USB、串行或并行端口等。并行端口可以轻松地放弃;最好使用网络打印机。
- 如果主板提供,请手动设置 PCI 插槽的 IRQ 或让 BIOS 自动分配。
- 一些旧的 PCI 卡在新的主板上无法正常工作,特别是 PCI 2.0 卡在 PCI 2.2 主板上。
中断处理程序使用 Kernel.InstallIP 过程安装,中断由内核启用。过程“p”必须定义为一个普通的“PROCEDURE p;”。在进入 p 时,中断被禁用,并且可以使用 SYSTEM.STI() 启用。在退出 p 时,中断状态被恢复。硬件中断的确认由内核完成。在过程 p 中不需要显式地发出中断结束信号。IRQ 从中断 Kernel.IRQ 开始映射。
在进入过程 p 时,堆栈如下
56 EFLAGS'' 52 CS'' 48 EIP'' (IRETD from glue code) 44 errorcode 40 intnum 36 EAX 32 ECX 28 EDX 24 EBX 20 ESP' (overwritten) 16 EBP 12 ESI 08 EDI 04 EIP' (RET from p) 00 EBP' <-- EBP xx locals <-- ESP
2002 年 7 月 22 日 - 版权所有 © 2002 ETH Zürich。保留所有权利。
电子邮件:oberon at lists.inf.ethz.ch
主页 http://www.ethoberon.ethz.ch