Linux 驱动
文章平均质量分 70
一匹马马马
Everything comes from intentional practice.
展开
-
linux文件系统
引言我的疑问是:内核的启动(不管是嵌入式linux系统,还是普通linux系统)在各个启动阶段,所使用的文件系统是不一样的,最终内核启动完成,我们的文件系统,各种磁盘设备是如何,且在何时于用户空间的文件系统映射起来的?总有一篇文章,一篇博客,一本书会不经意间解除你的困惑,让你一下清楚明了,这样的文章值得转载:https://www.cnblogs.com/alantu2018/p/8447...转载 2019-10-23 13:56:22 · 383 阅读 · 0 评论 -
深入理解Linux启动过程
第一篇完全译文,因为自己对技术和英文的热爱,所以决定翻译此文,水平有限,所以肯定会有不恰当的地方,欢迎移驾至原地址:http://www.ibm.com/developerworks/linux/library/l-linuxboot/注:因为想写一篇博文来阐述并理清Android启动的完全过程,发现了这篇文章,觉得写得十分好,帮我解答了很多疑惑。说明文章转自:http://huaq...转载 2019-10-22 22:04:05 · 371 阅读 · 0 评论 -
linux kernel input子系统三层分析
输入子系统之input handler,input core,input dev介绍,如有误,请纠正>>>好记性不如烂笔头!!!一、输入子系统驱动分成三层 应用层 -------------------------------------------------...原创 2018-05-26 17:56:07 · 3216 阅读 · 0 评论 -
I2c driver驱动编写常用接口介绍
驱动的编写我们需要了解常用的接口,下面介绍I2cdriver驱动编写的常用接口!!!1.struct i2c_driver:描述从设备驱动的一个对象2.struct i2c_client:作用是描述一个从设备信息,不需要自己创建由adapter创建(内部创建的时候调用的是:struct i2c_client *i2c_new_device(struct i2c_adapter * adap,str...原创 2018-06-01 22:35:42 · 2669 阅读 · 2 评论 -
Linux I2C从设备树信息查看与添加方法
下面介绍如何查看一个i2c-adapter对应的设备树文件,i2c-client对应的设备树文件我们知道I2C-client的信息和adapter的一些信息如寄存器等信息是放在设备树里面的,那么在设备树的什么位置呢?在arch/arm/boot/dts/xxx.dts在默认的文件系统中查看默认只提供了一个,也是第0组的I2C,我们需要的其他组需要自己添加。 实际上,我们从S...原创 2018-06-01 12:16:31 · 19438 阅读 · 3 评论 -
Linux I2C驱动框架介绍
从分层来看我们分为5层,从上到下,应用层,I2C驱动层,I2C核心层,I2C控制层(也叫适配层吧),硬件层,如下图,driver层是为应用层服务的提供fop,还有为硬件层提供数据,发送指令等,怎么发送的是核心层去完成,核心层维护的有两个链表,一个是I2C bus,一个是device链表,device链表中会注册一个I2C client是一个设备,表示从设备信息,这个client中包含有:名...原创 2018-05-30 13:01:34 · 380 阅读 · 0 评论 -
I2C协议时序以及协议变体
常用I2C从设备介绍 什么叫从设备呢,从设备是指被主控设备选中从而按照具体协议通信的设备就是从设备,那么I2C从设备就是主控和被控走的是I2C协议,常见的I2C从设备有:HDMI,cmos camera(手机平板前后摄像头),电容触摸屏TS,重力传感器gsensor,eeprom存储设备,我们在工作中经常会做I2C的驱动开发,也就是I2C的从设备驱动开发。I2C提供接口时同时遵...原创 2018-05-29 22:50:51 · 2009 阅读 · 1 评论 -
内核input子系统之events填充数据过程
从前面可知道如果有events是优先调用的,那么我直接看events好了,其中,我们首先获取到handle,拿到handle后我们就可以拿到client缓冲区了,用于填充要上报的数据,之前是暂存到input device后通过指针传递过来的。最终events是如何填充数据的,实际上是先获取evdev,因为获取了evdev后,我们是可以获取到缓冲区的,拿到client缓冲区,我们通过evdev_pa...原创 2018-05-28 22:16:43 · 944 阅读 · 0 评论 -
内核input子系统之input_event数据上报过程
我们数据上报是在device层,其中上报的一个入口是调用input_event(dev, EV_KEY, code, !!value);那么,那么首先在在其中做的判断是是否支持evbit,什么意思呢?我们还记得在module_init中会做一个初始化设置:设置了当前设备能够产生按键数据--将某个bit置1,和当前设备能够产生的输入按键类型,比如power键,音量up键等。设置方法如下:__set_...原创 2018-05-28 21:02:12 · 14600 阅读 · 0 评论 -
内核输入子系统之evdev_open和evdev_read介绍
在分配evdev后其中还有一个队列成员就是client,记录input_dev上报的数据,实际看下clent的描述:可以看出确实是一个队列,有头有尾。其中由于一个设备节点对应一个cdev(cdev是evdev的成员),一个evdev对应要给input_dev,一个input_dev对应一个input_handler,一个handler对应多个input_dev,有container_of技术可以通...原创 2018-05-27 11:44:21 · 1180 阅读 · 0 评论