Vxworks下USB盘识别问题
我用的是Tornado2.2,Vxworks版本是5.5,包含USB模块,
新建立工程后,工程中加入USB支持,选中下列组件:
Hardware-> Buses-> USB Hosts-> USB Host Stack
Hardware-> Buses-> USB Hosts-> OHCI
Hardware-> Buses-> USB Hosts-> UHCI
Hardware-> Buses-> USB Hosts-> EHCI
Hardware-> Buses-> USB Hosts-> USB Host Init-> USB Host Stack Init
Hardware-> Buses-> USB Hosts-> USB Host Init-> OHCI Init
Hardware-> Buses-> USB Hosts-> USB Host Init-> UHCI Init
Hardware-> Buses-> USB Hosts-> USB Host Init-> EHCI Init
在工程中添加USB设备的支持,添加下列组件:
Hardware-> Peripherals-> USB Devices-> Mass Storage - Bulk
Hardware-> Peripherals-> USB Devices-> USB Devices Init-> Bulk Mass Storage Init
可最后在目标机上,程序执行到usrUsbHcdUhciAttach函数时不返回,请问怎么回事?
如果是我做的方法不对,该怎么做?我的目的很简单,就是想在Vxworks下将采集数据保存在U盘里。
[解决办法]
不返回?!可以具体跟踪下代码,不过,最有可能的是驱动置了一个中断---就是执行某个寄存器操作使得芯片产生中断,然后就等中断发生,中断由事先设计好的ISR捕获并告知(通过信号量或者管道等手段)这个函数,如果中断发生了,函数很快得到消息就接着执行,否则要么超时,要么一直等。这个做法就是一种确认芯片工作正常,中断挂载正常的常用做法。
啊,当然,你的情况不一定是这样啊。只是说这种情况是有可能的。
[解决办法]
一个系统,不太可能同时有UHCI,OHCI和EHCI控制器。最好先确定你的控制器类型。如果USB控制器不是挂在PCI总线上的话,通常需要对usbPciStub.c文件进行一点小小的改动。
[解决办法]
wt?是不是应该是w+?