Linux设备驱动
国境之南Fantasy
Coder
展开
-
/dev、/sys/devices 和 /sys/dev 之间区别
/dev,设备文件存储目录,应用程序通过对这些文件的读写和控制,可以访问实际的设备;/sys/devices 目录,按照设备挂接的总线类型,组织成层次结构,保存了系统所有的设备;是文件系统管理设备的最重要的目录结构;这是内核设备按总线类型分层放置的目录结构, devices 中的所有设备都是连接于某种总线之下,在这里的每一种具体总线之下可以找到每一个具体设备的符号链接,它也是构转载 2016-03-17 10:18:45 · 4828 阅读 · 0 评论 -
linux /sys目录下各个子目录的具体说明
/sys下的子目录内容 # ls /sys/block class firmware kernel powerbus devices fs module-----------------------------------------------------------------------------转载 2016-03-17 10:28:53 · 3954 阅读 · 0 评论 -
Linux下面一个简单的虚拟platform驱动
/* * Yao.GUET * http://blog.csdn.net/Yao_GUET * Linux下面一个简单的虚拟platform驱动 */在Linux之中,约定如果设备不属于任何的总线,则可以把它注册为虚拟的platform设备。下面就简单来学习一下一个简单的platform设备是怎么创建出来的。一般注册platform驱动的步骤是转载 2016-03-17 14:21:59 · 1198 阅读 · 0 评论 -
字符设备驱动、平台设备驱动、设备驱动模型、sysfs的比较和关联
学习Linux设备驱动开发的过程中自然会遇到字符设备驱动、平台设备驱动、设备驱动模型和sysfs等相关概念和技术。对于初学者来说会非常困惑,甚至对Linux有一定基础的工程师而言,能够较好理解这些相关技术也相对不错了。要深刻理解其中的原理需要非常熟悉设备驱动相关的框架和模型代码。网络上有关这些技术的文章不少,但多是对其中的某一点进行阐述,很难找到对这些技术进行比较和关联的分析。对于开发者而言,能够转载 2016-03-17 14:52:35 · 5121 阅读 · 1 评论 -
file结构中的private_data
这个是Linux下连接VFS文件系统框架和不同文件/文件系统底层实现之间的一个核心数据结构,虽然它只是一个指针,但是一个指针可以解决所有问题。我们回想一下用户态线程的创建结构,函数的入口同样是一个void*指针,而千言万语汇成一根指针,诗可以兴、可以观、可以群、可以怨,可以解决所有问题。因为file是VFS框架的一个基本概念,它要支持文件操作结构,例如open/read/write/relea转载 2016-03-17 17:45:22 · 3883 阅读 · 0 评论 -
linux下I2C驱动架构全面分析
I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线。 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中。 但是Linux的i2c驱动体系结构却有相当的复杂度转载 2016-03-24 16:30:33 · 396 阅读 · 0 评论 -
Linux设备驱动之——I2C总线
2 I2C子系统2.1 LinuxI2C子系统架构在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统。2.2 三大组成部分1、I2C核心(i2c-core)I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(algorithm)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。转载 2016-03-24 16:47:08 · 980 阅读 · 0 评论 -
Linux SPI总线和设备驱动架构之一:系统概述
目录(?)[+]SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS 片选信号SCK 时钟信号MISO 主设备的数据输入、从设备的数据输出脚MOSI 主设备的数据输出、从设备的数据输入脚因为在转载 2016-03-25 21:24:07 · 810 阅读 · 0 评论 -
_IO, _IOR, _IOW, _IOWR 宏的用法与解析
在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送转载 2016-03-26 12:58:41 · 961 阅读 · 0 评论