自己动手写操作系统系列第3篇,实现时钟和键盘中断
创始人
2024-03-31 18:04:47
0

对应labOS版本1.3
程序源码可以私聊我

picirq.h

  • int 0x20~0x2f接收中断信号IRQ0~15,因为int 0x00~0x1f不能用于IRQ。

picirq.c

  • pic0_mask=0xfb1111 1011;PIC1以外全部禁止。pic1_mask=0xff1111 1111;禁止所有中断

  • pic_enable函数就是将irq_num即IRQ号屏蔽取消

  • 当一个外部中断请求通过中断请求线IRQ传输到IMR(中断屏蔽寄存器),IMR根据设定的中断屏蔽字决定丢弃还是接受。

  • 主从PIC如下如所示,PIC是一个8259A芯片,上面有一些引脚,其中包括了ICW、OCW等引脚。

  • 每一个8259A芯片都有两个I/O ports,程序员可以通过它们对8259A进行编程。
    Master 8259A的端口地址是0x20,0x21;Slave 8259A的端口地址是0xA0,0xA1。

  • EOI:end of interrupt

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jl624Ogv-1666788382369)(images/image-20221013184815828.png)]

kbd.h

  • 键盘按键参考https://wiki.osdev.org/PS/2_Keyboard#Scan_Code_Set_1

int_handlers.c

  • 键盘控制器是8042(PS/2)芯片,它的作用是接收和解码来自键盘的数据并放到缓冲区,然后通知8259A产生IRQ1。
  • 读缓冲区,读0x60端口
  • 写缓冲区,写0x60端口
  • 读状态寄存器,读0x64端口
  • 控制寄存器,写0x64端口
  • 其中读出的缓存数据0xe0和0xe1是特殊键值需要单独处理
  • 键盘抬起产生的数值=按下产生的数值+0x80

init.c

  • CR3寄存器存储的是页目录表页面起始物理地址,因为页目录表都是4KB对齐,因此只有高20位是有效的。低12位有其他用处。
  • CR0寄存器最低位是PE保护模式标志位,最高位是PG分页模式标志位。
  • 启动分页机制需要三步:1、准备好页目录表和页表;2、将页表地址写入CR3;3、将CR0的PG位制1。
  • 另外启动分段或者启动分页,也就是修改CR0的相关位置后,以后都是由硬件自动进行地址的转换。
  • 再记录一下中断的开发。先定义好函数声明和函数实现,然后再GDT表初始化完成的基础上用中断函数指针去初始化IDT表,然后再做好IDTR,这样就可以根据中断号去找中断函数了。然后需要注意的是什么中断对应什么编号是由硬件本身决定的,比如https://logix.cz/michal/doc/i386/chp09-08.htm#09-08,然后重点是要设置IMR取消对此中断的屏蔽,这样当下次产生中断时,硬件根据自身情况产生中断号,经过IDTR找IDT,然后找到相应的中断处理函数执行。这样就完成了一次中断处理。

最后的运行效果

在这里插入图片描述

相关内容

热门资讯

Adobe 因使用 SlimP... AIPress.com.cn报道 12月29日消息,作为全球创意软件巨头,Adobe 正面临其首起重...
伟星新材:竞争优势明显 保持积... 12月28日,伟星新材(002372)发布公告,伟星新材(002372)于2025年12月25日召开...
健全数据制度 释放乘数效应——... 来源:经济日报 党的二十届四中全会审议通过的《中共中央关于制定国民经济和社会发展第十五个五年规划的建...
海关出口退税律师张严锋:套用其... 2018年3月2日,B稽查局对A公司涉税事项进行检查。经检查,B稽查局认为A公司涉嫌通过套用他人出口...
哈尔滨权威刑事律师服务推荐:谷... 在哈尔滨,当人们遭遇刑事法律问题时,往往会困惑于刑事律师服务哪家权威刑事律师推荐哪些刑事辩护律师哪个...
原创 《... 2025年12月26日,《晋中市平遥牛肉保护和发展条例》新闻发布会在晋中举行。该条例经山西省人大常委...
权威非法吸收公共存款律师推荐:... 在处理非法吸收公共存款这类复杂刑事案件时,选择一位经验丰富、靠谱且性价比高的律师至关重要。今天,我们...
政策领航聚英才 智农创新兴龙江 □刘凌灼 本报记者 姜斌 刘畅 在广袤的北大荒黑土地上,一片农业科技创新的“新沃土”正破土而出。这里...
上海海关商品归类律师张严锋:自... 自动衬环成型绕圆机如何归类 2023年01月01日至2024年05月30日期间,A公司以一般贸易方...
原创 男... 男子举报自己无证驾驶:进去待两天 朋友们,我最近看到一个很火的帖子,真的让我很感动!“男子自首承认无...