![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux驱动开发
TseJung
这个作者很懒,什么都没留下…
展开
-
Linux platform设备驱动原理及架构
什么是platform总线platform总线是区别于实体总线USB、 I2C、SPI 、PIC总线的虚拟总线,一些usb设备选址的话需要通过USB总线来进行寻址,而有些类似于SoC内部外设如led 看门狗 定时器是直接通过内存的寻址空间来进行寻址的,cpu与这些设备通信是不需要总线的,2.6内核以后要对所有设备进行统一管理,通过kset、kobject来建立层次关系,对这些直接通过内存寻址的设...原创 2019-03-29 10:52:20 · 3706 阅读 · 1 评论 -
Linux SD/MMC/SDIO驱动分析
https://www.cnblogs.com/cslunatic/p/3678045.html转载 2019-07-09 14:55:28 · 233 阅读 · 0 评论 -
01. 第一个Linux驱动
Linux 驱动哪些部分是必须的模块入口函数模块的入口函数也称模块加载函数,当你执行 insmod 或 modprobe 命令加载驱动模块到内核时,驱动模块的入口函数就会自动被内核执行。 至于模块入口函数需要完成什么工作,这就你决定了。模块出口函数模块的出口函数也称为模块卸载函数,当你执行 rmmod 命令卸载驱动模块时,驱动模块的出口函数就会自动被内核执行。 至于模块出口函数需要...原创 2018-11-26 09:39:30 · 198 阅读 · 2 评论 -
02. Linux字符设备驱动--LED驱动
字符设备驱动的函数操作集字符设备驱动程序的实现,主要工作就是实现 file_operations 结构体中的函数指针成员。参考/include/linux/fs.h当应用程序使用 open 函数打开某个字符设备时,字符设备驱动程序的file_operations 结构体中的 open 成员就会被调用; 当应用程序使用 read、write、ioctl 等函数读写、控制设备时,驱动程序的 f...原创 2018-11-26 16:42:48 · 166 阅读 · 0 评论 -
03. Linux字符设备驱动--按键驱动
中断程序设计中断注册:request_irq()中断处理:检查是否产生中断清除中断标志硬件操作注销中断: free_irq()中断分层技术工作队列:将中断的下半部提交到工作队列执行。创建工作:INIT_WORK()提交工作到内核默认队列:schedule_work()利用定时器延时使按键去抖动定义定时器变量初始化定时器init_timer初始化设置超时函数...原创 2018-11-26 17:23:03 · 198 阅读 · 0 评论 -
04. Linux输入子系统
Linux Input 子系统Input 子系统层次框架输入(Input)子系统是分层架构的,总共分为 3 层,从上到下分别是:事件处理层(Event Handler)、输入子系统核心层(Input Core)、硬件驱动层(Input Driver)。硬件驱动层负责操作具体的硬件设备,这层的代码是针对具体的驱动程序的,比如你的设备是触摸输入设备,还是鼠标输入设备,还是键盘输入设备,这些不...原创 2018-11-27 13:14:07 · 101 阅读 · 0 评论 -
05. Linux platform驱动--按键驱动
什么是platform(平台)总线相对于USB、PCI、I2C、SPI等物理总线来说,platform总线是一种虚拟、抽象出来的总线,实际中并不存在这样的总线。那为什么需要platform总线呢?其实是Linux设备驱动模型为了保持设备驱动的统一性而虚拟出来的总线。因为对于usb设备、i2c设备、pci设备、spi设备等等,他们与cpu的通信都是直接挂在相应的总线下面与我们的cpu进行数据交互的...原创 2018-11-30 17:31:54 · 341 阅读 · 0 评论 -
06.Linux LCD设备驱动
LCD 设备驱动本身属于字符设备驱动的范畴,但其硬件操作复杂LCD 设备驱动编写流程分配一个 fb_info 结构体设置 fb_info 结构体成员设置固定参数==》设置fb_fix_screeninfo结构体成员设置可变参数==》设置fb_var_screeninfo结构体成员设置操作函数==》定义fbops结构体成员,并实现里面的函数其他设置...原创 2018-12-05 09:17:34 · 134 阅读 · 0 评论 -
07. Linux USB主机控制器和设备驱动
S5PV210 主机控制器驱动的移植移植 ohci-s5p 驱动原创 2018-12-06 10:14:14 · 394 阅读 · 0 评论 -
Linux 阻塞IO(等待队列)原理及架构
一. 阻塞操作阻塞操作是指在执行折本操作时,若不能获得自愿,则挂起进程直到满足可操作性的条件后在进行操作。被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足。假设recvfrom函数是一个系统调用:阻塞不是低效率,如果设备驱动不阻塞,用户想获取设备资源只能不断查询,消耗CPU资源,阻塞访问时,不能获取资源的进程将进入休眠,将CPU资源让给其他资源。二. 等待队列在...原创 2019-03-25 17:44:36 · 3785 阅读 · 0 评论 -
Linux各种同步机制的比较
转载 2019-03-26 10:31:08 · 1399 阅读 · 0 评论 -
Linux 非阻塞IO(轮询—poll机制)原理及架构
一. 非阻塞操作非阻塞操作的进程在不能进行设备操作时,并不挂起,它或者放弃,或者不停地查询,直至可以进行操作为止。这就是我们常说的“轮询”。这是一种比较浪费CPU的方式。但是可以通过信号等方式以异步的形式提高CPU的利用率。假设recvfrom函数是一个系统调用:使用非阻塞I/O 的应用程序可借助轮询函数来查询设备是否能立即被访问,用户空间调用select()、poll()和epoll()...原创 2019-03-26 16:05:19 · 4352 阅读 · 1 评论 -
Linux 异步通知(信号)原理及架构
异步通知异步通知的意思是:一旦设备就绪,则主动通知应用程序进行访问。这样,使用无阻塞IO的应用程序无需轮询的查询设备是否可访问,达到减小CPU消耗的目的。类似于硬件上的“中断”的概念,比较准确的称谓是“信号驱动的异步IO”。信号:是在软件层次上对中断机制的模拟。在原理上,进程接收到一个信号(软件层)<==>(硬件层)处理器接收到一个中断。假设假设recvfrom函数是一个系统调...原创 2019-03-27 16:43:18 · 945 阅读 · 0 评论 -
emmc学习资料
https://blog.csdn.net/feifansong/article/details/88038724转载 2019-07-09 17:18:14 · 557 阅读 · 0 评论