摘要: 由上一节的输入子系统的框架分析可知,其分三层:设备驱动层,核心层,事件驱动层 我们在为某种设备的编写驱动层,只需要关心设备驱动层,即如何驱动设备并获得硬件数据(如按下的按键数据),然后调用核心层提供的接口,核心层就会自动把数据提交给事件处理层。在输入子系统中,事件驱动是标准的,适用于所有输入类的。我 阅读全文
posted @ 2018-12-16 22:37 朱果果 阅读(594) 评论(0) 推荐(0) 编辑
摘要: ssize_t second_drv_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) { } 这是一个文件读函数 ssize_t是signed size_t,size_t是标准C库中定义的,应为unsigned 阅读全文
posted @ 2018-12-16 17:14 朱果果 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 为什么要引入输入子系统? 在前面我们写了一些简单的字符设备的驱动程序,我们是怎么样打开一个设备并操作的呢? 一般都是在执行应用程序时,open一个特定的设备文件,如:/dev/buttons 但是实际上,一般的应用程序不会去打开这样设备文件“/dev/buttons”。一般打开的都是系统原有的文件, 阅读全文
posted @ 2018-12-16 14:27 朱果果 阅读(446) 评论(0) 推荐(0) 编辑