阅读:1475回复:0
ce 6.0上接usb 鼠标的问题
环境:window ce 6.0, Intel_BSP2.5_Gold, ICH8M + PINEVIEW D525
问题:1.系统编译好,将nk.bin下载到板子上,插入usb鼠标,没进行设备加载, 2.在bsp选中uhci后,编译工程下到板子上,插入usb鼠标,可以正常使用,但是随后产生一个问题,usb鼠标拔出后再插入刚拔出的这个usb端口,鼠标就不能用了。 步骤跟踪:1.这个问题在鼠标插上后进行端口检测,判断插入的鼠标为低速设备,而后没有进行attachdevice的动作。 2.跟踪了hcd的驱动后,发现当设备再次插入的时候,在CHW::UsbInterruptThread( )这个监控usb中断事件的线程中,一直停在WaitForSingleObject(m_hUsbInterruptEvent, INFINITE);这个语句,也就是m_hUsbInterruptEvent一直是无信号事件,这个事件的定义为:m_hUsbInterruptEvent = CreateEvent( NULL, FALSE, FALSE, NULL );是auto reset 3.跟踪了设备拔出时卸载的信息,当设备拔出后执行了SuspendHostController()函数的动作,函数实体为: VOID CHW::SuspendHostController() { if ( m_portBase != 0 ) { // initialize interrupt register - set only RESUME interrupts to enabled WORD wUSBCmd = Read_USBCMD(); wUSBCmd &= ~UHCD_USBCMD_RUN_STOP; Write_USBCMD(wUSBCmd); Write_USBCMD(wUSBCmd | UHCD_USBCMD_ENTER_GLOBAL_SUSPEND_MODE); } } ps:一个奇怪的问题,当该鼠标插入该usb口不能识别后,转插其他的usb口,可以正常识别,这个时候如果再拿另一个usb鼠标插回到原先不能识别的usb端口的时候,鼠标也能被识别到。 请问,这个问题到底出现在哪里,我该进行怎样后续跟踪呢? |
|