![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux drive
一个码农要什么昵称
寻寻匿匿
展开
-
Linux input subsystem
最近学习了一下Linux的输入子系统编程,做个记录。 简单分为3个部分,一是注册输入设备和键值,二是gpio的配置和申请,最后是中断来临后键值的上报流程。 linux设备的注册都是固定套路,主要区别还是在于硬件平台的不同需要做不同的处理。 static struct input_dev *key_dev; static irqreturn_t key_interrupt(int irq,...原创 2018-11-25 22:47:09 · 127 阅读 · 0 评论 -
tasklet & workqueue
为了提升内核的响应速度,中断处理往往会分成上半部和下半部来执行。 上半部在中断处理函数中处理少量事物并激活下半部,一般通过tasklet 或 workqueue 来实现。 workqueue 参考: void workqueue_func(struct work_struct *work) // 下半部执行函数 { printk("workqueue bottom half\n"); ...原创 2018-11-26 22:37:35 · 150 阅读 · 0 评论 -
i2c
i2c是使用非常广泛的通信协议,tp,sensor都用它,今天就来熟悉总结一下i2c的使用 //i2c 写操作 static int my_i2c_write(struct i2c_client *client, u8 addr, u8 *pdata, int datalen) { int ret = 0; unsigned int write_buf_len = 0; u8 write...原创 2018-12-08 23:30:42 · 336 阅读 · 0 评论