Advertisement

Linux I/O 子系统

阅读量:

Input子系统介绍

过去人们编写一些输入设备(如键盘、鼠标等)的驱动时,主要通过字符设备和混杂设备来处理。随着这一问题逐渐显现出来后端开发者希望能够设计一种统一化的机制来整合各种类型和分布不均的 输入 设备 ,这也正是基于这一需求,在Linux开源社区中逐渐形成了完善的 输入 子系统。

输入子系统引入的好处:

  • (1)整合了不同物理形态但具有类似功能的各种类型的计算机外设。
    • (2)为用户提供了一个便捷的方式来进行事件数据传输。
    • (3)分离并优化了核心逻辑,并实现了内部的一致性和稳定性。

硬件设备(如键盘、触摸屏等)都是典型的字符设备。其主设备编号固定设置为13。一般而言,在底层按键、触摸和鼠标点击等操作触发时会触发中断(或通过timer定时查询)。CPU随后通过SPI总线、I2C总线或外部存储器总线获取键值和坐标信息。这些信息会被缓存以便后续处理。字符设备的驱动程序负责管理这些缓存区域。用户可以通过驱动提供的read()接口来获取键值和坐标数据。如下图所示展示了整个流程的具体步骤。

在Linux中, 输入子系统由设备驱动层面 核心层面以及事件处理层面组成

全部评论 (0)

还没有任何评论哟~