benben3611
驱动牛犊
驱动牛犊
  • 注册日期2007-10-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望46点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
阅读:1373回复:0

ce 6.0上接usb 鼠标的问题

楼主#
更多 发布于:2011-11-03 16:55
       环境: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端口的时候,鼠标也能被识别到。
 
 请问,这个问题到底出现在哪里,我该进行怎样后续跟踪呢?      
 
 
 
游客

返回顶部