08 2022 档案

摘要:前面两章我们通过input子系统构建了一个按键类型的输入设备的驱动,其实Linux的内核还提供了一套基于GPIO的按键驱动程序,和LED设备一样,我们只需要在编译内核的过程中进行配置然后在设备树中定义好设备节点就可以直接使用了。 配置内核 在使用内核提供的input子系统驱动前要将驱动使能,可以按照 阅读全文
posted @ 2022-08-28 23:25 银色的音色 阅读(899) 评论(0) 推荐(0) 编辑
摘要:我们上一章完成了input子系统的设备构成,并且在用户空间通过hexdump命令拿到了一堆不知道是什么的信息。今天我们就要借助input_event这个结构体来了解内核怎么通过那个结构体了解输入事件。 可能有心人已经发现了,上一章我们在加载完模块以后在/dev/input路径下生成了一个新的even 阅读全文
posted @ 2022-08-28 11:19 银色的音色 阅读(4566) 评论(0) 推荐(0) 编辑
摘要:我们在前面通过pin控制学习了LInux内核的GPIO和Pinctrl子系统。GPIO主要用作简单的引脚控制驱动,今天我们来了解一下一组新的子系统:input子系统。input子系统是Linux内核专门提出来处理按键、鼠标、键盘和触摸屏等输入设备的输入事件的。输入设备从本质上来说还是属于字符设备。i 阅读全文
posted @ 2022-08-27 20:00 银色的音色 阅读(1152) 评论(0) 推荐(0) 编辑
摘要:今天我们来学习platform下单一个杂项驱动——MISC驱动。如果我们的某些外设不好进行分类的时候,就可以把它归纳到这个杂项驱动的分类里。 MISC设备驱动 随着我们使用的设备越来越多,现有的设备号资源变得越来越紧张,特别是主设备号(12位,对应0~4095)。这时候MISC驱动就应运而生了。并且 阅读全文
posted @ 2022-08-21 22:18 银色的音色 阅读(616) 评论(1) 推荐(0) 编辑
摘要:回顾一下我们现在先后都做了几种LED的点亮试验: 裸机点亮LED 使用汇编语言读写寄存器点亮LED 使用C语言读写寄存器点亮LED 在系统下直接操作寄存器映射点亮LED 在设备树下完成LED相关设备信息后在系统中调用设备树信息点亮LED 使用gpio和pinctrl子系统点亮LED 使用platfo 阅读全文
posted @ 2022-08-20 19:20 银色的音色 阅读(610) 评论(0) 推荐(0) 编辑
摘要:在上一章节我们使用了platform框架在没有设备树的时候是如何使用的,不过现在的大多数半导体厂商都把设备树给我们完善了。区别就是在没有设备树信息的时候需要我们自己想总线注册platform设备,设备里主要包含寄存器地址信息等资源,而在有设备树支持的条件下,就不需要我们使用platform_devi 阅读全文
posted @ 2022-08-19 23:41 银色的音色 阅读(582) 评论(0) 推荐(0) 编辑
摘要:在上面一章我们借助Linux驱动分离和分层的概念引出来驱动——总线——设备的概念,然后引出来了platform这种基于设备驱动模型的驱动架构,我们下面通过使用来演示下platform架构是怎么使用的。 前面说过,platform驱动架构的设备端分为支持设备树和不支持设备树两种模式,下面我们先看看如何 阅读全文
posted @ 2022-08-18 23:24 银色的音色 阅读(817) 评论(0) 推荐(0) 编辑
摘要:(到目前为止,我们写的驱动都是简单的GPIO接口操作。但是实际环境中,我们会写I2C、SPI等设备的驱动。再回忆一下我们写驱动的流程,除了基础的框架基本上每次都是重复的造轮子。这样复杂的驱动写起来肯定是不能按照这种方法进行的,所以我们需要按照Linux的驱动分离与分层的思路构建我们以后的驱动架构。所 阅读全文
posted @ 2022-08-16 23:00 银色的音色 阅读(736) 评论(0) 推荐(0) 编辑
摘要:在前面一章我们实现了通过阻塞操作来访问硬件资源,下面我们要通过非阻塞的模式来尝试一下如何实现这一效果。 用户态APP 我们在上一章引出非阻塞模式的时候已经说明了,非阻塞IO主要是属于异步IO的模式。那么对于用户态APP来说,有几个接口我们需要了解 select epoll 还有poll 其中 sel 阅读全文
posted @ 2022-08-10 23:08 银色的音色 阅读(242) 评论(0) 推荐(0) 编辑
摘要:我们在前面通过阻塞和非阻塞的访问方式完成了用户态APP和驱动文件之间进行交互。但是这两种方式都是通过应用程序主动去读取驱动程序,对于非阻塞模式来说是通过poll函数不断的轮询,阻塞模式就是把进程挂起,直到中断或其他事件发生重新启动进程。今天我们讲一种新的方法:让驱动主动向应用程序发出通知,报告自己可 阅读全文
posted @ 2022-08-08 22:37 银色的音色 阅读(612) 评论(0) 推荐(0) 编辑
摘要:还记得我们在讲按键生成外部中断时候通过一个APP来调用驱动文件么?因为我们在用户态APP里通过while循环不断调用read函数去获取按键状态,占用了大量的系统资源,这种模式肯定是不行的。所以今天我们重新构造一下这个驱动程序(主要是和用户态APP交互的文件操作集合函数)。 阻塞和非阻塞 应用程序对驱 阅读全文
posted @ 2022-08-02 23:53 银色的音色 阅读(357) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示