diff --git a/VKernel/Kernel/intr/idt.vp b/VKernel/Kernel/intr/idt.vp index 416bca4..31b4ea2 100644 --- a/VKernel/Kernel/intr/idt.vp +++ b/VKernel/Kernel/intr/idt.vp @@ -17,7 +17,7 @@ class idt_entry: base_middle: t.CUInt16T base_high: t.CUInt32T reserved1: t.CUInt32T -idt: t.CArray[idt_entry, 256] = [] +idt: t.CArray[idt_entry, 256] | t.CExport = [] irq_handler_t: t.CTypedef = t.Callable[[], t.CInt] @@ -201,6 +201,8 @@ def isr29_handler() -> t.CExport | t.CVoid: isrCommonhandler(29) def isr30_handler() -> t.CExport | t.CVoid: isrCommonhandler(30) def isr31_handler() -> t.CExport | t.CVoid: isrCommonhandler(31) def isr32_handler() -> t.CExport | t.CVoid: + # [DBG] 中断入口诊断:若打印 'T' 说明 IRQ0 到达 isr32(用后移除) + serial.puts("T") timer.timer_handler() def isr33_handler() -> t.CExport | t.CVoid: diff --git a/VKernel/Kernel/intr/isr.s b/VKernel/Kernel/intr/isr.s index c03757f..152a9f5 100644 --- a/VKernel/Kernel/intr/isr.s +++ b/VKernel/Kernel/intr/isr.s @@ -16,6 +16,9 @@ isr_default: push rax push rdx + mov dx, 0x3F8 + mov al, 0x44 # [DBG] 'D' = 中断向量到默认处理(用后移除) + out dx, al mov al, 0x20 out 0xA0, al out 0x20, al