X86 hardware interrupt not working on qemu

I am writing a kernel (using qemu to simulate) for x86 as a school project, and I had a strange problem. Despite the fact that I set the interrupt flag in the eflags register, I do not get any synchronization interruptions (I checked with the qemu data register command and I see eflag = 0x292, which means it is set).

To be precise, when I run the spin test (while (1); program) in user mode, I get one clock interrupt, but after that it stops, qemu doesn't seem to simulate anymore! did this happen to someone else? Is there any other mechanism that can affect interrupts? Does anyone have a key?
Shay.

+6
source share
2 answers

Apparently, in x86 you should recognize synchronization interruptions after each of them. I. When each interruption of the clock should be sent confirmation on the foot.

+3
source

If you expect interruptions from RTC, you must first acknowledge the previous interrupt by reading REG_C (CMOS register 0x0C).

0
source

Source: https://habr.com/ru/post/944495/


All Articles