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——同步所有位表
扫描二维码关注公众号,回复:
3031141 查看本文章
其中evbit有32bit,对应的位使能,可以使设备产生对应的数据类型;
4.注册input device对象:input_register_device;
5.硬件初始化,一般是申请中断:IRQ_EINT,request_irq;
6.中断处理函数
中断函数中主要是要上报数据:input_event,input_sync。
-----秉钺清南边