阅读:1104回复:2
请教驱动超时问题【入门级】(大侠赐教)
写过9054的驱动,也做过68013的驱动
前者用2KBytes的FIFO做到38mbytes/s 后者做到22.7MBYTES/S 应该说速度都比较一般,传递信号处理后的参数基本足够(一般是把数据在FPGA中处理完毕后传输出来!) 现在的问题是我在硬件调试中经常会遇到硬件或者FPGA程序错误 导致驱动程序很多时候不能返回,这个时候,米有办法了 只有硬关机重启。。。。我的机器。。造孽啊!!!! 听说有个驱动超时退出的机制。但是完全几乎不明白超时这个东西怎么用,是怎么回事! 武安河老师的书上也没有讲这个问题!!!! 搜索过很多文章 定时器啊,多线程讲了一大堆 但是没有一个比较详细的 不是很明白!疑惑中!! 希望那位大侠指点明灯 需要看什么书或者下载什么参考例程 我的程序都是两千下的DS写的,DS26/DS27, USB的程序也在DS27+XP+XPDDKSP1的环境下跑过! 先给大侠们拜了!!! |
|
沙发#
发布于:2007-11-23 22:24
好像在KUSBPIPE类的Urb的发送函数后好像可以添加超时回调参数
DRIVERWORKS的帮助文件里面有 |
|
板凳#
发布于:2007-11-28 11:15
libenny:
使用ReadFile 函数为什么会死机? 我用DriverStudio开发了一个 USB 驱动程序,用ReadFile 函数去读端口,如果读不到数程序就会死在那里,不知道 是什么原因,望不吝赐教。 rayyang2000: SubmitUrb有一个参数是超时 rayyang2000: KUsbLowerDevice::SubmitUrb FORM 1: NTSTATUS SubmitUrb( PURB pUrb, PIO_COMPLETION_ROUTINE CompletionRoutine=NULL, PVOID CompletionContext=NULL, ULONG mSecTimeOut=0 ); FORM 2: NTSTATUS SubmitUrb( KIrp I, PURB pUrb, PIO_COMPLETION_ROUTINE CompletionRoutine=NULL, PVOID CompletionContext=NULL, ULONG mSecTimeOut=0 ); mSecTimeOut就是。 但这样只能是治标不治本,关键问题还在你的usb device端的处理 |
|