阅读:1751回复:5
问题: 用ds生成的D12驱动, 端点包最大值随机变化的问题(有图)
用usbview 查看具体报告
这是U盘的,它里面的端点报告的 wMaxPacketSize 的数值每次都是固定的 如64,1287 而我的。。 |
|
|
沙发#
发布于:2007-10-14 12:53
而我却是随机的,每次拔插都不一样。。有时候数值很大,有时候却为0
|
|
|
板凳#
发布于:2007-10-14 12:59
而且经常出现超出带宽的提示,这是不是跟未设置端点包的最大值有关?
我在OnStartDevice(KIrp I) 函数里也设置了大小 m_Endpoint2IN.SetMaximumTransferSize(64); m_Endpoint2OUT.SetMaximumTransferSize(64); m_Endpoint1OUT.SetMaximumTransferSize(16); m_Endpoint1IN.SetMaximumTransferSize(16); 但还是没作用 这是什么原因产生的,我为什么我的值不是固定的,要在哪里设那个 出现USB控制器带宽不足是不是上面那个原因造成的? |
|
|
地板#
发布于:2007-10-14 16:59
原因找到。。。现在好了。。
|
|
|
地下室#
发布于:2007-10-14 20:10
在网站中搜索到
凡是用DriverStudio2.6 开发USB 上层驱动的话,要修改DriverStudio2.6 中的BUG 删除pPipeInfo->PipeFlags |= USBD_PF_CHANGE_MAX_PACKET 這一行,此行在Kusb.cpp 中的 KUsbLowerDevice::Configure(..) 內. 如果没有按照上面做的话,在进行USB 驱动开发中,PC 对USB 端点的读取会造成电脑的蓝屏 屏蔽掉上面那句后,正常了,useview读出的数据也是固定大小了。。 唉。。。 |
|
|
5楼#
发布于:2009-10-29 10:29
不错的分享,那么多人看怎么不顶呢?没人性
|
|