🐛 修复了键盘控制器被初始化之前,按键被按下,从而导致的收不到键盘中断的问题。

This commit is contained in:
fslongjin
2022-05-31 11:50:55 +08:00
parent b828622ea6
commit 844e66f6bb
2 changed files with 12 additions and 12 deletions

View File

@ -200,11 +200,8 @@ void ps2_keyboard_init()
// 申请键盘循环队列缓冲区的内存
kb_buf_ptr = (struct ps2_keyboard_input_buffer *)kmalloc(sizeof(struct ps2_keyboard_input_buffer), 0);
kb_buf_ptr->ptr_head = kb_buf_ptr->buffer;
kb_buf_ptr->ptr_tail = kb_buf_ptr->buffer;
kb_buf_ptr->count = 0;
memset(kb_buf_ptr->buffer, 0, ps2_keyboard_buffer_size);
ps2_keyboard_reset_buffer(kb_buf_ptr);
// ======== 初始化中断RTE entry ==========
@ -240,7 +237,10 @@ void ps2_keyboard_init()
// 注册中断处理程序
irq_register(PS2_KEYBOARD_INTR_VECTOR, &entry, &ps2_keyboard_handler, (ul)kb_buf_ptr, &ps2_keyboard_intr_controller, "ps/2 keyboard");
kdebug("kb registered.");
// 先读一下键盘的数据,防止由于在键盘初始化之前,由于按键被按下从而导致接收不到中断。
io_in8(PORT_PS2_KEYBOARD_DATA);
kinfo("ps/2 keyboard registered.");
}
/**