中USB控制的Host/Slave模式的应用

时间:2013-10-26来源:网络

本系统就是采用第二种方式加载USB驱动的。由于本系统的mClinux包来自于英蓓特公司的包,因此节省了很多工作,具体编译过程如下:

1) 在mClinux内核的USB驱动目录中添加如下三个文件:sl811h-usb.c 、sl811h.h、 sl811husb.h。这两个头文件中主要定义了一些关于811HS/T寄存器的宏。

2) 编辑/uclinux-s3cev40/linux-2.4.x/drivers/usb/config.in文件。

首先在config.in文件开头添加如下语句:

dep_tristate 'Support for USB' CONFIG_USB $CONFIG_PCI

if [ "$CONFIG_USB" = "y" -o? "$CONFIG_USB" = "m" ]; then

?? bool '? USB verbose debug messages' CONFIG_USB_DEBUG

comment 'Miscellaneous USB options'

?? bool '? Preliminary USB device filesystem' CONFIG_ USB_DEVICEFS

?? if [ "$CONFIG_ EXPERIMENTAL" = "y" ]; then

????? bool '? Enforce USB bandwidth allocation (EXPERIMENTAL)' CONFIG_USB_BANDWIDTH

?? else

??? define_bool CONFIG_USB_ BANDWIDTH n

?? fi

?? bool '? Long timeout for slow-responding devices (some MGE Ellipse UPSes)' CONFIG_USB_ LONG_TIMEOUT

fi

然后在makefile文件中添加

ifeq ($(CONFIG_USB_ DEBUG),y)

?????? L_OBJS+=sl811h-usb.o

endif

最后在/uclinux-s3cev40/linux-2.4.x/drivers/usb/sl811h_usb.c文件中添加如下代码:

#ifdef CONFIG_USB_DEBUG

?????? #define DEBUG

#else

?????? #undef DEBUG

#endif

#SL811HS/T----- USB Host Controller driver

INCLUDEDIR = /usr/src/linux/include

CFLAGS = -D__KERNEL__ -DMODULE -O -Wall -

static -I$(INCLUDEDIR)

VER = $(shell awk -F" '/REL/ {print $$2}'

$(INCLUDEDIR)/linux/version.h)

all:sl811h-usb.o

sl811h-usb.o:sl811h-usb.csl811h-usb.hsl811h.h

gcc sl811h-usb.c -c $(CFLAGS)

# End this file

3) 在/usr/local/src/uClinux-s3cev40/fs/dev中增加一个设备文件。因为USB设备主要都是通过快速串行通讯来读写数据, 故一般作为字符设备。在/usr/local/src/uClinux-s3cev40/fs/devfs 下执行:

mknod usb0 c 127 0

mknod usb1 c 127 1

4) 执行make xconfig,用户内核设置选择y。

5) 执行make dep。

6) 执行make。USB设备驱动程序被编译进mClinux内核,包含在image.bin文件中。

在嵌入式系统启动时,USB设备驱动就自动执行了。


结语

本设计以mClinux嵌入式操作系统为平台,充分发挥了SL811HST芯片的Host/Slave两种模式的作用,使其在实际使用中非常方便。随着嵌入式USB设备Host/Slave模式的研发,USB设备的使用会更加普及。

1 2

关键词: mClinux USB控制 Host Slave模式

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版