Я пишу ядро для платы MIPS Malta, используя QEMU, и у меня возникают трудности с работой прерываний клавиатуры. Я установил клавиатуру и отобразил биты прерываний (биты 11 и 12) в регистре STATUS сопроцессора 0 и включил прерывания, установив также бит 0. Насколько я понимаю, это должно вызывать прерывание при запуске двоичного файла и нажатии клавиши, но это не так.
Я использую Qemu с этими флагами
-M malta -m 256 -serial stdio -device usb-mouse -device usb-kbd -show-cursor
и это код, который устанавливает биты разрешения прерываний
mfc0 T1, $12
li T2, 0x1800
ori T2, 0x1
or T2, T2, T1
mtc0 T2, $12
Я что-то упустил в указанном выше фрагменте кода? Нужно ли включать прерывания для клавиатуры в регистре управления устройством? Благодарю за любую помощь!