驱动
文章平均质量分 64
chihunqi5879
这个作者很懒,什么都没留下…
展开
-
linux设备驱动的并发与竞争
Linux设备驱动中必须解决一个问题是多个进程对共享资源的并发访问,并发的访问会导致竞态,在当今的Linux内核中,支持SMP与内核抢占的环境下,更是充满了并发与竞态。幸运的是,Linux 提供了多钟解决竞态问题的方式,这些方式适合不同的应用场景。例如:中断屏蔽、原子操作、自旋锁、信号量等等并发控制机制 并发:指多个执行单元同时、并发被执行,而并发的执行单元对共享资源(硬件资源和软原创 2017-09-15 14:31:05 · 390 阅读 · 0 评论 -
linux input输入子系统分析(input_dev和handler匹配分析)
内核的输入子系统是相对分散的,对多种不同类别的输入设备(如键盘,鼠标,跟踪球,操纵杆,触摸屏,加速计和手写板)进行统一抽象处理。输入子系统包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输入设备的通信。鼠标事件生成文件mousedev属于事件驱动程序,而PS/2鼠标驱动程序是设备驱动程序。事件驱动程序是标准的,对所有的输入类都是可用的,所以要...原创 2018-06-25 17:24:22 · 2216 阅读 · 0 评论 -
触摸屏驱动分析(eeti源码为例)
module_init(egalax_i2c_ts_init)–>表示驱动加载时首先执行的函数是egalax_i2c_ts_init,下面看egalax_i2c_ts_init函数源码:static int egalax_i2c_ts_init(void){ int result; result = misc_register(&egalax_misc_d...原创 2018-06-24 18:57:29 · 3792 阅读 · 0 评论 -
device_register分析
上篇文章分析了driver_register函数,这篇文章主要介绍device_register。内核在调用device_register的时候也会匹配已经加载好的设备驱动程序,从而执行probe函数。在i2c-core.c中i2c_new_device函数会调用device_register函数,下面开始分析 device_register的源码(driver/base/core.c):i...原创 2018-04-20 11:10:32 · 3583 阅读 · 1 评论 -
driver_register分析
在上一篇文章中分析了,i2c设备和i2c驱动的向总线注册过程。在总线-设备-驱动这种模型中,无论是先进行driver_register还是后进行device_register,总线驱动都会对进行匹配,只有匹配工程后,才会执行驱动的probe函数; 首先分析driver_register函数,先看此函数源码(driver/base/driver.c):int driver_register...原创 2018-04-18 19:42:39 · 1524 阅读 · 0 评论 -
i2c设备注册(动态注册和静态注册)以及i2c驱动注册过程
一、i2c设备驱动注册 i2c设备驱动注册的调用流程为:xxx_init(设备驱动里所定义)—–>i2c_add_driver—–>i2c_register_driver 下面直接看源码,xxx_init(设备驱动里所定义)源码如下:static int egalax_i2c_ts_init(void){ int result; result = misc_...原创 2018-04-17 16:46:44 · 5633 阅读 · 0 评论 -
全志R16触摸屏移植
一、全志的模块自动加载功能 在内核目录下的/driver/input下,有源码sw-device.c文件,此为自动加载模块的源码; 先看一个结构体:`static struct sw_device_info ctps[] = { {"egalax_i2c",{ 0x2a}, 0x00, {0x00 },1...原创 2018-04-17 08:50:08 · 1459 阅读 · 0 评论 -
i2c适配器驱动源码分析(i2c总线驱动)
i2c适配器源码位置在driver/i2c/buss下这里以i2c-sunxi.c为例,i2c适配器设备和驱动的加载绑定过程也可以看做是i2c总线驱动的加载过程,I2C总线驱动是对I2C硬件体系结构中适配器端的实现,适配器可由CPU控制,甚至可以直接集成在CPU内部。 下面以源码进行分析: 函数的入口:subsys_initcall(sunxi_i2c_adap_init); //和一般的驱动原创 2017-10-22 17:31:09 · 1771 阅读 · 0 评论 -
简单字符设备中设计的结构体
struct file 结构体 文件结构体代表一个打开的文件,系统中每个打开的文件在内核空间中都会有一个关联的struct file结构体。它有内核在打开文件时创建,并传递给在文件操作上的任何一个函数。在文件的所有实例都关闭后,内核释放这个数据结构,在内核创建和驱动源码中,struct file的指针通常命名为filp file。 在struct file结构体原创 2017-09-08 14:28:03 · 355 阅读 · 0 评论 -
简单字符设备的驱动源码讲解
#include #include#include#include#include#include#include#include#include#include#include #include#include#include#define CDEVDEMO_MAJOR 255 //一个宏定义 主设备号static int cde原创 2017-09-11 13:58:37 · 475 阅读 · 0 评论