Linux以其稳定、高效、易定制、硬件支持广泛、源代码开放等特点,已在嵌入式领域迅速崛起,被国际上许多大型的跨国企业用作嵌入式产品的系统平台。
USB是Universal Serial Bus (通用串行总线)的缩写,是1995年由Microsoft、Compaq、IBM等公司联合制定的一种新的PC串行通信协议。它是一种快速、灵活的总线接口。与其它通信接口相比较,USB接口的最大特点是易于使用,这也是USB的主要设计目标。USB的成功得益于在USB标准中除定义了通信的物理层和电器层标准外。还定义了一套相对完整的软件协议堆栈。这使得多数USB设备都很容易在各种平台上工作。作为一种高速总线接口,USB适用于多种设备(如数码相机、MP3播放器、高速数据采集设备等)。另外,USB接口还支持热插拔,而且所有的配置过程都由系统自动完成,无须用户干预。
1 Linux下的USB设备驱动
在Linux内核的不断升级过程中,驱动程序的结构相对稳定。由于USB设备也是外围设备的一种,因此,它的驱动程序结构与普通设备的驱动程序相同。Linux系统的设备分为字符设备(CharDevice)和块设备(BlockDevice)。字符设备支持面向块字符的I/O操作,它不通过系统的快速缓存,而只支持顺序存取。块设备则支持面向块的I/O操作,所有块设备的I/O操作都通过在内核地址空间的I/O缓冲区进行,可以支持几乎任意长度和任意位置上的I/O请求。块设备与字符设备还有一点不同,就是块设备必须能够随机存取(RandomAccess),字符设备则没有这个要求。典型的字符设备包括鼠标、键盘、串行口等,而块设备主要包括硬盘软盘设备、CD-Rom等。由于USB设备主要都是通过快速串行通讯来读写数据,因此一般都可作为字符设备来进行处理。
2 Linux下的USB core
2.1 Linux中USB core与USB的结构关系
Linux操作系统中有一个叫做“USB core”的子系统,可提供支持USB设备驱动程序的API和USB主机控制器的驱动程序。同时提供有许多数据结构、宏定义和功能函数来对硬件或设备进行支持。在Linux下编写USB设备的驱动程序时,从严格意义上讲,就是使用这些USB core的子系统所定义的数据结构、宏和函数来编写数据的处理功能。在Linux下,core、host controller和driver三者之间的关系如图1所示。
2.2 USB core的初始化
USB core从USB子系统的初始化开始。USB子系统的初始化则在文件drivers/usb/core/usb.c里。其代码如下:
subsys_initcall(usb_init);
module_exit(usb_exit);
代码中的subsys_initcall是一个宏,相当于module_init,只不过因为这部分代码是核心,开发者通常把它看作一个子系统,而不仅仅是一个模块。因为USB core模块代表的不是某一个设备,而是所有USB设备赖以生存的模块。因此,在Linux中,像这样把一个类别的设备驱动归结为一个子系统(比如PCI子系统、scsi子系统等)。基本上,drivers/目录下面第一层的每个目录都可算作一个子系统,因为它们代表了一类设备。一般地,usb_init是真正的初始化函数,而usb_exit()则是整个USB子系统结束时的清理函数:
函数usb_init主要完成初始化和注册设备。
2.3 USB里的设备模型
Linux里一个很重要的概念是设备模型。对于驱动来说,设备的概念就是总线和与其相连的各种设备。在内核里,总线、设备、驱动也就是bus、device、driver是设备模型很重要的三个概念,它们都有自己专属的结构。在include/linux/devide.h里的定义为:
struct bus_type {……};
struct device {……);
struct device_driver {……};
每次出现一个设备都要向总线注册,每次出现一个驱动,也要向总线注册。系统初始化时,应扫描连接许多设备,并为每一个设备建立一个struct device的变量。每一次都应有一个驱动程序,并要准备一个struct device_driver结构的变量。还要把这些变量加入相应的链表(如把device插入devices链表,driver插入drivers链表)。这样,通过总线就能找到每一个设备和每一个驱动。然而,假如计算机里只有设备却没有对应的驱动,那么设备将无法工作。反过来,倘若只有驱动却没有设备,驱动也起不了任何作用。对于USB设备,它可以在计算机启动以后再插入或者拔出计算机。由于device可以在任何时刻出现,而driver也可以在任何时刻被加载,所以,每当一个struct device诞生时,它就会去BUS的drivers链表中寻找自己的另一半。如果找到了匹配的设备,就调用device_bind_driver,并绑定好。
Linux设备模型中的总线落实在USB子系统里就是usb_bus_type,它在usb_init函数中可用retval=bus_register(&usb_bus_type)语句注册,而在driver.c文件里的定义如下:
该函数的形参对应的就是总线两条链表里的设备和驱动。当总线上有新设备和驱动时,这个函数就会被调用。
3 USB驱动程序的描述符
一个设备可以有多个接口,一个接口可代表一个功能,因此,每个接口都对应着一个驱动。例如一个USB设备有两种功能,一个键盘,上面还带一个扬声器,这就是两个接口,就需要两个驱动程序,一个是键盘驱动程序,一个是音频流驱动程序。
一个驱动程序是否支持一个设备,要通过读取设备的描述符来判断。那么,什么是USB的描述符呢?USB的描述符是一个带有预定义格式的数据结构,里面保存有USB设备的各种属性和相关信息,可以通过向设备请求获得它们的描述符内容来深刻了解和感知一个USB设备。主要有四种USB描述符,分别为:接口描述符、端点描述符、设备描述符和配置描述符。
协议规定:一个USB设备必须支持这四大描述符,还有些描述符不是必须包含的,有些特殊设备用来描述设备的不同特性,但这四大描述符是一个都不能少的。USB设备里有一个eeprom,可用来存储设备本身信息,设备的描述符就存储在这里。
上述四个描述符分别放在了include/linux/usb.h文件中的struct usb_host_interface、structusb_host_endpoint、struct usb_device、struetusb_host_config里,而描述符结构体本身定义在include/linux/usb/ch9.h里.并分别用struct usb_interface_descriptor、struct usb_host_endpoint、structusb_device_descriptor和struct usb_config_descriptor来表示。描述符结构体的定义应完全按照USB协议对描述符的规定来定义。
4 USB接口驱动
4.1 接口结构
平时编写的USB驱动通常指的是写USB接口的驱动,一个接口对应一个接口驱动程序,需要以一个struct usb_driver结构的对象为中心,并以设备的接口提供的功能为基础,来进行USB驱动程序的编写。struct usb_driver结构体一般定义在include/linux/usb.h文件里。具体如下:
struct usb_driver{
const char*name;
int(*probe) (struct usb_interface*intf,const
struct usb_device_jd*id);
void(*disconnect) (struct usb_interface*intf);
int(*ioctl) (struct usb_interface*intf,unsigned
int code,void*buf);
int (*suspend) (struct usb_interface*intf,
pm_message_t message);
int(*resume) (struct usb_interface*intf);
void(*pre_reset) (struct usb_interface*intf);
void(*post_reset)(struct usb_interface*intf);
const struct usb_device_id*id_table;
struct usb_dynids dynids;
struct usbdrv_wrap drvwrap;
unsigned int no_dynamic_id:1;
unsigned int supports_autosuspend:1;
};
Name为驱动程序的名字,对应于/sys/bus/usb/drivers/下面的子目录名称。它只是彼此区别的一个代号,这里的名字在所有的USB驱动中必须是唯一的。probe用来看看这个USB驱动是否愿意接受某个接口的函数。Disconnect函数将在接口失去联系或使用rmmod卸载驱动将它和接口强行分开时被调用。Ioctl函数则用在驱动通过usbfs和用户空间进行交流时使用。Suspend、esume分别在设备被挂起和唤醒时使用。pre_reset、post_reset分别在设备将要复位(reset)和已经复位后使用。id_table的变量可用来判断是否支持某个设备接口。Dynids是支持动态id的。实际上,即使驱动已经加载了,也可以添加新的id给它。drvwrap是给USB core区分设备驱动和接口驱动用的。no_dynamic_id可以用来禁止动态id。supports_autosuspend可对autosuspend提供支持,如果设置为0,则不再允许绑定到这个驱动的接口autosuspend。
接口驱动
当insmod或modprobe驱动的时候,经过一个曲折的过程,就会调用相应USB驱动里的xxx_init函数,进而去调用usb_register (),以将相应的USB驱动提交给设备模型,添加到USB总线的驱动链表里。当rmmod驱动时,同样,在经过一个曲折的过程之后,再调用相应驱动里的xxx_cleanup函数,进而调用usb_deregister ()将相应的USB驱动从USB总线的驱动链表里删除。
5 结束语
本文介绍了Linux下USB core的工作原理,同时介绍了驱动USB必须了解的四个描述符。此外,还介绍了Linux下usb接口驱动的工作原理。本文介绍的方法能适应于Linux下各种不同的USB设备驱动程序的开发。
嵌入式Linux下的USB设备驱动技术
- 嵌入式(286114)
- Linux(206514)
相关推荐
Linux嵌入式驱动开发
全部传送门Linux嵌入式驱动开发01——第一个驱动Hello World(附源码)Linux嵌入式驱动开发02——驱动编译到内核Linux嵌入式驱动开发03——杂项设备驱动(附源码)Linux
2021-12-17 06:22:21
Linux嵌入式系统中内核技术的可动态拓展技术有哪些
,研究嵌入式Linux的动态扩展具有重要意义。动态扩展是指系统在运行状态下实现系统的升级和维护。动态扩展技术目前被广泛应用在软件系统开发的各个领域。组件、可扩展的数据库系统、主动网等多种技术都是动态
2019-08-06 06:39:34
Linux作为嵌入式操作系统的优势是什么?如何建立嵌入式Linux?
Linux作为嵌入式操作系统的优势是什么如何建立嵌入式Linux?当前流行的几种嵌入式Linux系统
2021-04-27 06:34:40
嵌入式 linux字符设备驱动的设计与应用,看完你就懂了
本文通过实现对 PXA255开发板外围字符设备(电机、数码管、串口和 mini键盘)的操作和控制,详细讨论了嵌入式 linux字符设备驱动的设计与应用。
2021-04-26 06:35:07
嵌入式Linux下USB蓝牙设备驱动
嵌入式Linux下USB蓝牙设备驱动.pdf第 18卷 第 2期 电子设计工程 2010年 2月V01.18No.2ElectronicDesignEngineeringFeb.2010...
2021-11-05 07:46:01
嵌入式Linux下USB蓝牙设备驱动
设备驱动,从而有助于蓝牙设备在嵌入式领域广泛应用。【关键词】:蓝牙驱动;;USB设备;;MP;;嵌入式Linux【DOI】:CNKI:SUN:GWDZ.0.2010-02-025【正文快照】:随着无线
2010-04-24 09:30:17
嵌入式Linux下LED报警灯驱动设计
嵌入式Linux下LED报警灯驱动设计及编程《嵌入式Linux下LED报警灯驱动设计及编程》实验报告学生姓名:学 号:专业班级:指导教师:完成时间:实验5嵌入式Linux下LED报警灯驱动设计及编程
2021-11-04 08:18:25
嵌入式Linux下PCI设备驱动的设计
]。Linux因其开放源代码以及稳定的性能,越来越受到广大用户青睐。同时,基于Linux内核的嵌入式操作系统应用势头强劲,开发基于Linux的设备驱动程序,具有很强的实用性和可移植性[2]。1 PCI总线概述
2011-10-08 09:44:30
嵌入式Linux下的USB设备驱动
邱娜灵,蒋朝根(西南交通大学信息科学与技术学院,四川成都610031)0 引言在众多的嵌入式操作系统中,Linux以其稳定、高效、易定制、硬件支持广泛、源代码开放等特点,已在嵌入式领域迅速崛起,被
2018-12-07 10:29:50
嵌入式Linux下的LCD驱动程序怎么编写?
随着嵌入式Linux的迅速发展,由于其没有昂贵的版权费,完全开放源代码,可裁减性与可移植性,因此是开发嵌入式产品的优秀操作系统平台。设备驱动程序是Linux内核的重要组成部分,运行在Linux内核
2019-11-11 07:33:32
嵌入式Linux驱动程序设计高级培训
Linux驱动程序开发技术,对嵌入式工程师的重要性不言而喻。掌握该技术,就不再把Linux驱动和硬件设备当成黑匣子,而是按照我们的需要来定制和编写驱动,使得硬件设备按照我们的设计需求为软件服务。在很多
2010-03-10 17:54:13
嵌入式Linux存储设备包含什么
/NandFlash分区)进行自动挂载。也实现模拟嵌入式Linux设备当成U盘设备插入电脑,即通过USB数据线连接电脑,可指定存储设备(SD卡/NandFlash分区)其中一种映射到电脑上,即“计算机”下的“可移动存储设备”下有XX盘。笔者的开发板存储设备对应的设备如下:存储设备设备路径挂载路径
2021-12-21 08:19:32
嵌入式Linux学习步骤
Linux内核移植Linux2.6内核到 ARM9开发板6、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置
2015-03-24 10:41:29
嵌入式Linux学习步骤
Linux内核移植Linux2.6内核到 ARM9开发板 6、 嵌入式 Linux 下串口通信 串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统
2011-05-04 15:01:53
嵌入式Linux学习步骤
文件系统 文件系统的建立 ramfs内存文件系统 proc文件系统 devfs 文件系统 MTD技术简介 MTD块设备初始化 MTD块设备的读写操作了解Linux系统的文件系统 了解嵌入式Linux的文件系统
2018-07-03 00:56:23
嵌入式Linux实时化技术是什么?
一些实时扩展,但需要进行实时性改造。本文针对嵌入式Linux实时化技术中的一些关键问题进行了讨论,如Linux内核时延,实时化主流技术方案及其评价等。
2019-10-08 14:19:33
嵌入式Linux应用开发详解 光盘
`本书立足于嵌入式Linux平台,侧重于实际开发应用,是一本结合嵌入式Linux技术最新发展潮流和编者多年开发经验,精心编写的嵌入式Linux开发用书。全书内容共分三篇:第一篇为基础篇,包括第1章和
2013-06-02 10:26:46
嵌入式Linux开发学习如何入门、如何深入?
介绍平台移植的关键技术移植Linux内核到 ARM平台 了解移植的概念能够移植Linux内核移植Linux2.6内核到 ARM9开发板 5、嵌入式 Linux 下串口通信串行I/O的基本概念嵌入式
2016-10-14 14:37:33
嵌入式Linux开发学习如何入门、如何深入?
移植的关键技术移植Linux内核到 ARM平台 了解移植的概念能够移植Linux内核移植Linux2.6内核到 ARM9开发板5、嵌入式 Linux 下串口通信串行I/O的基本概念嵌入式Linux
2014-07-08 11:03:55
嵌入式Linux开发环境
嵌入式Linux多线程编程第6章 嵌入式Linux网络编程第7章 Qt图形编程第8章 嵌入式Linux设备驱动编程第9章 Qt聊天项目设计
2013-10-24 11:24:03
嵌入式Linux怎么移植实时设备驱动程序?
Linux暴风雨般地占领了嵌入式系统市场。根据工业分析家分析,大约1/3到1/2的新的32位和64位嵌入式系统设计采用了Linux。嵌入式Linux已经在很多应用领域显示出优势,比如SOHO家庭网
2020-03-27 08:14:25
嵌入式Linux的USB设备结构是什么?
。嵌入式Linux是一款源代码完全免费的新兴操作系统,用户可以用户可以通过网络等其他途径免费获得,并可以任意修改其源代码,这是其他的操作系统做不到的。正是由于这一点,Linux得到了广泛的应用。
2019-08-20 07:34:51
嵌入式Linux的驱动开发
一众嵌入式Linux驱动书中笔者最推崇宋宝华的《Linux设备驱动开发详解》,但他完全可以更进一步上升到驱动框架个例(比如USBwifi模块驱动)和应用层调用。有些书从c语言基础谈起,真是莫名其妙
2021-11-04 09:02:39
嵌入式Linux系统设备驱动程序怎么编写?
Linux是一个遵循POSIX标准的免费操作系统。具有BSD和SYSV的扩展特性。与其他操作系统相比,嵌入式Linux系统以其可应用于多种硬件平台、内核高效稳定、源码开放、软件丰富、网络通信和文
2020-03-31 08:15:36
嵌入式Linux系统开发学习步骤,深圳嵌入式Linux培训高薪一路相伴
基础 Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境
2015-11-25 17:23:50
嵌入式Linux系统的键盘驱动程序怎么编写?
Linux由于其具有内核强大且稳定,易于扩展和裁减,丰富的硬件支持等诸多优点,在嵌入式系统中得到了广泛的应用。很多嵌入式Linux系统,特别是一些具有与用户强交互的嵌入式系统,往往需要配备一个特殊键盘,此时开发者需要根据实际情况,为自己的特殊键盘编写驱动程序。
2020-03-31 07:08:59
嵌入式Linux网络驱动程序的体系结构和实现原理是什么
嵌入式Linux网络驱动程序是什么嵌入式Linux网络驱动程序的体系结构和实现原理如何将设备驱动模块编译进内核
2021-04-26 06:03:26
嵌入式Linux网络驱动程序的实现原理是什么?
嵌入式Linux网络驱动程序的结构是如何构成的?嵌入式Linux网络驱动程序的实现原理是什么?如何将设备驱动模块编译进内核里?
2021-06-04 06:25:40
嵌入式linux学***汇总
和技术资料,相信对广大的Linux开发人员和嵌入式工程师都具有非常重要的价值和意义。本书全面介绍了Linux设备驱动开发详细内容,重点讲解了驱动设计的硬件基础、Linux内核及内核编程、Linux内核模块
2020-06-08 08:31:35
嵌入式linux学习步骤
Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信熟悉文件I/O 编写串口通信
2016-09-12 14:23:18
嵌入式linux学习步骤
开发板5、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉
2017-10-25 10:12:39
嵌入式linux学习步骤
开发板5、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉
2021-09-08 11:51:06
嵌入式linux系统与应用开发就业班
和UDP;套接字基础 网络Socket概述;Socket通信原理;Socket基础编程。套接字编程进阶 多路选择I/O 文件传输实现8嵌入式GUI设计Linux下嵌入式gui编程介绍;Qt介绍;通过Qt
2010-04-13 20:26:35
嵌入式技术:Linux驱动USB必须了解的四个描述符
嵌入式Linux下的USB设备驱动技术Linux以其稳定、高效、易定制、硬件支持广泛、源代码开放等特点,已在嵌入式领域迅速崛起,被国际上许多大型的跨国企业用作嵌入式产品的系统平台。USB
2020-05-09 09:06:39
嵌入式设备上的文件系统该怎么优化?
随着芯片技术的发展,各种处理器的处理能力不断提高,手持智能终端得到极大的普及。嵌入式Linux操作系统在未来的手持智能设备中将扮演着非常重要的角色,使嵌入式Linux的应用和研究不断的深入。
2019-09-03 07:49:37
嵌入式学习步骤
2.6内核到 arm9开发板 6、嵌入式 Linux 下串口通信 串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够
2019-06-03 23:28:35
嵌入式学习步骤
开发板5、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉
2018-04-17 13:15:34
嵌入式系统串行设备管理怎么实现?
随着微电子技术的发展,嵌入式系统的功能越来越强大,像 UART口、IrDA、USB、I2C以及SPI这些串行接口或设备同时存在于一个嵌入式系统中,实现对它们的统一管理将能极大地提高整个嵌入式系统
2019-09-04 07:53:52
嵌入式系统学习步骤
2.6内核到 arm9开发板 6、嵌入式 Linux 下串口通信 串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够
2012-10-21 10:55:24
ARM嵌入式Linux系统开发详解
例介绍了Linux设备驱动、网络设备驱动、Flash设备驱动和USB驱动的开发过程,以此提高读者的实战水平。《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》适合广大从事嵌入式Linux
2018-09-14 08:57:17
[嵌入式linux] 嵌入式学习分享:那些绕不开的技术点
。5. 嵌入式绕不开驱动很多人对驱动开发有技术情节,越是年轻的工程师越是这样。驱动的开发本质上就是给外设配置参数,使其工作在期望的方式。linux下的驱动开发需要遵从linux的驱动框架,裸机的驱动开发
2020-04-16 09:51:11
[公告]嵌入式Linux驱动程序高级培训
Linux内核代码量极大,其中有60%以上代码属于驱动程序,掌握嵌入式Linux驱动程序开发技术,对嵌入式工程师的重要性不言而喻。掌握该技术,就不再把Linux驱动和硬件设备当成黑匣子,而是按照我们的需要
2010-03-10 17:46:56
[原创]怎样学习嵌入式
Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉文件I/O 编写
2010-04-20 12:03:37
【分享】4412开发板-嵌入式Linux开发需要掌握的基础知识和技能
了解移植的概念 能够移植Linux内核移植Linux2.6内核到 ARM9开发板6、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备
2015-07-16 14:08:08
为什么要在linux环境下开发嵌入式应用?
嵌入式,那为什么做嵌入式应用开发的时候,也用linux平台呢?在windows平台不是一样开发,然后下载到板子上吗? 希望能有人帮忙解答一下谢谢!!
2016-09-07 16:52:59
为什么要配置Linux系统嵌入式设备的串口通信
我们查看这些数据,那么问题来了,当我们可以让一个设备从串口使用UART的方式输出数据,这个设备和一个搭载Linux系统的嵌入式设备通信的时候怎么获取这个设备?Linux下一切皆文件,那么我们首先应该打开一个设备,一般一个UART通信的接口会设置成USB,在Linux系统下一个USB设备会被识别成一个叫
2021-12-16 07:24:01
什么是嵌入式Linux系统下的CGI程序设计技术?
随着互联网应用的普及,越来越多的信息化产品需要接入互联网通过Web页面进行远程访问。嵌入式Web系统提供了一种经济、实用的互联网嵌入式接入方案。这里结合一种嵌入式WebServer BOA来介绍嵌入式Linux系统下的CGI程序设计技术。
2019-09-20 07:21:39
什么是嵌入式Linux?
Linux到底是什么呢? 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。简单来说,是除了电脑之外可以运行程序的设备,将CPU嵌入一个设备,使
2023-10-11 13:47:49
什么是嵌入式Linux?
Linux操作系统。嵌入式Linux既继承了intelnet上无限的开放原代码资源,又具有嵌入式操作系统的特性。二、嵌入式Linux的特点版权费:免费;购买费用:媒介成本;技术支持:全世界的自由软件
2015-01-23 11:59:01
基于Linux的USB设备驱动方法有什么优点?
嵌入式linux系统环境以其易于移植裁减、内核小、效率高、完整、原代码开放及性能优异等特点,在嵌入式领域得到了非常广泛的应用。Linux的USB设备端的源代码中主要有USB device的海量存储
2019-11-07 08:31:16
基于嵌入式Linux的彩色LCD驱动设计
多媒体应用的推动下,彩色LCD也越来越多地应用到了嵌入式系统中,如新一代掌上电脑(PDA)多采用TFT显示器件,支持彩色图形界面,图片显示和视频媒体播放。掌上电脑(PDA)的操作系统有微软Window
2019-07-08 08:30:21
基于嵌入式Linux系统的键盘驱动该怎么设计?
随着微处理器技术的不断发展和数字化产品的普及,嵌入式系统的研究开发逐渐成为热点,Linux也以其开源、稳定、可裁剪的优势成为嵌入式操作系统的主流。在众多的嵌入式系统中,键盘成为一种应用最为广泛的输入
2019-08-26 07:33:59
如何来学习嵌入式,嵌入式学习步骤?
Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉文件I/O 编写
2012-09-03 17:19:16
如何设计嵌入式Linux下的PCI设备驱动?
]。Linux因其开放源代码以及稳定的性能,越来越受到广大用户青睐。同时,基于Linux内核的嵌入式操作系统应用势头强劲,开发基于Linux的设备驱动程序,具有很强的实用性和可移植性[2]。
2019-08-13 07:49:42
如何设计嵌入式ARM Linux步进电机驱动程序?
,是未来经济型激光雕刻机发展的趋势。而嵌入式ARM(Advanced RISC Machines)Linux步进电机驱动是实现激光雕刻的核心。如何设计嵌入式ARM Linux步进电机驱动程序?我们具体该怎么做呢?
2019-08-13 07:31:19
教你如何学习嵌入式
开发板5、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉
2012-11-07 09:34:40
新手必看--嵌入式Linux学习步骤
开发板6、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉
2016-03-25 14:53:55
新手必看--嵌入式Linux学习步骤,教你怎么入门
开发板6、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉
2014-06-30 11:23:21
求嵌入式Linux系统开发技术
ARM开发板(初期买2410足够),学驱动开发啥的。学完了以后,做几个驱动,就可以做项目了。更多资源: http://www.superedu.com.cn/xuexi/jdsp/?op321嵌入式Linux系统开发技术详解--基于ARM(完整版).pdf (9.82 MB )
2020-05-12 00:59:33
浅析input输入子系统框架嵌入式Linux驱动
)------USB键盘驱动程序嵌入式Linux驱动笔记(五)------学习platform设备驱动嵌入式Linux驱动笔记(六)------浅析input输入子系统框架嵌入式Linux驱动笔...
2021-11-05 06:47:56
请问如何成为嵌入式高手?
开发相关概念及开发流程,了解驱动开发的关键技术点,重点讲解嵌入式Linux下常用接口驱动的编写方法,包括:1、字符型LED驱动开发(GPIO口驱动)2、按键驱动开发(中断驱动,在驱动中中断程序的编写
2020-08-30 11:28:25
转:嵌入式Linux应用程序开发详解
。接着系统地讲解了嵌入式linux的环境搭建,以及嵌入式linux的i/o与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、基于中断的开发、设备驱动程序的开发以及嵌入式图形界面的开发等,并且还
2016-06-12 11:11:45
嵌入式Linux设备驱动开发
嵌入式Linux设备驱动开发
Linux 设备驱动的基本概念Linux 设备驱动程序的基本功能Linux 设备驱动的运作过程常见设备驱动接口函数掌握LCD 设备驱动程序编写步骤
2008-09-10 13:10:2982
嵌入式Linux的USB驱动添加及应用
驱动程序添加是嵌入式Linux开发的关键技术之一。本文主要分析为MCF5272 添加USB驱动程序的详细过程, 简述UFTP 协议(USB 文件传输协议), 并给出一个文件传输的应用示例。
2009-04-15 11:58:3412
嵌入式USB从设备驱动程序设计
本文通过基于S3C2410 的嵌入式USB 从设备驱动程序的实现,介绍嵌入式Linux 系统中的USB 从设备驱动程序的设计方法,同时介绍了USB 接口的一般原理和USB 通信的一般过程,以及嵌入式Li
2009-08-14 14:07:4615
嵌入式Linux下USB蓝牙设备驱动
随着无线技术的不断发展,蓝牙技术的应用逐渐深入嵌入式系统。但由于其接口的兼容性问题,使其在嵌入式领域的应用大打折扣。在分析蓝牙协议栈的体系结构、Linux蓝牙协
2010-02-11 11:08:1241
嵌入式Linux字符设备驱动的设计与应用
描述了基于嵌入式Linux的字符设备驱动程序的设计方法和实现过程。以电机、数码管、串口和mini键盘的驱动设计为例,详细阐述了嵌入式linux下字符设备驱动设计中的关键技术,包括设
2010-02-23 15:45:4724
嵌入式Linux字符设备驱动的设计与应用
描述了基于嵌入式Linux的字符设备驱动程序的设计方法和实现过程。以电机、数码管、串口和mini键盘的驱动设计为例,详细阐述了嵌入式linux下字符设备驱动设计中的关键技术,包括设
2010-07-14 17:31:2331
基于嵌入式Linux的U盘驱动的分析与改进
U 盘作为一种便利的存储设备,可以应用于嵌入式系统中,其应用的基础就是对Linux 的USB Mass Storage 驱动的裁剪,以获得所需的简化的驱动程序。分析了Linux 下的USB mass storage 协议
2010-10-08 15:43:1244
嵌入式Linux的USB驱动设计
本文主要介绍了 Linux 平台的USB设备驱动开发的一般步骤方法和技巧,通过详细介绍USB的相关概念和Linux中USB设备驱动程序的数据结构,框架和步骤,并通过设计和实现一个驱动的实例,
2011-06-08 17:15:4849
USB设备端驱动系统与嵌入式linux系统的实现
嵌入式 linux 系统环境以其易于移植裁减、内核小、效率高、完整、原代码开放及性能优异等特点,在嵌入式领域得到了非常广泛的应用。Linux 的 USB 设备端的源代码中主要有 USB device
2017-10-31 16:15:484
嵌入式Linux驱动笔记--转自风筝丶
笔记(四)------USB键盘驱动程序嵌入式Linux驱动笔记(五)------学习platform设备驱动嵌入式Linux驱动笔记(六)------浅析input输入子系统框架嵌入式Linux驱动笔...
2021-11-02 14:06:1612
评论
查看更多