linux
文章平均质量分 78
jianyun123
我不是神
展开
-
USB gadget设备驱动解析(3)
Linux USB 设备端驱动有两部分组成。一部分是USB 设备控制器(USB Device Controller, UDC)驱动、另一部分是硬件无关的功能驱动(如:鼠标、u盘、usb串口、usb网络等);也可以分为3层的,分别是:Controller Drivers、Gadget Drivers、Upper Layers,大概意思都差不多。一、控制器(USB Device C转载 2010-04-24 16:28:00 · 515 阅读 · 0 评论 -
Linux 字符设备驱动程序的编写框架
一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能转载 2010-04-24 20:57:00 · 373 阅读 · 0 评论 -
usb 鼠标驱动注解及测试
参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。 下文阴影部分为注解。 一、驱动加载部分 static int __init usb_mouse_init(void) {原创 2010-04-24 21:25:00 · 428 阅读 · 0 评论 -
mdev实现U盘或SD卡的自动挂载
mdev是busybox中的一个udev管理程序的一个精简版,他也可以实现设备节点的自动创建和设备的自动挂载,只是在实现的过程中有点差异,在发生热插拔时间的时候,mdev是被hotplug直接调用,这时mdev通过环境变量中的 ACTION 和 DEVPATH,来确定此次热插拔事件的动作以及影响了/sys中的那个目录。接着会看看这个目录中是否有“dev”的属性文件,如果有就利用这些信息为转载 2010-04-24 23:19:00 · 475 阅读 · 0 评论 -
实例解析linux内核I2C体系结构
一、概述谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。第一种方法的好处(对应第二种方法的劣势)有: ● 思路比较直接,不需要花时间去了解linux内核中复杂的I2C子系统的操作方法。第一种方法问题转载 2010-04-24 23:22:00 · 694 阅读 · 0 评论 -
linux bin 目录下命令简要说明
命令解释说明alsacard检测声卡alsaunmute静音设置arch查看硬件类型awk一种程序语言环境basename去除文件名的目录部分和后缀部分,返回一个字符原创 2010-04-24 21:02:00 · 928 阅读 · 0 评论 -
Linux启动过程剖析
Linux启动过程的剖析能帮助那些想深入学习Linux用户建立一个相关Linux启动过程的清晰概念,进而可以进一步研究Linux接下来是如何工作的。Linux启动过程如下:当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序 lilo或grub开始引导Linux,Linux首先进行内核的引导,接下来执行init程序,init程序原创 2010-04-24 23:02:00 · 391 阅读 · 0 评论 -
Linux PCI驱动的编写
PCI是外围设备互联的简称(Peripheral Component Interconnect)的简称,作为一种通用的总线接口标准,他在计算机系统中得到了广泛的使用。PCI的速度能够达到132M/s。在这里简单的介绍一下 linux 下PCI驱动的实现。在编写一个PCI驱动的时候我们先得确定系统中是否有我们的设备。我们可以通过lspci查看PCI设备。[root@localho转载 2010-04-24 23:47:00 · 422 阅读 · 0 评论 -
嵌入式linux上QT标准键盘输入的实现
在嵌入式平台上运行QTE时,使用的键盘通常不是标准键盘,而是嵌入式设备外扩的普通按键。那么实现QTE键盘输入的方法大体上可以分为两类:(1)编写一个普通按键驱动,然后开辟一个QT线程读取按键值,在通过信号把按键值发送出去。需要接收键盘输入的目标,声明槽函数,接收键盘信号。 (2)将按键驱动编写成标准键盘驱动,让QTE感觉和标准键盘在打交转载 2010-04-24 23:50:00 · 684 阅读 · 0 评论 -
Linux下USB从设备使用gadget API
一、USB从设备驱动介绍USB总线上主要有三类设备:主控制器(Host Controller, such as EHCI、UHCI、OHCI)、集线器(hub)和设备(device)。Host controller(HC)负责总线的管理,是总线的指挥官,总线上一切传输都是由HC发起的,支持OTG的Device也能发起传输;Hub是总线的节点,用来扩展总线上可接入设备的数量,对于转载 2010-04-24 16:16:00 · 939 阅读 · 0 评论 -
spinlock 与linux内核调度的关系
关于自旋锁用法介绍的文章,已经有很多,但有些细节的地方点的还不够透。我这里就把我个人认为大家容易有疑问的地方拿出来讨论一下。 一、自旋锁(spinlock)简介 自旋锁在同一时刻只能被最多一个内核任务持有,所以一个时刻只有一个线程允许存在于临界区中。这点可以应用在多处理机器、或运行在单处理器上的抢占式内核中需要的锁定服务。 二、信号量简介 这里转载 2010-04-24 21:19:00 · 299 阅读 · 0 评论 -
嵌入式Linux交叉编译环境的建立(基于 ubuntu 8.10)
在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。本文具体说明了嵌入式交叉编译环境的建立过程和具体的操作步骤,希望能够对各位朋友搭建对应的交叉编译环境有所帮助。一、所需软硬件环境 ■ 主机环境建立交叉编译工具链的主机环境:Ubuntu 8.10,gcc-4.3.2 ■ Ubuntu 8.原创 2010-04-24 22:03:00 · 357 阅读 · 0 评论 -
Linux图形界面中客户端、服务器、窗口管理器之间的关系
很多LINUX初学者在学习linux图形方面的知识时会遇到一些概念,如:X、X11、Xfree86、WM、KDE、GNOME、QT、QT/E、Qtopia、DirectFB、Framebuffer、显卡加速驱动等等。理解它们之间是什么关系,对我们学习来说是非常重要的。写这篇文章的目的,就是想让大家明晰这些概念及它们之间的关系。(部分内容引用网络上的一些描述比较清晰的内容)一、Lin转载 2010-04-24 22:22:00 · 330 阅读 · 0 评论 -
Udev实现U盘或SD卡的自动挂载
Linux传统上使用静态设备创建的方法,在dev下创建了大量的节点,而不管这些节点相应的硬件设备是否存在。采用udev的方法,系统检测到设备才会去创建这些设备对应的节点。这里我们简单的说一下udev的工作原理:Udev是依赖于sysfs的,当系统中添加一个新的设备后,内核检测到后就会产生一个hotplug event并查找/proc/sys/kernel/hotplug去找出转载 2010-04-24 23:18:00 · 529 阅读 · 0 评论 -
基于Socket的UDP和TCP编程介绍
一、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种。 UDP:用户数据报转载 2010-04-24 23:20:00 · 550 阅读 · 0 评论 -
一个通用Makefile的编写
我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c的源文件。如果我们用gcc去一个一个编译每一个源文件的话,效率会低很多,但是如果我们可以写一个Makefile,那么只需要执行一个make就OK了,这样大大提高了开发效率。但是Makefile的语法规则众多,而且缺乏参考资料,对于初学者来说,写起来还是有一定的难度,往往令很多人望而生畏转载 2010-04-24 23:50:00 · 436 阅读 · 0 评论 -
从USB设备插上到驱动probe调用流程分析
本文将详细讲述2.6.22下的一个USB设备插上linux系统的PC后是如何一步一步调到我们的usb设备驱动的probe函数的,我们知道我们的USB驱动的probe函数中的一个参数是interface结构,因此一般来说, 一个USB设备中的任何一个转载 2010-04-24 15:57:00 · 969 阅读 · 0 评论 -
USB gadget设备驱动解析(1)
利用Linux USB gadget设备驱动可以实现一些比较有意思的功能,举两个例子: 1、一个嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC;设别,从而非常方便的完成文件交互,这个功能被广泛的应用于手机、数码相机等产品中。2、一个嵌入式设备通过USB连接到你的PC后,在你的PC端会出现一个新的网络连接,在嵌入式设备上也会有一个网卡设备,你可转载 2010-04-24 16:22:00 · 740 阅读 · 0 评论 -
Linux USB gadget设备驱动解析(2)---驱动调试
本文主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析。一、背景知识 1、USB Mass Storage类规范概述 USB 组织在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定义了海量存储设备类(Mass St转载 2010-04-24 16:26:00 · 638 阅读 · 0 评论 -
Linux NAND FLASH驱动代码分析
FLASH驱动在嵌入式系统中有着举足轻重的位置,而目前市场上NAND FLASH的价格又要便宜与NOR FLASH,随着越来越多的平台支持从NAND FLASH中启动,掌握NAND flash的驱动编写有着重要的现实意义,由于内核已经完成了大部分的工作,实际工作中大部分工程师对NAND FLASH驱动只是简单的修改,对其工作原理并不太清楚,下面我们来分析一下NAND FLASH的代码流转载 2010-04-24 23:51:00 · 477 阅读 · 0 评论