input子系统学习

input子系统最主要的思想就是中断的思想,如何处理中断。

input子系统分为三层,分别是

input_handler——处理层:创建设备节点,实现fops;

input_core——核心层:申请主设备号register_chrdev();创建类class_create();

input_device——设备层(这一部分需要编程自己编写):硬件初始化;

程序编程的步骤:

struct input_dev *btn_input;

1.实例化设备对象:kzalloc-------若需要实例化,就实例;

2.申请input设备:input_allocate_device()

3.初始化input device 对象:即位表

EV_KEY——按键;EV_ABS——绝对坐标;EV_REL——相对坐标;EV_SYN——同步所有位表

其中evbit有32bit,对应的位使能,可以使设备产生对应的数据类型;

4.注册input device对象:input_register_device;

5.硬件初始化,一般是申请中断:IRQ_EINT,request_irq;

6.中断处理函数

中断函数中主要是要上报数据:input_event,input_sync。

-----秉钺清南边

猜你喜欢

转载自blog.csdn.net/linken_yue/article/details/81383135