若该文为原创文章,转载请注明原文出处。
一、输入子系统介绍
linux 为了统一各个输入设备,将输入子系统分为了 Drivers(驱动层)、Input Core(输入子系统核心 层)、handlers(事件处理层) 三部分。
• Drivers 主要实现对硬件设备的读写访问,设置中断,并将硬件产生的事件转为 Input Core 定义的规范提交给 Handlers;
• Input Core 起到承上启下的作用,为 Drivers 提供了规范及接口,并通知 Handlers 对事件进 行处理;
• Handlers 并不涉及硬件方面的具体操作,是一个纯软件层,包含了不同的解决方案,如按 键、键盘、鼠标、游戏手柄等。
目的是编写一个基于输入子系统和中断的按键驱动程序。
编写驱动程序的时候只需要关注中间的驱动层、核心层和事件层,这三个层的分工如下:
驱动层:输入设备的具体驱动程序,比如按键驱动程序,向内核层报告输入内容。
核心层:承上启下,为驱动层提供输入设备 注册和操作接口。通