`
izuoyan
  • 浏览: 9221388 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

嵌入式linux下usb驱动开发方法--看完少走弯路

阅读更多

嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至少需要个把月的时间,不信?那是你没做过。

本人做过2年的嵌入式驱动开发,usb占了一大半的时间。期间走了不少弯路,下面将我的血的经验教训总结下,为要从事和正在从事的战友们做一点点贡献吧:)

首先,扫盲;

要做的是阅读usb Spec(英文的哦,其实很多文章、书籍和资料真有水平的还是原创的好,就像食品往往经过加工就变了味,之前如果没有接触过的话可以先看看中文的,大概先有个印象),这个工作其实是很复杂很枯燥的一部分。看Spec的同时可以到网上大概浏览下usb开发的相关知识,这个阶段就是扫盲,不求精进。至少你得知道usb的四种传输类型吧,你得知道usb从上电开始的几个状态吧,你得知道usb设备都有哪些吧,等等。

第二步,窥全貌;

usb设备是如何工作起来的?其实usb子系统是分层次工作的,他们配合默契,做好自己的份内之事,一切以大局为重。usb驱动可以分为usb设备驱动,usb控制器驱动,hub驱动,总线驱动等等。我建议你还是顺着设备驱动的这根主线往下走吧。

在真正开始分析usb驱动代码这之前,你需要了解linux模块机制,linux驱动的platform总线构架,之类。一个模块被加载后,从driver的角度来说,真正将设备驱动起来是从probe开始的。这个你该知道。你得知道为什么usb可以即插即用,做软件的朋友该知道线程这个东西吧,和她有关系的。usb系统里面一个最重要的角色该出场了,urb。一切的一切都要围绕她进行。pipe为她铺路,数据由她承载。usb设备驱动的工作就是准备好这个urb后她的使命就基本完成了,那她把urb给了谁?这就是之前提到的usb控制器驱动,host。

至于host,现在市场上有很多款,如果你老板给你用的是市面上用的最成熟的像EHCI,那么你太幸运了。这个基本不用你写,只要稍加修改,把她注册到总线上即可。如果你很不幸,使用了像musb这样的host,你惨了,有你苦头吃了。呵呵。如果有用的可以联系我,之前研究过,兴许可以帮上什么忙啊。

第三步,精益求精;

这个时候驱动你也调过了,也许这时候已经跑起来了,也许还没跑起来。可能你开始浮躁了,到这个时候咋的也过去个把月了,如果还没出成果难免心急。好,这时候如果是这样,你该做什么呢? 重新看Spec,重新看整个驱动过程,重复之前做过的事情。这次你再看绝对和之前不一样了。这时候你要学会的是,坚持,耐力.................

最后,给大家介绍一下我自认为不错的资料,你可以参考。像复旦一哥们写的linux那点事儿(附件里有,大家嫌麻烦可以到我这里下载Linux那些事儿之我是U盘.pdf),ldd3,最好的资料是源代码。

分享到:
评论

相关推荐

    USB开发大全 (USB设备驱动开发深度解析-宋宝华.pdf usb 中文协议 USB结构体系.pdf 嵌入式Linux的USB驱动程序开发.pdf linux设备驱动开发详解-usb篇.pdf 快速USB学习.doc

    本合集包括了多份关于USB开发的重要资料,如《USB设备驱动开发深度解析-宋宝华.pdf》、《USB中文协议》、《USB结构体系.pdf》、《嵌入式Linux的USB驱动程序开发.pdf》、《linux设备驱动开发详解-usb篇.pdf》以及...

    嵌入式Linux应用完全开发手册--韦东山

    在设备驱动程序开发方面,本书涵盖了字符设备驱动、块设备驱动和网络设备驱动的编写方法,这些都是嵌入式Linux系统中与硬件交互的关键。通过这些章节,读者可以了解到如何控制和管理硬件资源,实现设备与操作系统...

    嵌入式linux驱动开发教程--源代码.rar

    本教程将通过源代码的形式,深入解析嵌入式Linux驱动开发的相关知识。以下是对该教程内容的详细概述: 1. **驱动程序基本概念** - **驱动的作用**:驱动程序是操作系统与硬件之间的桥梁,它负责翻译操作系统的指令...

    USB开发合集 (包括usb 中文协议 USB结构体系.pdf 嵌入式Linux的USB驱动程序开发.pdf linux设备驱动开发详解-usb篇.pdf 快速USB学习.doc)

    收集的几个好的USB开发学习的资料,并且包括USB中文协议. USB开发合集 (包括usb 中文协议 USB结构体系.pdf 嵌入式Linux的USB驱动程序开发.pdf linux设备驱动开发详解-usb篇.pdf 快速USB学习.doc)

    嵌入式Linux系统开发技术详解--基于ARM(完整版).pdf

    《嵌入式Linux系统开发技术详解--基于ARM》是一本深度探讨嵌入式系统开发的专业书籍,主要聚焦在使用Linux操作系统在ARM架构上的应用。ARM(Advanced RISC Machines)是广泛应用在嵌入式领域的处理器架构,以其高...

    嵌入式Linux设备驱动程序开发.pdf

    嵌入式Linux设备驱动程序开发 本文主要讲述了嵌入式Linux设备驱动程序的概念、通用模块和具体开发流程,进一步通过实例论述了如何设计和编写模块化的嵌入式Linux设备驱动程序,以及解释驱动程序的关键代码。 一、...

    嵌入式Linux内核及其驱动开发

    文章中还提到了USB和GPIO驱动程序的开发作为例子,进一步阐述了嵌入式Linux下字符设备驱动程序的开发过程。USB驱动程序需要向Linux内核提供设备文件I/O接口,而GPIO设备驱动程序需要向GPIO子系统提供GPIO设备接口。...

    基于嵌入式linux的USB驱动设计.pdf

    本文主要介绍了基于嵌入式Linux的USB驱动设计,包括USB总线简介、Linux下的USB驱动整体结构、USB主机控制器驱动、USB设备驱动等内容。本文还详细介绍了USB描述符层次结构、Linux下的USB驱动整体结构、USB主机控制器...

    【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0-尝鲜版.pdf

    【正点原子】I.MX6U嵌入式Linux驱动开发指南是一份详细的教程,针对的是基于I.MX6ULL处理器的嵌入式Linux开发。该文档由广州市星翼电子科技有限公司出版,提供了正点原子ALPHA开发板的使用指导。正点原子团队致力于...

    基于嵌入式Linux的USB摄像头驱动开发

    基于嵌入式Linux的USB摄像头驱动开发

    嵌入式linux驱动开发教程---学习.zip

    这篇教程——“嵌入式Linux驱动开发教程”将深入探讨这个主题,帮助开发者掌握驱动程序的设计和实现。 一、嵌入式Linux简介 嵌入式Linux是指在嵌入式系统中使用的Linux操作系统,它具有轻量级、可裁剪、实时性等...

    嵌入式linux设备驱动开发详解

    在嵌入式Linux系统中,设备驱动开发是至关重要的一个环节,它连接着硬件与操作系统,使得硬件资源得以有效利用并提供服务。本篇将详细探讨嵌入式Linux设备驱动开发,结合“嵌入式linux设备驱动开发详解SD.pdf”和...

    嵌入式Linux设备驱动开发详解-光盘代码

    嵌入式Linux设备驱动开发详解-光盘代码 书籍里面的光盘 实例代码: ----本书部分实例的源代码 工具: ----2410处理器的交叉编译工具 ----vivi ----busybox1.00 技术手册: ----本章实例中用到的器件手册 gcc...

    嵌入式linux下usb驱动开发

    ### 嵌入式Linux下的USB驱动开发 #### 一、引言 随着嵌入式技术的发展,USB接口因其易用性、高速度等特点,在嵌入式系统中得到了广泛的应用。在嵌入式Linux系统中,开发USB驱动是实现与外部设备交互的重要手段之一...

    嵌入式Linux应用程序开发详解

    嵌入式Linux应用程序开发详解-第11章(嵌入式Linux设备驱动开发).pdf 嵌入式Linux应用程序开发详解-第12章(Qt图形编程).pdf 由于包比较大,采用.tar.bz2类型的压缩.压缩包绝对没有问题,我自己曾经下来解压.由于没有...

    嵌入式Linux设备驱动开发笔记--赖永诚

    ### 嵌入式Linux设备驱动开发知识点解析 #### 一、嵌入式Linux设备驱动概述 嵌入式Linux设备驱动开发是嵌入式系统开发中的核心内容之一,尤其是在定制化的硬件平台上,设备驱动的编写尤为重要。设备驱动作为操作...

    嵌入式Linux下USB摄像头驱动程序的开发

    本文将详细介绍一款基于台湾凌越TP6800视频主控芯片的USB摄像头,在嵌入式Linux环境下开发驱动程序的过程,以及一般USB设备驱动程序开发的基本流程和方法。 #### 嵌入式Linux环境及其特点 嵌入式Linux开发平台凭借...

    嵌入式Linux设备驱动程序开发指南.pdf

    《嵌入式Linux设备驱动程序开发指南》是针对嵌入式Linux系统中设备驱动程序开发的一本专业书籍,由西班牙作者Alberto Liberal de los Ríos撰写,专注于讲解如何为使用设备树的嵌入式Linux系统开发驱动。本书特别...

    嵌入式linux的USB驱动添加及应用

    ### 嵌入式Linux的USB驱动添加及应用 #### 引言 随着开源软件的兴起,嵌入式Linux凭借其强大的灵活性与可定制性,成为嵌入式系统的热门选择。对于嵌入式Linux而言,驱动程序的添加是实现特定硬件功能的关键步骤之...

Global site tag (gtag.js) - Google Analytics