![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动学习
tmfjtft
这个作者很懒,什么都没留下…
展开
-
LINUX INPUT设备驱动架构详解
一. 输入设备结构体 1. input_dev 输入设备[cpp] view plaincopystruct input_dev { const char *name; //设备名 const char *phys; //设备系统层的物理路径 const char *uniq; // struct转载 2017-07-14 11:41:05 · 816 阅读 · 2 评论 -
Linux MTD子系统剖析
MTD(memory technology device 存储 技术设备 ) 是用于访问 memory 设备( ROM 、 flash )的 Linux 的子系统。 MTD 的主要目的是为了使新的 memory 设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。 MTD 的所有源代码在 /drivers/mtd 子目录下 。[1]传统上, UNIX 只认识块设备和字符设备。字转载 2017-09-23 16:30:31 · 398 阅读 · 0 评论 -
Linux I2C驱动完全分析(二)
博主按:大热的天,刚刚负重从五道口走到石板房,大约4公里吧。终于让我找了一个咖啡屋休息一下,继续写这篇驱动分析。单身的生活就是这样无聊啊。 不发牢骚了,活出个样儿来给自己看!千难万险脚下踩,啥也难不倒咱!继续整!~ 先说一下,本文中有个疑惑,一直没有搞懂,写在这里,望高人指点一二,不胜感激!#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_PRO转载 2017-08-27 10:09:30 · 388 阅读 · 0 评论 -
Linux I2C驱动完全分析(一)
博主按:其实老早就想写这个I2C的了,期间有各种各样的事情给耽误了。借着五一放假的时间把这个写出来,供同志们参考。以后会花一些时间深入研究下内核,虽然以前对内核也有所了解,但是还不系统。I2C的硬件结构并不复杂,一个适配器加几个设备而已。Linux下驱动的体系结构看着挺复杂,实际也是比较简单的。在本文中我还是使用实际的例子,结合硬件和软件两个方面来介绍。希望能给初学的同志们一些帮助,另外抛砖引玉,转载 2017-08-27 10:05:24 · 394 阅读 · 0 评论 -
面向对象地分析Linux内核设备驱动(3)——用面向对象思想分析vfb Framebuffer设备驱动
用面向对象思想分析vfb Framebuffer设备驱动 - 内核版本 Linux Kernel 2.6.34, 与 Robert.Love的《linux Kernel Development》(第三版)所讲述的内核版本一样- 源代码下载路径: https://www.kernel.org/pub/linux/kernel/v2.6/linux-转载 2017-07-28 15:53:13 · 630 阅读 · 0 评论 -
面向对象地分析Linux内核设备驱动(2)——Linux内核设备模型与总线
Linux内核设备模型与总线- 内核版本 linux Kernel 2.6.34, 与 Robert.Love的《Linux Kernel Development》(第三版)所讲述的内核版本一样- 源代码下载路径: https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2转载 2017-07-28 15:50:57 · 324 阅读 · 0 评论 -
面向对象地分析Linux内核设备驱动(1):——Linux内核驱动中面向对象的基本规则和实现方法
Linux内核驱动中面向对象的基本规则和实现方法- 内核版本 linux Kernel 2.6.34, 与 Robert.Love的《Linux Kernel Development》(第三版)所讲述的内核版本一样- 源代码下载路径: https://www.kernel.org/pub/linux/kernel/v2.6/linux-2转载 2017-07-28 15:48:26 · 758 阅读 · 0 评论 -
I2C总线协议详解
1.1 I2C总线知识1.1.1 I2C总线物理拓扑结构 I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来 产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。1.1.2 I2C总线特征转载 2017-07-25 16:37:52 · 468 阅读 · 0 评论 -
SPI中的极性CPOL和相位CPHA是什么以及如何设置
【背景】最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要搞懂,这两个参数到底是什么意思,以及为何要这么设置。所以才去找了SPI的极性和相位的相关资料,整理如下。【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在很多种接口,SP转载 2017-07-23 21:16:09 · 1144 阅读 · 0 评论 -
S3C2440上LCD驱动(FrameBuffer)实例开发讲解(二)
开发环境主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2四、帧缓冲(FrameBuffer)设备驱动实例代码:①、建立驱动文件:my2440_lcd.c,依就是驱动程序的最基本结构:FrameBuffer驱动的初始化和卸载部分及其他,如下:转载 2017-08-01 10:57:44 · 337 阅读 · 0 评论 -
S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)
背景知识1. LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制ST转载 2017-07-30 17:00:43 · 435 阅读 · 0 评论 -
LINUX设备驱动模型之PLATFORM(平台)总线详解
/********************************************************/内核版本:2.6.35.7运行平台:三星s5pv210/********************************************************/ 1、什么是platform(平台)总线?相对于USB、PCI、I2C、SPI等物理转载 2017-07-18 08:59:08 · 641 阅读 · 0 评论 -
linux网络子系统--穿透网络协议栈的网络调用
Chapter 7. 网络子系统 Linux强大的网络功能是如何实现的,让我们一起进入Linux内核的网络系统了解一下吧。7.1. sk_buff结构在Linux内核的网络实现中,使用了一个缓存结构(struct sk_buff)来管理网络报文,这个缓存区也叫套接字缓存。sk_buff是内核网络子系统中最重要的一种数据结构,它贯穿网络报文收发的整个周期。该结构在内核源码的转载 2017-07-19 09:18:30 · 345 阅读 · 0 评论 -
Linux设备驱动模型与kobject的关系
尽管LDD3中说对多数程序员掌握设备驱动模型不是必要的,但对于嵌入式Linux的底层程序员而言,对设备驱动模型的学习非常重要。linux设备模型的目的:为内核建立一个统一的设备模型,从而又一个对系统结构的一般性抽象描述。换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简转载 2017-07-18 15:39:46 · 1397 阅读 · 0 评论 -
linux设备驱动模型(kobject与kset)
Linux设备模型的目的:为内核建立一个统一的设备模型,从而又一个对系统结构的一般性抽象描述。换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简单了,而程序员只需要去学习接口就行了。 kobject转载 2017-07-18 14:47:57 · 410 阅读 · 0 评论 -
LINUX2.6输入子系统设备模型分析
基于输入子系统的驱动使用# insmod s3c2440_ts.ko# cat /proc/devices 查看input设备号# cat /bus/input/devices 查看触摸屏设备信息# mkdir /dev/input# mknod /dev/input/event0 c 13 64 添加设备文件,设备号为什么是13 64?Input设备的主转载 2017-07-09 07:05:50 · 311 阅读 · 0 评论 -
输入事件的传递过程
接上一篇《【转】输入子系统设备模型分析 (有修改)》 当一个事件被触发设,备将向上层报告发生了什么事。为表述这个事件的传递过程我们以触摸屏为例。触摸屏的源程序在前面博文中已有详述,这里就不赘言了。当在触摸屏上按下时会发出这样的报告: input_report_abs(dev, ABS_X, xp); //报告x坐标值 input_report_abs(转载 2017-07-16 07:51:34 · 350 阅读 · 0 评论 -
INPUT设备输入事件的传递过程
接上一篇《【转】输入子系统设备模型分析 (有修改)》 当一个事件被触发设,备将向上层报告发生了什么事。为表述这个事件的传递过程我们以触摸屏为例。触摸屏的源程序在前面博文中已有详述,这里就不赘言了。当在触摸屏上按下时会发出这样的报告: input_report_abs(dev, ABS_X, xp); //报告x坐标值 input_report_abs(转载 2017-07-09 07:11:22 · 1339 阅读 · 0 评论 -
详解Linux-I2C驱动(硬件原理\驱动分析\测试)
目录一、LinuxI2C驱动--概述1.1 写在前面1.2 I2C1.3 硬件1.4 软件1.5 参考二、LinuxI2C驱动--I2C总线2.1 I2C总线物理结构2.2 I2C总线特性2.3 开始和停止条件2.4 数据传输格式2.5 响应2.6 总线仲裁三、LinuxI2C驱动--解析EEPROM的读写3.1 概述3.2 设备地址转载 2017-09-10 11:29:09 · 5251 阅读 · 0 评论