Chinaunix首页 | 论坛 | 博客
  • 博客访问: 67537
  • 博文数量: 26
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 12
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-15 21:22
文章分类
文章存档

2014年(26)

我的朋友

分类: LINUX

2014-10-26 15:04:52

由于要做一个usb从机,而linux内核自带的usb转串口方案又被pass掉了,因此只好老老实实的写usb gadget驱动了。而我对windows上的东东一窍不通,也就只能在linux下面调试了,幸运的是Linux自带了usb-skeleton.c,为我们提供了一个最基础的USB驱动程序,即USB骨架程序,可被看作一个最简单的USB设备驱动实例。尽管USB设备驱动千差万别,但基本上都是这个模板。可以说,掌握了这个骨架程序,就基本掌握了Linuxusb设备驱动。后续,我会详细叙述这个程序,基于2.6.27

先说说怎么使用这个程序来测试吧,很简单,主要改2个地方就可以了,如下:

/* Define these values to match your devices */

#define USB_SKEL_VENDOR_ID      0xfff0

#define USB_SKEL_PRODUCT_ID    0xfff0

也就是PIDVID,只要把你的usb gadget驱动的PIDVID与上述定义的一致,就可以使用了。我使用的时候一般都改这一块的宏定义,把PIDVID改的与gadget设备一致。

然后重新编译usb-skeleton.c,生成usb-skeleton.ko,加载模块insmod usb-skeleton.ko,如果从设备插入了电脑,就会识别到此从设备。

加载了模块usb-skeleton.ko后会在/dev下生成设备文件skel0。接下来就可以测试读写了。

测试写: echo “test string” > /dev/skel0

从设备就会收到“test string”字符串。

 

测试读: cat /dev/skel0

从设备通过USB发送“string test

电脑主机端就会出现  string test

 

 

O(_)O,这个万能驱动不错吧。

阅读(1075) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~