input子系统与实例

本文介绍了Linux内核的input子系统,包括其三层框架:input handler层、input核心层和input dev层。详细讲解了如何编写input设备驱动,通过一个触摸屏按键中断处理的实例展示了从注册设备到上报数据的完整过程。
摘要由CSDN通过智能技术生成

Iuput子系统说明

  

      当我们需要编写或调试输入设备时,如keyboard、mouse、touchscreen、joystick,会发现代码会有很多通用的部分,如申请设备号,创建文件,实现fop等操作。内核就会将通用的代码编写好,将差异化的代码留给驱动工程师,使得应用编程人员和驱动编程人员点成的时候变得简单统一。

输入子系统框架可以分为三层,分别是input handler层、input核心层、input dev层。

Input handler层(evdev.c):数据处理者

  1. 向input.c中注册evdev_handler

  1. 将evdev_handler添加到链表中

  1. 实现fops

Input核心层(input.c)

  1. 注册类
  2. 在/proc文件系统中创建文件记录信息
  3. 创建设备

Input dev层:(需要自己编写的)

  1. 抽象出一个对象,描述设备信息
  2. 初始化输入设备硬件,获取到数据
  3. 上报数据

编写步骤:

  1. 分配输入设备

Inputdev = Input_allocate_device();

  1. 初始化支持的事件类型和事件码

__set_bit(EV_KEY, inputdev->evbit);

__set_bit(KEY_POWER, inputdev->keybit);

  1. 注册输入设备

Input_register_device(inputdev);

  1. 上报数据
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值