From 3c163a5936971aa39bce329b875ce483ec52ec14 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Wed, 26 Aug 2026 18:16:09 +0800 Subject: [PATCH] =?UTF-8?q?debug(boot):=20sti=20=E5=90=8E=E8=BD=AF?= =?UTF-8?q?=E4=BB=B6=E8=A7=A6=E5=8F=91=20int=200x20=EF=BC=8C=E4=BA=8C?= =?UTF-8?q?=E5=88=86=E5=AE=9A=E4=BD=8D=E4=B8=AD=E6=96=AD=E4=B8=8D=E9=80=81?= =?UTF-8?q?=E8=BE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit APIC LINT0=EXTINT 已配置但仍无定时中断。加 int 0x20(向量 32)软件触发: - 有 T → IDT gate 32 正常,问题在 PIT/PIC 硬件送达 - 无 T → IDT/lidt 问题 用后移除。 --- VKernel/Kernel/main.vp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/VKernel/Kernel/main.vp b/VKernel/Kernel/main.vp index 7d17b4e..c74600d 100644 --- a/VKernel/Kernel/main.vp +++ b/VKernel/Kernel/main.vp @@ -81,6 +81,11 @@ class ViperKernel: asm.sti() serial.puts("[main] sti done\n") + # [DBG] 软件触发向量 32:验证 IDT gate 是否生效(用后移除) + # 有 "T" → IDT 正常,问题在 PIT/PIC 硬件送达;无 "T" → IDT/lidt 问题 + c.Asm("int 0x20", op=[t.ASM_DESCR.CLOBBER_MEMORY]) + serial.puts("[main] int20 test done\n") + timer.timer_msleep(100) serial.puts("[main] msleep done\n") rtc.rtc_init()