From 59f5e7e6a0a3667d7871d42e9fa304c400967d3b Mon Sep 17 00:00:00 2001 From: pjsk6rqfy <747282718@qq.com> Date: Fri, 1 Jul 2022 09:09:13 +0800 Subject: [PATCH] ADD file via upload --- 鼠标的驱动:.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 鼠标的驱动:.md diff --git a/鼠标的驱动:.md b/鼠标的驱动:.md new file mode 100644 index 0000000..9c628ed --- /dev/null +++ b/鼠标的驱动:.md @@ -0,0 +1,20 @@ +鼠标的驱动: + +鼠标驱动的实现: + +​ 调用宏set_trap_gate(0x2c,&mouse_interrupt); + +​ 放在控制台设备初始化函数con_init()中与键盘中断初始化设置语句放在一起 + +还没修改makefile文件 + +通过文件里的12.2.2 键盘控制器i8042和中断控制器8259A + +​ 由于0x60这个端口对应的数据寄存器在键盘控制器上,同时也被应用于鼠标输入的读取。所以在调用set_trap_gate(0x2c,&mouse interrupt) 之前还要设置i8042,令其允许鼠标操作。 + +​ 而且在把鼠标初始化并设置了鼠标中断的响应函数后,应该把相应的中断请求位屏蔽打开,还需向8259A发送OCW来打开屏蔽。 + +​ 现在测试还是只能处理一次鼠标中断,后续中断还是不能被正常捕获。所以应在mouse_interrupt处理完中断后,给8259A发送结束中断命令; + + +