系统:VxWorks 5.5.1 + for x86
USB1.1中存在不少的bug,其中一个现象如下:
1:如果USB设备(如U盘)在vxworks系统启动后再插入,此USB设备可以正常的读写。
设备一直挂在目标机上,用reboot命令重启目标机,此时USB设备也可以正常的读写,但是如果用Reset启动目标机,USB设备就不能正常的读写了。
2:如果直接通过Power上电或是Reset启动目标机,当USB设备在vxworks系统启动前插
入目标机,此USB设备也不能正常的读写了。
查看源码得知:busThread()->checkHubStatus()->updateHubPort()->createNode()->usbDescriptorGet()
函数usbDescriptorGet()产生错误,actLen = 0。而在正常的情况下actLen = 8。
通过比较,正常和异常的情况下函数间传递的参数都是一样的,那为什么会出现上bug?
请高手们指点迷津,谢谢先!