Linux下的硬件驱动——USB设备(下)(驱动开发部分)
- 格式:pdf
- 大小:240.19 KB
- 文档页数:12


linux驱动开发(⼀)
1:驱动开发环境
要进⾏linux驱动开发我们⾸先要有linux内核的源码树,并且这个linux内核的源码树要和开发板中的内核源码树要⼀直;
⽐如说我们开发板中⽤的是linux kernel内核版本为2.6.35.7,在我们ubuntu虚拟机上必须要有同样版本的源码树,
我们再编译好驱动的的时候,使⽤modinfo XXX命令会打印出⼀个版本号,这个版本号是与使⽤的源码树版本有关,如果开发板中源码树中版本与
modinfo的版本信息不⼀致使⽆法安装驱动的;
我们开发板必须设置好nfs挂载;这些在根⽂件系统⼀章有详细的介绍;
2:开发驱动常⽤的⼏个命令
lsmod :list moduel 把我们机器上所有的驱动打印出来,
insmod:安装驱动
rmmod:删除驱动
modinfo:打印驱动信息
3:写linux驱动⽂件和裸机程序有很⼤的不同,虽然都是操作硬件设备,但是由于写裸机程序的时候是我们直接写代码操作硬件设备,这只有⼀个层次;
⽽我们写驱动程序⾸先要让linux内核通过⼀定的接⼝对接,并且要在linux内核注册,应⽤程序还要通过内核跟应⽤程序的接⼝相关api来对接;
4:驱动的编译模式是固定的,以后编译驱动的就是就按照这个模式来套即可,下⾯我们来分下⼀下驱动的编译规则:
#ubuntu的内核源码树,如果要编译在ubuntu中安装的模块就打开这2个
#KERN_VER = $(shell uname -r)
#KERN_DIR = /lib/modules/$(KERN_VER)/build
# 开发板的linux内核的源码树⽬录
KERN_DIR = /root/driver/kernel
obj-m += module_test.o
all:
make -C $(KERN_DIR) M=`pwd` modules
cp:
cp *.ko /root/porting_x210/rootfs/rootfs/driver_test
2O10年(第39卷)第2期 信息技术
基于嵌入式Li nux下的USB3.0驱动程序开发方法研究
杨 军I’ (1.青岛科技大学信息科学学院,山东青岛266601;2.天水师范学院物信学院,甘肃天水741000)
摘 要:USB3.0是新一代通用串行总线,该总线下的设备目前还没有大规模生产,主要原因是它的通信标准及协议刚由 USB 3.0开发小组(超过200家公司)制定出来。USB3.0必将很快取代USB2.0成为今后市场的主流USB设备接口。本文针 对嵌入式Linux操作系统内核提供编写设备驱动程序的基本框架结构给出了基于嵌入式Linux下的USB3.0驱动程序开发 方法。 关键词:嵌入式Linux;USB3.O;驱动程序
所谓嵌入式系统是指以应用为中心,以计算机技
术为基础,软硬件都可裁剪,适用于应用系统对功能、
可靠性、成本、体积和功耗有严格要求的专用计算机系
统[1]。嵌入式系统由嵌入式微处理器、外围硬件设备、嵌
入式操作系统以及用户应用程序4部分组成。搭建一
个嵌入式系统是开发一个嵌入式产品的基础。由于嵌
入式系统的灵活性和应用的广泛性使它的硬件形式也
是多种多样层出不穷,这就给工程师们提出更高的要
求。USB3.0通信标准和协议的推出必将带动基于 USB3.0接口设备的大量生产。对于每一种USB3.0产品
在嵌入式应用中都必须开发其相应的设备驱动程序才
可使该产品正常工作。因此,嵌入式系统工程师们对于
新标准下的USB3.0产品驱动程序的设计与开发应该
做好充分准备。
1嵌入式Linux驱动开发
1.1嵌入式Linux 嵌人式Linux系统有两层含义,狭义的嵌入式
Linux系统指的是嵌入式Linux操作系统,是指对Linux
经过裁剪后,固化在容量只有几K到几M字节的存储
器芯片或MCU中,应用于特定嵌入式场合的专用Lin—
UX操作系统。广义的嵌入式Linux系统指的是基于嵌
第lO卷第1期 2012年2月 实验科学与技术 Experiment Science and Technology V01.1O No.1 Feb.2012
ARM—Linux下USB主机驱动程序研究与实现
姚震。阎 波
(电子科技大学通信与信息工程学院,成都611731)
摘要:Linux操作系统由于其源码开放、具有可裁剪等特点在嵌入式系统中得到越来越广泛的应用,而USB接口在嵌入式 系统中的应用也十分广泛,现在的嵌入式系统的硬件平台大多数是基于ARM处理器的。文中介绍基于ARM平台的Linux2. 6内核下,嵌入式USB主机设备驱动开发实现。具体的从USB设备驱动的开发流程出发,介绍了USB接口的一般原理和 USB通信的一般过程,然后对USB驱动骨架进行了分析,最后给出了驱动具体实现的关键代码。 关键词:ARM处理器;Linux操作系统;设备驱动程序 中图分类号:TP393;TN92 文献标志码:A doi:10.3969/j.issn.1672—4550.2012.O1.023
Research and Implementation of USB Host Driver in ARM.Linux
YAO Zhen,YAN Bo
(School ofCommunication andInformation Engineering,University ofElectronic Science and Technobgy ofChina,Chengdu 611731,China)
Abstract:Linux operating system due to its source open,with cutting characteristics in embedded systems is increasingly applied,and USB interface on the embedded system application alSO is very extensive,now the embedded system hardware platform is most based on ARM processor.Standard is introduced based on the ARM platform kernel Linux 2.6。embedded USB host device driver development realization.From the USB device driver of the development process,we introduce the USB interface of the general principle and USB communication general process,then USB driver skeleton was analyzed,and finally gives a concrete realization of key driver code. Key words:ARM processor;Linux operating system;device drivers
嵌入式Linux下USB蓝牙设备驱动
郑春芳;郑灵翔;石江宏
【摘 要】随着无线技术的不断发展,蓝牙技术的应用逐渐深入嵌入式系统.但由于其接口的兼容性问题,使其在嵌入式领域的应用大打折扣.在分析蓝牙协议栈的体系结构、Linux蓝牙协议BlueZ的组织结构的基础上,详细阐述蓝牙USB传输层,给出蓝牙设备驱动实现的关键数据结构和函数,并在MP2530硬件平台下实现Linux下USB蓝牙设备驱动,从而有助于蓝牙设备在嵌入式领域广泛应用.
【期刊名称】《电子设计工程》
【年(卷),期】2010(018)002
【总页数】3页(P53-55)
【关键词】蓝牙驱动;USB设备;MP2530;嵌入式Linux
【作 者】郑春芳;郑灵翔;石江宏
【作者单位】厦门大学信息科学与技术学院ATR实验室,福建,厦门,361005;厦门大学信息科学与技术学院ATR实验室,福建,厦门,361005;厦门大学信息科学与技术学院ATR实验室,福建,厦门,361005
【正文语种】中 文
【中图分类】TP302
随着无线技术的不断发展,蓝牙产品逐渐走入人们的生活。目前蓝牙在PC端支持良好,应用比较广泛。但在嵌入式系统中,由于蓝牙接口的兼容性问题,使其在嵌入式领域的应用大打折扣。因此,如何在嵌入式系统中支持蓝牙设备成为当前嵌入式领域的研究热点。
作为通用串行总线标准,USB接口以其连接方便、兼容性好和传输速度快等特点被更多的硬件系统支持。针对USB蓝牙适配器在嵌入式Linux下的应用,开发其驱动程序,为蓝牙设备在嵌入式Linux下进一步应用提供前提条件。本文详细阐述USB蓝牙设备的HCI传输层,给出实现方案中关键的函数和数据结构,并在MP2530上实现。
1 系统设计简介
该嵌入系统采用Linux-2.6.20内核版本,采用在X86架构的PC机端上交叉编译,在目标板MP2530上运行。目标板MP2530是专门为嵌入式多媒体处理器MMSP2+设计的开发平台,其内部集成有ARM926EJ和ARM946E的双核,带有2D和3D的图形加速器。此外,MP2530还提供丰富的外围数据接口,包含6路UART通道,USB主机 、USB设备2.0、SD卡读写通道、以太网控制器等。MP2530支持基于通用串行总线1.1版本和开放式主机控制器1.0版本,支持高、低速USB设备。