随笔分类 -  linux设备驱动

摘要:通过 SCSI 命令管理计算机上的数据,并将数据传输到 SCSI 设备。在本文中,作者介绍了一些 SCSI 命令,以及在 Linux® 中使用 SCSI API 时执行 SCSI 命令的方法。他介绍了 SCSI 客户机/服务器模型和存储 SCSI 命令的背景。接下来解释 Linux 通用 SCSI 驱动器 API,并提供一个示例,讨论使用通用驱动器执行 inquiry 命令的系统。SCSI 客户机/服务器模型在主机和存储介质进行通信期间,主机通常充当SCSI 启动程序。在计算机存储中,SCSI 启动程序是启动 SCSI 会话的端点,这意味着它会发送 SCSI 命令。存储介质通常充当 阅读全文
posted @ 2013-09-26 10:04 偶的神!! 阅读(3910) 评论(1) 推荐(0)
摘要:在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit302位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit1514位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送的内存大小。bit20~bit08 8位为 “魔数"(也称为"幻数")区,这个值用以与其它设备驱动程序的 ioctl 命令进行区别。bit07~bit00 8位为 &qu 阅读全文
posted @ 2013-08-22 15:44 偶的神!! 阅读(1823) 评论(0) 推荐(0)
摘要:USB主机在检测到USB设备插入后,就要对设备进行枚举了。为什么要枚举呢?枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。在说枚举之前,先大概说一下USB的一种传输模式——控制传输。这种传输在USB中是非常重要的,它要保证数据的正确性,在设备的枚举过程中都是使用控制传输。控制传输分为三个过程:①建立过程。②可选的数据过程。③状态过程。建立(Setup)过程都是由USB主机发起,它开始于一个Setup令牌包,后面紧跟一个DATA0包。如果是控制 阅读全文
posted @ 2013-07-23 16:22 偶的神!! 阅读(1200) 评论(0) 推荐(0)
摘要:摘 要:基于一种新型USB 总线接口芯片CH372,设计出一种人机接口设备-USB 鼠标。阐述了CH372 的工作原理和特点,给出了系统的硬件电路图;在软件设计中,分析了HID 类设备描述符枚举过程,根据主程序流程图,写出了部分单片机本地端主程序。通过硬件和软件调试,最后成功模拟出鼠标左键和右键功能。 1 引言 USB(Universal Serial Bus,通用串行总线)是计算机上的一种新型接口技术,它使得计算机和外部设备的连接十分方便。HID 是Human InterfaceDvices 的缩写,即人机接口设备,是USB 协议中最早提出并支持的一种设备类。典型的HID 有键盘和鼠标等.. 阅读全文
posted @ 2013-07-23 16:15 偶的神!! 阅读(1491) 评论(0) 推荐(0)
摘要://============================================================================// 文件名: USBDESC.C// 用 途: USB描述符// 作 者: shenfei5// 时 间: 2007.2.3// 版 本: V1.10//============================================================================#include #include "usb.h" // USB模块#include "hid.h&quo 阅读全文
posted @ 2013-07-23 15:52 偶的神!! 阅读(474) 评论(0) 推荐(0)
摘要://Linux设备驱动之HID驱动 源码分析http://blog.chinaunix.net/uid-20543183-id-1930836.htmlHID是Human Interface Devices的缩写.翻译成中文即为人机交互设备.这里的人机交互设备是一个宏观上面的概念,任何设备,只要符合HID spec,都可以称之为HID设备.常见的HID设备有鼠标键盘,游戏操纵杆等等.在接下来的代码分析中,可以参考HID的spec.这份spec可以在www.usb.org上找到.分析的代码主要集中在linux-2.6.25/drivers/hid目录下.对此设备结点的处理有两种接口,一种是rea 阅读全文
posted @ 2013-07-23 14:27 偶的神!! 阅读(6270) 评论(0) 推荐(1)
摘要:Linux USB 鼠标驱动程序详解USB 总线引出两个重要的链表!一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)的区别是什么?USB 设备驱动程序包含 USB 设备的一些通用特性,将与所有 USB 设备相匹配。在 USB core 定义了:struct usb_devic 阅读全文
posted @ 2013-07-23 11:44 偶的神!! 阅读(3340) 评论(0) 推荐(0)
摘要:------------------------------------------------------------------实验:写一个简单的内核模块并加载,消除对内核的恐惧感。此程序网上有,但有些不够详细,有的连一些基本命令都是错误的,特意记录下。source codehello.c------------------------------------------------------------------#include #include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_i 阅读全文
posted @ 2013-01-11 14:26 偶的神!! 阅读(357) 评论(0) 推荐(0)