- 博客(7)
- 资源 (15)
- 收藏
- 关注
原创 设备驱动中的regmap
regmap 机制是在 Linux 3.1 加入进来的特性。主要目的是减少慢速 I/O 驱动上的重复逻辑,提供一种通用的接口来操作底层硬件上的寄存器。其实这就是内核做的一次重构。regmap 除了能做到统一的 I/O 接口,还可以在驱动和硬件 IC 之间做一层缓存,从而能减少底层 I/O 的操作次数。以一个 I2C 设备为例。读写一个寄存器,肯定需要用到i2c_transfer这样的 I2C ...
2018-07-27 14:31:58 3293
转载 Linux设备驱动模型框架分析(六)——LDDM的设备管理:uevent,mdev
ueventuevent是kobject的一部分,用于在kobject状态发生改变时,例如增加、移除等,通知用户空间程序。用户空间程序收到这样的事件后,会做相应的处理。该机制通常是用来支持热拔插设备的,例如U盘插入后,USB相关的驱动软件会动态创建用于表示该U盘的device结构(相应的也包括其中的kobject),并告知用户空间程序,为该U盘动态的创建/dev/目录下的设备节点,更进一步...
2018-07-24 16:16:34 784
转载 Linux设备驱动模型框架分析(五)——LDDM的展现:sysfs
sysfs是一个基于RAM的文件系统,它和kobject一起,可以将Kernel的数据结构导出到用户空间,以文件目录结构的形式,提供对这些数据结构(以及数据结构的属性)的访问支持。1.sysfs 所包含的所有内容2.这是内核对系统中所有设备的分层次表达模型,也是 /sys 文件系统管理设备的最重要的目录结构3.这个目录下维护一个按字符设备和块设备的主次号码(major:minor)链接到真实的设备...
2018-07-11 16:28:36 919
转载 Linux设备驱动模型框架分析(四)——LDDM的高层视图class
类是一个设备的高层视图,抽象出了底层的实现细节。类允许用户空间使用设备所提供的功能,而不关心设备是如何连接的,和它们是如何工作的。类子系统是向用户空间导出信息的最好方法。类的核心数据结构是class,在分析device中介绍过,这个class不如bus,device,driver好理解,我理解它的主要功能是一是设备管理,二是抽象出一类设备的公共属性。前面分析subsys_private时说过,cl...
2018-07-05 20:09:22 673
转载 Linux设备驱动模型框架分析(三)——LDDM的实体bus_type、device和device_driver
在Linux设备模型中,Bus(总线)是一类特殊的设备,它是连接处理器和其它设备之间的通道(channel)。为了方便设备模型的实现,内核规定,系统中的每个设备都要连接在一个Bus上,这个Bus可以是一个内部Bus、虚拟Bus或者Platform Bus。device和device driver是Linux驱动开发的基本概念。Linux kernel的思路很简单:驱动开发,就是要开发指定的软件...
2018-07-05 19:38:39 858
转载 linux设备驱动模型架构分析(二)——LDDM的底层实现kobject
Linux设备驱动模型体系十分庞大,在不涉及细节的情况下建立顶层图景比较困难,我们采用自底向上的分析方法,首先分析关键的数据结构,然后再建立关键数据结构的关系。在阅读Linux内核源代码时(不仅仅对linux源码适用),通过核心数据结构,即可理解某个模块大部分逻辑,使用面向对象思想的设备模型部分尤为明显。这种思维方法值得刻意地锻炼LDDM的底层实现:kobject,kset和kobj_typeLi...
2018-07-04 16:13:56 1233 1
转载 linux设备驱动模型架构分析 一
概述LDD3中说:“Linux内核需要一个对系统结构的一般性描述。”这个描述就是linux设备驱动模型(下面简称为LDDM)。LDDM不是独立存在,其体系如下图所示:对架构的每一部分本文都会开辟独立的章节进行描述。暂且抛开这个架构,首先从总体上了解一下LDDM。LDDM与驱动程序密切相关,而驱动程序处于linux系统中的什么位置呢?我们自顶向下一步步来说,先看下图[以下内容以http://www....
2018-07-04 15:14:49 10758 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人