从键盘获取输入

2019-12-12  本文已影响0人  HAPPYers

键盘驱动

无论是按下键还是松开键,当键的状态改变的时候,键盘中的8048芯片把按键对应的扫描码(通码或者断码)发送到主板的8042芯片,由8042芯片处理后保存在自己的寄存器中,然后向8042芯片发送中断请求。

大多数情况下第一套扫描码中的通码和断码都是1字节大小。通码和断码,它们的关系是:断码=0x80 +通码。 顺便说一句, 在第二套键盘扫描码中, 一般的通码是 1 宇节大小,断码是在通码 前再加 1 字节的 0xF0,共2 字节,我们的 8042 工作之一就是根据第二套扫描码中通码和断码的关系将它们解码,然后按照第一套扫描码中通码和断码的关系转换成第一套扫描码。

环形输入缓冲区

实现

结构:逻辑上唤醒的循环队列

生产者消费者问题

生产者消费者问题是用来描述多个线程协同工作的模型


有一个或多个生产者、 一个或多个消费者和一个固定大小 的缓冲区,所有生产者和消费者共享这同一个缓冲区。生产者 生产某种类型的数据,每次放一个到缓冲区中,消费者消费这种数据,每次从缓冲区中消费一个。同一时刻,缓冲区只能被一个生产者或消费者使用。当缓冲区已满时,生产者不能继续往缓冲区中添加数据,当缓冲区为空时,消 费者不能在缓冲区中消费数据。

上一篇下一篇

猜你喜欢

热点阅读