linux驱动
非小号
这个作者很懒,什么都没留下…
展开
-
USB协议
一 枚举过程:◆ 用户将一个USB设备插入USB端口,主机为端口供电,设备此时处于上电状态。◆主机检测设备。◆集线器使用中断通道将事件报告给主机。◆主机发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息。◆集线器检测设备是低速运行还是高速运行,并将此信息送给主机,这是对Get_Port_Status请求的响应。◆主机发送Set_Port_Featur转载 2012-08-16 23:13:20 · 1926 阅读 · 0 评论 -
网卡驱动DM9000
分析内核版本:Linux 2.6.36.2。 分析网卡:DM9000一、网络设备驱动程序分析。1、Linux 网络设备驱动程序 分层:Linux 网络设备驱动程序从上到下可分为4层,依次为:网络协议接口层、网络设备接口层、提供实际功能的设备 驱动功能层、以及 网络设备与媒介层。这4层作用如下:1) 网络协议接口层:网络协议接口层想网络协议提供统一的数据包收发接转载 2012-08-25 10:44:35 · 596 阅读 · 0 评论 -
Makefile中的.PHONY
Phony TargetsPHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字。有两种理由需要使用PHONY 目标:避免和同名文件冲突,改善性能。如果编写一个规则,并不产生目标文件,则其命令在每次make 该目标时都执行。例如: clean: rm *.o temp因为"rm"命令并不产生"clean"文件,则每次执行"make clean"的时候,该命转载 2012-09-03 23:40:20 · 490 阅读 · 0 评论 -
Linux USB驱动分析
USB 总线引出两个重要的链表!一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。 USB 设备驱动程序(usb device driver)和 USB 驱动程序(us转载 2012-08-16 22:06:56 · 620 阅读 · 0 评论 -
Linux 块设备分析
块设备驱动分析块设备驱动分析,基于sbull开始之前先来了解这个块设备中的核心数据结构:struct sbull_dev { int size; /* Device size in sectors */ u8 *data原创 2012-08-23 22:40:11 · 486 阅读 · 0 评论 -
Input 子系统
Linux的input子系统提供了输入设备的驱动框架,比如鼠标、键盘、触摸屏等就属于输入设备。Linux中关于input子系统的文档在Documentation/input目录,input的核心代码在input.c和input.h中。本文没有涉及input的一些细节实现,比如input_dev->grab,以及按键的定时事件等。1. input_handle, input_hand转载 2012-08-22 21:21:07 · 451 阅读 · 0 评论 -
Linux SPI驱动
===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20===============================board_list——》struct boardinfo——》struct spi_board_info——》struct spidev_dat原创 2012-08-22 20:11:00 · 2289 阅读 · 0 评论 -
LINUX SPI驱动笔记
SPI总线由MISO(串行数据输入)、MOSI(串行数据输出)、SCK(串行移位时钟)、CS(使能信号)4个信号线组成linux下SPI驱动开发首先明确SPI驱动层次,如下图:我们以上面的这个图为思路Spi busSpi总线对应的总线类型为spi_bus_type,在内核的drivers/spi/spi.c中定义struct bus_type原创 2012-08-22 16:51:38 · 5424 阅读 · 0 评论 -
Linux的操作系统I2C驱动架构解说
最近因为工作需要涉及到了I2C总线。虽然我过去用过I2c,但看了 Linux kernel 后才发现,一个 layer 能被做到这样完善。1.Linux的I2C驱动架 Linux中I2C总线的驱动分为两个部分,总线驱动(BUS)和设备驱动(DEVICE)。其中总线驱动的职责,是为系统中每个I2C总线增加相应的读写方法。但是总线驱动本身并不会进行任何的通讯,它只是存在在那里,等待设备驱动调用转载 2012-08-20 22:51:58 · 1294 阅读 · 0 评论 -
Linux I2C驱动(OMAP3630 ) omap_i2c_probe
函数omap_i2c_probe的执行流程如下图: 图3.2 omap_i2c_probe的执行流程 函数omap_i2c_probe的简要代码如下:static int __init omap_i2c_probe(struct platform_device *pdev) { struct omap_i2c_dev *d转载 2012-08-20 20:12:17 · 2584 阅读 · 0 评论 -
Linux SPI驱动之笔记
注册spi驱动:spi_register_driver() -> probe() -> 创建节点,及注册file_operation结构 -> open()[将filp.private_dat指向spidev_data] ->read()[->spidev_sync_read() ->spi_sync() ->_spi_sync()完成read操作]相应write(原创 2012-08-22 20:08:19 · 1315 阅读 · 0 评论 -
Linux SPI驱动
作者:刘洪涛,华清远见嵌入式学院讲师。一、概述基于子系统去开发驱动程序已经是linux内核中普遍的做法了。前面写过基于I2C子系统的驱动开发。本文介绍另外一种常用总线SPI的开发方法。SPI子系统的开发和I2C有很多的相似性,大家可以对比学习。本主题分为两个部分叙述,第一部分介绍基于SPI子系统开发的理论框架;第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(转载 2012-08-21 22:44:07 · 1423 阅读 · 1 评论 -
Linux I2C 几个结构体间的关系
在Linux内核源代码中的drivers目录下包含一个i2c目录,而在i2c目录下又包含如下文件和文件夹:• i2c-core.c这个文件实现了I2C核心的功能以及/proc/bus/i2c*接口。• i2c-dev.c实 现了I2C适配器设备文件的功能,每一个I2C适配器都被分配一个设备。通过适配器访问设备时的主设备号都为89,次设备号为0~255。应用程序通过 “i2c-%转载 2012-08-21 16:16:40 · 5820 阅读 · 0 评论 -
Linux I2C 设备注册
OMAP3630 I2C device驱动 在Linux内核中,I2C device驱动位于drivers/i2c/chips目录下,可以看到该目录下有很多相关的device驱动,这里以xxxx项目的mma7455为例介绍device驱动的注册过程,对应的device驱动程序为mma7455.c。 既然有device驱动,那么必定有相应的device,I2C的device是什么转载 2012-08-20 20:18:27 · 6960 阅读 · 2 评论 -
system与exec区别
system是用shell来调用程序=fork+exec+waitpid,而exec是直接让你的程序代替用来的程序运行。system 是在单独的进程中执行命令,完了还会回到你的程序中。而exec函数是直接在你的进程中执行新的程序,新的程序会把你的程序覆盖,除非调用出错,否则你再也回不到exec后面的代码,就是说你的程序就变成了exec调用的那个程序了。原创 2012-10-12 14:09:05 · 572 阅读 · 0 评论