zoukankan      html  css  js  c++  java
  • 《精通linux设备驱动程序开发》 第7章输入设备驱动程序 学习笔记

    主要内容:

    • 内核输入子系统
    • 输入事件驱动程序
    • 输入设备驱动程序

    1.内核输入子系统

    内核的输入子系统,是对分散的、多种不同类别的输入设备进行统一处理的驱动程序。输入设备包括,键盘、鼠标、跟踪器、操纵杆、触摸屏、加速剂和手写板等。

    输入子系统驱动程序,包括事件驱动程序和设备驱动程序。

    事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输入设备的通信。

    2.输入事件驱动程序

    事件驱动提供了一个硬件无关的抽象,以便和显示设备交互。

    2.1 Evdev接口

    Evdev是一个通用的输入事件驱动程序,格式如下,定义在include/linux/input.h文件中:

    struct input_event {
        struct timeral time;
        __u16 type;
        __u16 code;
        __s32 value;
    
    };

    2.2 其他事件接口

    Vms驱动程序利用通用的evdev事件接口,但像键盘、鼠标和触摸屏这些输入设备则必须使用定制的事件驱动程序。

    3.输入设备驱动程序

    3.1 serio

    serio层提供了访问老式输入硬件的库例程,为了与serio提供服务的硬件通信,如发送命令给PS/2鼠标,需要用serio_register_driver()向注册规定的回调例程。

    3.2 键盘

    键盘包括老式的PS/2USB、蓝牙以及红外键盘,每种类型都有特定的输入设备驱动程序,但使用相同的键盘事件驱动程序,它传送数据给另一个内核子系统。

    3.3 鼠标

    鼠标包括PS/2鼠标和滚轮鼠标,鼠标的输入事件驱动称为mousedev,通过/dev/input/mice报告鼠标事件给用户应用程序。

    stay hungry, stay foolish
  • 相关阅读:
    lyft amundsen简单试用
    Prisma 2 is Coming Soon
    amundsen 来自lyft 的开源数据发现平台
    packr 方便的潜入静态资源文件到golang 二进制文件中
    hasura skor 构建安装
    Oracle中删除用户下所有对象的多种方法
    负载均衡----实现配置篇(Nginx)
    【nginx】配置Nginx实现负载均衡
    Vmware ESXi添加共享磁盘
    从Oracle迁移到MySQL的各种坑及自救方案
  • 原文地址:https://www.cnblogs.com/zygote/p/13587046.html
Copyright © 2011-2022 走看看