#interrupt #kernel #no-std

no-std pic8259_x86

仅适用于x86架构的8259和8259A中断控制器抽象,归功于Eric Kidd 和 Phil Opperman

1个不稳定版本

0.1.0 2023年2月21日

#55 in #interrupt

Apache-2.0/MIT

14KB
229

仅适用于x86架构的8259和8259A中断控制器抽象,归功于Eric Kidd [email protected] 和 Phil Opperman


lib.rs:

支持8259可编程中断控制器,用于处理基本的I/O中断。在多核模式下,我们需要将其替换为APIC接口。

基本思路是我们有两个PIC芯片,PIC1和PIC2,PIC2被连接到PIC1的中断2上。你可以在这里找到整个故事:http://wiki.osdev.org/PIC(通常如此)。基本上,我们的极其复杂的现代芯片组在进行20世纪80年代的cosplay,我们的目标是完成所需的最低限度的工作以获得合理的中断。

我们需要做的最重要的事情是设置我们两个PIC的基"偏移量",因为默认情况下,PIC1的偏移量为0x8,这意味着PIC1的I/O中断将与处理器的中断(如"一般保护故障")重叠。由于处理器保留了0x00至0x1F的中断,我们将PIC1的中断移到0x20-0x27,PIC2的中断移到0x28-0x2F。如果我们想编写DOS仿真器,我们可能需要选择不同的基本中断,因为DOS使用中断0x21进行系统调用。

无运行时依赖