阅读:6249回复:35
请教,WinCE设备与PCUSB同步问题,wince5.0 + S3C2410,
各位高手,请问一个WinCE设备与PCUSB同步问题,wince5.0 + S3C2410。
我利用PlatformBuilder5.0 IDE窗口添加了Samsung 2410 CSP 和 USB Function Clients--Serial 但是电脑始终显示:无法识别USB设备。 USB驱动根本没有运行,请问是为什么,还有哪些需要修改。 谢谢。 |
|
论坛版主
|
沙发#
发布于:2005-04-19 16:47
你应该先确定你的USB CLIENT DRIVER和USB CLIENT驱动都起来,根据帮助看看注册表配置是否正确,特别注意ICLASS。
|
|
板凳#
发布于:2005-04-20 09:15
这个是从PB5.0 下的SMDK2410中拷贝来的。
;================= USB ================= ; @CESYSGEN IF CE_MODULES_USBD IF BSP_NOUSB ! [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\OHCI] \"InterfaceType\"=dword:0 ; Internal \"Prefix\"=\"HCD\" \"Dll\"=\"ohci2.dll\" \"Index\"=dword:1 \"Order\"=dword:1 \"Irq\"=dword:1a ; 26 \"SysIntr\"=dword:11 ; (SYSINTR_FIRMWARE+1) \"MemBase\"=dword:49000000 \"MemLen\"=dword:1000 \"UseExistingSettings\"=dword:0 ENDIF ;============= End of USB ================= ; @CESYSGEN ENDIF CE_MODULES_USBD ; @CESYSGEN IF CE_MODULES_USBFN IF BSP_NOUSBFN ! [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\SC2410USBFN] \"Dll\"=\"sc2410usbfn.dll\" \"Prefix\"=\"UFN\" \"Priority256\"=dword:64 \"IoBase\"=dword:B1200000 \"IoLen\"=dword:1000 ; Use one page \"Irq\"=dword:19 \"BusIoctl\"=dword:2a0048 \"IClass\"=multi_sz:\"{E2BDC372-598F-4619-BC50-54B3F7848D35}=%b\",\"{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b\" ENDIF BSP_NOUSBFN ! ; @CESYSGEN ENDIF CE_MODULES_USBFN 下面这一段是从Common.reg中拷贝来的(好像可以不拷,会自动生成) ; @CESYSGEN IF CE_MODULES_SERIALUSBFN [HKEY_LOCAL_MACHINE\\Drivers\\USB\\FunctionDrivers] \"DefaultClientDriver\"=- ; erase previous default [HKEY_LOCAL_MACHINE\\Drivers\\USB\\FunctionDrivers] \"DefaultClientDriver\"=\"Serial_Class\" [HKEY_LOCAL_MACHINE\\Drivers\\USB\\FunctionDrivers\\Serial_Class] \"Dll\"=\"serialusbfn.dll\" \"InterfaceSubClass\"=dword:ff \"InterfaceProtocol\"=dword:ff \"DeviceName\"=\"USBFNS1:\" \"Tsp\"=\"Unimodem.dll\" \"Prefix\"=\"COM\" \"DeviceArrayIndex\"=dword:0 \"DeviceType\"=dword:0 \"IClass\"=\"{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}\" ; idVendor must be changed. 045E belongs to Microsoft and is only to be used for ; prototype devices in your labs. Visit http://www.usb.org to obtain a vendor id. \"idVendor\"=dword:0 \"Manufacturer\"=dword:01 \"idProduct\"=dword:0 \"Product\"=dword:2 \"bcdDevice\"=dword:0 [HKEY_LOCAL_MACHINE\\Comm\\USB\\Linkage] \"Bind\"=multi_sz:\"USBFNSER1\" [HKEY_LOCAL_MACHINE\\Comm\\USBFNSER] \"DisplayName\"=\"USB Driver\" \"Group\"=\"Serial\" \"ImagePath\"=\"serialusbfn.dll\" [HKEY_LOCAL_MACHINE\\Comm\\USBFNSER\\Linkage] \"Route\"=multi_sz:\"USBFNSER1\" [HKEY_LOCAL_MACHINE\\Comm\\USBFNSER1\\Parms] ; Intentionally left blank as a placeholder. ; @CESYSGEN ENDIF CE_MODULES_SERIALUSBFN 但是在release目录下的ce.bib中会出现两个[HKEY_LOCAL_MACHINE\\Drivers\\USB\\FunctionDrivers\\Serial_Class] 驱动却是没有跑起来哦,所以我不知道为什么了,理论上驱动会起来的哦,我在Sc2410pdd.cpp(USB FUNCTION BUS DRIVER)加了打印信息没有出现,所以USB完全没有起来。 请问还有什么地方? |
|
地板#
发布于:2005-04-20 10:16
我想实现synchronizing data between a Windows-based desktop computer and Microsoft? Windows? CE
|
|
论坛版主
|
地下室#
发布于:2005-04-20 16:27
你的usb功能驱动怎么没有放到builtin低下?你需要先启动usb功能驱动,然后启动ohci
|
|
论坛版主
|
5楼#
发布于:2005-04-20 16:32
没看见,不好意思,设个order=0试试
|
|
6楼#
发布于:2005-04-21 11:45
order=0 是什么意思?(我真的不懂:)。。。)
那个是Host Control Driver 哦。。。。 我把所有的条件编译去掉了, 启动时Function都加载了: sc2410usbfn.dll serialusbfn.dll 都有运行,但是启动后,插入PC电脑还是显示“unknow USB device\" ,。。。。 |
|
7楼#
发布于:2005-04-22 09:22
PDD层的Sc2410pdd.cpp中的
// Initialize the device. DWORD WINAPI UfnPdd_Init(...) 和 // Called by MDD\'s DllEntry. extern \"C\" BOOL UfnPdd_DllEntry(...) 都在开机的时候运行了。 而ufnmdd.cpp中的: extern \"C\" BOOL WINAPI DllEntry(...) 与 // Initialize the MDD, PDD, and client. extern \"C\" DWORD UFN_Init(...) 没有运行,我都加了打印语句: RETAILMSG(1,。。。) 但是电脑还是认不出设备。 |
|
论坛版主
|
8楼#
发布于:2005-04-22 14:02
HOHO,刚去认真咨询了一把:)),是这样:
首先,你的USB接口是作为一个设备连接到PC端,所以在TARGET这端是USB CLIENT DRIVER,跟OHCI没关系,这个是USB HOST的 有两个驱动协同完成USB CLIENT端的工作:FUNCTION DRIVER和MDD+PDD的暂叫做平台相关驱动。 对应到你这儿FUNCTION DRIVER是:serialusbfn.dll 平台相关驱动为:sc2410usbfn.dll 它们的层次是serialusbfn.dll在上,sc2410usbfn.dll在下,但是启动顺序是先启动下层的sc2410usbfn.dll,然后是serialusbfn.dll。由于你的sc2410usbfn.dll包含了MDD+PDD,故这个动态链接库只能有一个DLLMAIN,所以这里UfnPdd_DllEntry执行了,DllEntry没有执行应该是由于你在SOURCES里面指定的ENTRY=UfnPdd_DllEntry,而不是DllEntry 在代码中你可以看到UfnPdd_Init是被UFN_Init显示调用的,这也是符合逻辑的,所以UfnPdd_Init执行到了,UFN_Init一定被执行过了。之所以没有信息可能是由于你重编译了库,但没放到合适的位置,导致连接用了老的库。 接下来的工作兄弟就只有自己动手丰衣足食了,应该没多大问题了,还有说错的地方我认罪哈:)))) |
|
9楼#
发布于:2005-04-25 11:28
谢谢这位好心的大哥不如我们直接联系吧,我在深圳。。。。
其实我在开发一款基于WinCE 5.0的手机,希望能够让手机与PC通过USB同步线同步(像其他PPC手机一样)。 我目前只做了如下的步骤: 1, 模组上的的USB PDP0 口由GPD13控制,所以在启动的时候增加如下代码使USB有效,PC就能检查到“未识别USB设备”,代码如下: //------Enable usb 050407 g_pIOPregs->GPDDAT &= (~(1<<13)); g_pIOPregs->GPDUP |= (1<<13); g_pIOPregs->GPDCON = (g_pIOPregs->GPDCON) & (~(3<<26))|(1<<26); //GPD13 USB_PLUB set to lower g_pIOPregs->MISCCR &= (~(1<<13)); // USB port 1 is enabled. 2,在Platform Builder中将Catalog中的 Core OS ――Core OS Services ――USB Host Support 与 Device Drivers ――USB Host ――OHCI 与 USB Functon ――USB Function Clients ――Serial 与 USB Function ――USB Function Bus Drivers ――Samsung 2410 CSP 用右键“ Add to OS Design”成功的添加到OS中。 然后,“Build and Sysgen”, 将NK.bin 放到手机中,启动后用USB同步线连接装有MS ActiveSync 的电脑,显示“未知USB设备”。 一切USB Function Driver代码都是微软默认的,source也是正确的,在OS启动初始化的时候都有加载。但是还是不能正常工作。 我没办法去改微软的代码。硬件在以前的Linux下工作正常,也可一作为Device连接到PC端。 我觉得我还没有找到问题的关键点,请高手留一个联系方式,我想直接请教。。。谢谢。 |
|
10楼#
发布于:2005-04-26 08:55
好像必须set BSP_NOUSBSER=
这样BSP中才有usb serial。 但是我试过了,还是无济于事。 高手,指点指点我吧。 |
|
11楼#
发布于:2005-04-26 12:34
跟踪进去或许可以找到错误。
|
|
论坛版主
|
12楼#
发布于:2005-04-26 15:42
啊呀呀,刚才又咨询了一把,这个东西还麻烦喔:)))
他们的设备可以被识别了,但是也还没有做好,activesync的配置你去国外论坛看看吧,一下可能还搞不定的喔... 至于你说usb驱动加载好了,pc这端不能识别,你看看usb的注册表配置,应该就是注册表里面给出设备信息传到pc那端。你看看哪个是告诉pc这边的usb设备类型的 |
|
13楼#
发布于:2005-04-27 15:23
请问,他们的怎么被识别出来的?谢谢。
|
|
论坛版主
|
14楼#
发布于:2005-04-27 16:12
没有什么特别啊,你看看帮助,把那些注册表项和驱动加载工作过程看明白,正确配置你自己的注册表就可以了
|
|
15楼#
发布于:2005-04-27 23:26
我没有开发过activesync下面的东西,不过用的时候需要在上面下面都要配置吧,PC上应该装USB的驱动程序,而设备定制时候也要添加相应的组件。完了之后对设备进行配置,然后系统应该能自动枚举到的吧。
要是写的话可能是个很麻烦的过程。个人认为用以太网来做会更加麻烦,不知道能不能实现。因为以太网已经加载了网络服务,还有KITL,这个同步不知道还能不能实现了? |
|
论坛版主
|
16楼#
发布于:2005-04-28 13:25
如果底层通道改成ether的话工作过程又不一样了,兄弟找帮助吧,按帮助试试
|
|
17楼#
发布于:2005-05-10 14:48
请问,怎么去改那个注册表?
|
|
论坛版主
|
18楼#
发布于:2005-05-10 16:07
我们这边儿有兄弟弄出来了:))),原来说配注册表麻烦什么的,失误哈,弄好了才发现不需要那么复杂,USB CLIENT上层的功能驱动选RNDIS,就可以工作了,这个绑定好象也是默认的,兄弟们试试吧:)
|
|
论坛版主
|
19楼#
发布于:2005-05-10 16:12
对了,ACTIVESYNC用最新的哈,据说最新的才支持
|
|
上一页
下一页