我在Windows 7 PC上使用AM335x Beagle Bone black和WinCE 7 BSP VS 2008。我使用的是移动设备中心。当设备启动时,我会收到"USB设备未被识别"弹出消息。我检查了以下内容。
- 已添加必需的目录项
- 所有USB驱动程序都在最终图像中
- 在windows XP 32位PC中进行了测试-错误仍然存在
- 所有USB驱动程序都已加载
- 已在PC中检查基于移动设备的更新
我添加的目录项是,
- Core OS\Windows Embedded Compact\Device Drivers\USB\USB Function\USB功能客户端\USBFN串行客户端
- Core OS\Windows Embedded Compact\Device Drivers\USB\USB Function\USB功能支持
- Core OS\Windows Embedded Compact\Applications-最终用户\Active同步\文件同步
- Core OS\Windows Embedded Compact \应用程序-最终用户\活动同步
- Core OS\Windows Embedded Compact \外壳和用户界面\外壳\图形外壳\标准外壳
- 第三方\BSP\AM33X_BSP\ARMV7\Drivers\MUSB OTG Driver
我是否缺少任何目录项?我还能为ActiveSync连接验证什么?
更新1:
由于依赖关系,已包含此目录项。这个问题有什么原因吗?
Core OSWindows Embedded CompactDevice DriversUSBUSB HostUSB
Host Support
根据日志,我注意到serialusbfn.dll
没有被加载。如何加载?在注册表中,没有给出其订单号。
如果Windows没有要求提供驱动程序,这意味着在物理连接之后,设备没有提供有效的ID,这应该意味着低级USB链接没有按预期工作。IIRC控制器是一个OTG控制器,当您构建OSImage时,您需要将其配置为同时作为主机和设备(或仅在您的情况下作为设备)。
它现在可以在Windows 7和Windows XP中工作。
以前我在调试模式下构建BSP。我把它改成了释放模式。
我确保在操作系统设计中禁用了KITL,在设备引导时也在eboot中禁用了KITL。
在Windows XP中,它就是这样连接的。
在Windows7中,Windows更新检测到该设备并为其安装了驱动程序。它第一次没有连接(或者可能我没有再等几分钟)。第二次也是Windows更新安装了驱动程序并连接。从那时起,它每次都会在2分钟内连接。之后没有安装驱动程序。
我认为,由于一些时间问题,Active Sync无法在调试模式下连接。
根据ARM A8用户指南,KITL和Active Sync不能同时在一起的原因是,
USB RNDIS KITL传输使用一组专用例程与内核通信。它不使用标准的USB功能或OTG堆叠。在以下情况下禁用所有USB驱动程序至关重要USB RNDIS KITL正在使用中。USB RNDIS KITL的实现当KITL处于活动状态时,会自动禁用标准USB驱动程序。
感谢Keshava和Valter的持续帮助!