内核是如何调用OEMInterruptHandler函数的?
我在OEMInterruptHandler函数中加入如下打印信息
RETAILMSG(1, (TEXT("OEMInterruptHandler@@Intr/intr.c: irq = %d /r/n"), irq));
没有想到出现了非常奇怪的结果,就是不停的打印了上面的信息。
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
OEMInterruptHandler@@Intrintr.c: irq = 0
并且系统会起来,我觉得这个是内核会循环调用OEMInterruptHandler函数的。这样用来处理中断。
哈哈,屏蔽之后就没有了,这样看来,这个内核会经常扫描这个函数。
本文探讨了内核如何循环调用OEMInterruptHandler函数处理中断,并通过实验观察到该函数被频繁调用的现象。文章还介绍了通过屏蔽中断来验证这一行为的方法。

341

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



