阅读:1500回复:3
usb收发数据是否可以同时进行?
我的usb驱动只能在一个线程里进行收数据或发数据,如果我将收数据和发数据的处理分别放到两个线程里,让他们同时进行,系统立即崩溃,usb设备读和写不是分别使用不同的端点吗?为什么收发不能同时进行呢?
可以让收数据和发数据互不相干地自由地进行吗? 因为我的需求是收和发是随机的,完全有可能正在收的时候突然需要发送数据了,这个时候往往会出错,因为收数据的irp还没处理完,而且我的usb设备从上电起就一直不断里往主机送数据(大概10ms一个包,每个包大概1024字节),主机可以在任意时间往usb设备送数据,那么,这个“半双工”的usb设备该怎么处理这种矛盾的情况呢? |
|
|
沙发#
发布于:2003-11-04 14:02
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2003-11-04 14:08
你用的是同步irp吧,如果使用异步irp,它们是排队处理的,但是还是用的时分复用的办法。也就是说写的同时读会被暂时停止,如果在下边1024的端点缓冲区没有满之前你的写完成了,那么就不会丢失数据了。
|
|
地板#
发布于:2003-11-04 19:59
js
|
|