阅读:1655回复:2
关于wince下usb cdrom遇到的问题,恳请大家帮助
最近几天在ce5.0下做一个usb cdrom的东西,碰到这么个问题,很是头大,不知道问题出在哪里,希望大家给个帮助,谢谢!
在走bulk传输时出错,bklkwrite返回正常,但是bulkread的时候,debug信息如下: -CBulkPipe::ScheduleTransfer, returning HCD_REQUEST_STATUS 1 -CPipe(Bulk)::IssueTransfer - address = 1, returing HCD_REQUEST_STATUS 1 -CFunction(tier 1)::IssueTransfer - returing HCD_REQUEST_STATUS 1 -CHub(Root tier 0)::IssueTransfer address = 1, pipe = 1, returing HCD_REQUEST_STATUS 1 -CHcd::IssueTransfer - returing BOOL 1 -USBD:IssueBulkTransfer, pTransfer:0x36A320 !!!interrupt!!!! on frame index + 1 = 0x00001f0e, USBSTS = 0x0002CPipe::CheckForDoneTransfersThread - #pipes to check = 1 CPipe::CheckForDoneTransfersThread - warning! Called when no pipes were busy +CQueuedPipe(Bulk)::CheckForDoneTransfers CQueuedPipe(Bulk)::CheckForDoneTransfers - queue was already finished on entry +CBulkPipe::AreTransferParametersValid -CBulkPipe::AreTransferParametersValid, returning BOOL 1 CQueuedPipe(Bulk)::CheckForDoneTransfers - failure on TD 0x3f58c0, address = 1, endpoint = 1, errorCounter = 0, status field = 0x22CQueuedPipe(Bulk)::CheckForDoneTransfers - a transfer is now done 感觉传输已经完成了,可是checkfordonetransfers就是出错, 不知道导致这个错误的原因,是因为设备的传输速度太快,主机来不及接收嘛,如果是的话,那要怎么进行更改。 谢谢大家! |
|
沙发#
发布于:2008-04-16 10:36
这个CheckForDoneTransfers 产生的原因很多,但是归根结底还是要在我们的驱动层去寻找原因,只要驱动层上有一部分出现偏差,就会导致这个问题的产生。
该问题已经解决,打上最新的wince补丁,搞定,呵呵,谢谢大家的关注。 |
|
板凳#
发布于:2007-12-24 16:53
不知道跟那个USBSTS = 0x0002有没有关系,最近老是碰到这个CheckForDoneTransfers 的问题,一直都很困扰,不知道究竟是哪块出的问题。
|
|