Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I am currently coding task management for my OS, and am unable to activate the NMI. I tried the method described in the wiki, but without success (there is nothing that happens).
Can you tell me how to activate the NMI, knowing that this doesn't work :
deste wrote:I am currently coding task management for my OS, and am unable to activate the NMI. I tried the method described in the wiki, but without success (there is nothing that happens).
That is exactly what should happen - nothing. The NMI is only triggered in rare cases, like hardware failure (although I'm not even sure it's hooked up at all on a modern PC).
Under normal circumstances, you should not get an NMI, just use IRQ0 instead. If you do that kind of things in NMIs you can no longer disable interrupts for anything anymore, so you must be ready to get interrupted at all times, which is probably not what you want.
And if you have multiple sources of an NMI (which you would already have by making the clock an NMI - was it a tick or a system crash?), you can no longer tell what caused it, whereas a regular interrupt is distinguished by interrupt number.
The only way I can think of to get clock NMIs is by doing something with the IOAPIC (of which a) I don't know if it can actually do that, and b) the IOAPIC is not present on all computers, especially not older ones)
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]