电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

usbserialVIP免费

usbserial_第1页
1/53
usbserial_第2页
2/53
usbserial_第3页
3/53
/* Driver structure we register with the USB core */ static struct usb_driver usb_serial_driver = { .name = "usbserial", .probe = usb_serial_probe, .disconnect = usb_serial_disconnect, .no_dynamic_id = 1, }; 前段时间写了篇的文章, 描述了自己如何为高通的一个usb modem 设备写驱动的过程, 最近发现实际上可以使用 linux 自带的一个叫 usbserial 的模块作为这个 modem 的驱动并能良好的工作, 所以写了这片文章来详细的分析下 usbserial 模块的源码(2.6.16.3). 应该来说, 对于那些仅仅是用 USB 来通信, 在上层可看作 tty 设备, 不属于任何USB 设备类型, 没有什么流控等的普通USB 设备来说都可以使用这个驱动来作为设备驱动程序.下面就来对这样一种通用的驱动程序来进行详细的分析. 不对之处敬请指正! 为了能让 usbserail 模块支持我的设备, 我必须在命令行上输入如下命令: sudo modprobe usbserial vendor=0x12d1 product=0x1003 该命令用特权用户来加载 usbserial 模块,并把该模块依赖的模块一并加载进系统, 同时它还设置了usbserial 的两个参数: vendor, product, 很显然这两个参数是厂商 ID 和设备 ID, 而作用就是用于匹配设备. 首先, 当然是要知道 usbserial 模块由哪些文件编译而成, 这样才能有目的性的去分析其代码. 而 要 知 道 其 组 成 当 然 是 去 其 目 录 下 看 Makefile 了, 它 位 于 内 核 源 码 目 录 下的./drivers/usb/serial/下 ./drivers/usb/serial/Makefile: # # Makefile for the USB serial device drivers. # # Object file lists. obj-$(CONFIG_USB_SERIAL) += usbserial.o #编译内核时如何编译该模块 usbserial-obj-$(CONFIG_USB_SERIAL_CONSOLE) += console.o usbserial-obj-$(CONFIG_USB_EZUSB) += ezusb.o usbserial-objs := usb-serial.o generic.o bus.o $(usbserial-obj-y) #OK, 就是usbserial 模块的组成了 obj-$(CONFIG_USB_SERIAL_AIRPRIME) += airprime.o obj-$(CONFIG_USB_SERIAL_ANYDATA) += anydata.o 我们重点看的是usb-serial.c, generic.c, bus.c 在看源码之前我们先说说该模块的原理及整体结构: 很简单跟应用层交互的是一个 tty 设备, 也就是说该模块把 USB 设备映射成一个 tty 设...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部