阅读:1770回复:4
USB驱动安装时死机问题。
小弟最近调一个USB驱动调试的特别郁闷。
下位机的固件是我写的,可以伪装成HID键盘并且可以根据输入往记事本打字,下位机电路和程序框架都没有问题。 当下位机修改成我们自己的设备类之后,上位机开始安装我写的驱动。 问题如下: 在安装新硬件看到的字符串描述符和inf里面的都一样。 在复制文件到了100%的地方的时候,复制文件的动画并不停,CPU占有率为98~99%。系统死机一样,除了复制文件的那个动画其他的都不能动了。 驱动程序即使用driver works 生成一个最简单的也是这个样子。 因为固件和驱动都是我写的,所以descriptor肯定都对的 上。通讯的协议也比较的简单。下位机不能在系统调试,用的是TUSB3410,没有调试的接口和工具,51核,只有4个io脚。通过串口输出的调试数据来看从复制文件开始好像是没有做任何的事情。 大家有什么相关的经验么? 还有一个问题就是我的busbound 有的时候点一下任务栏的图标切换到它的时候它系统就会黑屏重启。 |
|
|
沙发#
发布于:2005-04-20 21:26
从bus Bounder 来看死机之前发送的最后一个是
00 09 01 00 00 00 00 00 SET CONFIG 我正在查看看具体是什么原因。 |
|
|
板凳#
发布于:2005-04-20 21:57
出错的应该是上一次的:
22.0 CTL 80 06 00 02 00 00 00 04 //8006=GetDescriptor 0002=Configruation 0000=language Default 0x4000=length 22.0 DI 09 02 28 00 01 01 00 80 32 09 04 00 00 01 ff 01 01 01 07 05 01 02 64 00 01 07 05 82 02 64 00 01 (后面本还有8个共0x28个字节可是没有传上来,不知道为什么,我跟例子驱动发现例子的可以都传上来。why?) |
|
|
地板#
发布于:2005-04-20 22:18
好了,原来是固件里面的端点描述符后面加了一个\'\\0\'导致了算出来的长度错误。然后就挂了。
不过现在设备管理器里面的是一个?很大,不知道怎么解决。明天的事情了。 ![]() |
|
|
地下室#
发布于:2005-04-21 10:19
可能还是你那步传输的数据有问题
80 06 00 02 00 00 00 04 里面的04是不对的 配置描述符最小要09才对,加上接口和端点会更大 |
|