linux ttyusb读写_浅析ttyUSB驱动usb_serial_driver-ch341

浅析ttyUSB驱动usb_serial_driver-ch341

sudo insmod /lib/modules/2.6.22-14-generic/kernel/drivers/usb/serial/usbserial.ko vendor=0x8086 product=0xd001

安装之后可以通过ttyUSBx与任何usb设备进行数据传输,但是如果usb设备端接收pc下发的数据速度跟不上,比如设备端可能需要处理pc下发的数据用掉一段时间,这时tty->driver->write(tty, b, nr);可能返回0,也就是在执行usb_serial_generic_write()函数时,因为port->write_urb_busy = 1;发送正繁忙,进而会执行schedule让出cpu,虽然使用usbserial.ko模块可以与任何usb设备进行通信,但是当进行大量数据传输时,速度并不乐观,下面会做一个粗略的分析,找到了速度慢的原因,和一个保守的解决方案[gliethttp_20080526]。

usb_register(&ch341_driver)->含有如下两行语句,

drvwrap.driver.bus = &usb_bus_type;

drvwrap.driver.probe = usb_probe_interface;

usb总线发现硬件之后,会在恰当的时候调用__driver_attach()函数,__driver_attach()会调用usb_bus_type.match(),对于usb设备一定返回成功,

然后执行really_probe(dev, drv);暂时将dev->driver = drv;之后执行

device_driver

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值