tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:6249回复:35

请教,WinCE设备与PCUSB同步问题,wince5.0 + S3C2410,

楼主#
更多 发布于:2005-04-19 15:39
各位高手,请问一个WinCE设备与PCUSB同步问题,wince5.0 + S3C2410。
我利用PlatformBuilder5.0 IDE窗口添加了Samsung 2410 CSP 和
        USB Function Clients--Serial

但是电脑始终显示:无法识别USB设备。

USB驱动根本没有运行,请问是为什么,还有哪些需要修改。
谢谢。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-19 16:47
你应该先确定你的USB CLIENT DRIVER和USB CLIENT驱动都起来,根据帮助看看注册表配置是否正确,特别注意ICLASS。
根据地的兄弟们,团结就是力量
tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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完全没有起来。
请问还有什么地方?
tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-20 10:16
我想实现synchronizing data between a Windows-based desktop computer and Microsoft? Windows? CE
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-20 16:27
你的usb功能驱动怎么没有放到builtin低下?你需要先启动usb功能驱动,然后启动ohci
根据地的兄弟们,团结就是力量
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-20 16:32
没看见,不好意思,设个order=0试试
根据地的兄弟们,团结就是力量
tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-21 11:45
order=0 是什么意思?(我真的不懂:)。。。)
那个是Host Control Driver 哦。。。。

我把所有的条件编译去掉了, 启动时Function都加载了:
sc2410usbfn.dll
serialusbfn.dll

都有运行,但是启动后,插入PC电脑还是显示“unknow USB device\"
,。。。。
tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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,。。。)
 
但是电脑还是认不出设备。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
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一定被执行过了。之所以没有信息可能是由于你重编译了库,但没放到合适的位置,导致连接用了老的库。


接下来的工作兄弟就只有自己动手丰衣足食了,应该没多大问题了,还有说错的地方我认罪哈:))))
根据地的兄弟们,团结就是力量
tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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端。

我觉得我还没有找到问题的关键点,请高手留一个联系方式,我想直接请教。。。谢谢。
tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-04-26 08:55
好像必须set BSP_NOUSBSER=
这样BSP中才有usb serial。
但是我试过了,还是无济于事。
高手,指点指点我吧。
dinjee
驱动牛犊
驱动牛犊
  • 注册日期2002-05-18
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分180分
  • 威望69点
  • 贡献值1点
  • 好评度16点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-04-26 12:34
跟踪进去或许可以找到错误。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-04-26 15:42
啊呀呀,刚才又咨询了一把,这个东西还麻烦喔:)))

他们的设备可以被识别了,但是也还没有做好,activesync的配置你去国外论坛看看吧,一下可能还搞不定的喔...

至于你说usb驱动加载好了,pc这端不能识别,你看看usb的注册表配置,应该就是注册表里面给出设备信息传到pc那端。你看看哪个是告诉pc这边的usb设备类型的
根据地的兄弟们,团结就是力量
tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-04-27 15:23
请问,他们的怎么被识别出来的?谢谢。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-04-27 16:12
没有什么特别啊,你看看帮助,把那些注册表项和驱动加载工作过程看明白,正确配置你自己的注册表就可以了
根据地的兄弟们,团结就是力量
zouyingmyfriend
驱动牛犊
驱动牛犊
  • 注册日期2003-11-09
  • 最后登录2007-09-14
  • 粉丝0
  • 关注0
  • 积分83分
  • 威望12点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-04-27 23:26
我没有开发过activesync下面的东西,不过用的时候需要在上面下面都要配置吧,PC上应该装USB的驱动程序,而设备定制时候也要添加相应的组件。完了之后对设备进行配置,然后系统应该能自动枚举到的吧。
要是写的话可能是个很麻烦的过程。个人认为用以太网来做会更加麻烦,不知道能不能实现。因为以太网已经加载了网络服务,还有KITL,这个同步不知道还能不能实现了?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-04-28 13:25
如果底层通道改成ether的话工作过程又不一样了,兄弟找帮助吧,按帮助试试
根据地的兄弟们,团结就是力量
tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-05-10 14:48
请问,怎么去改那个注册表?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-05-10 16:07
我们这边儿有兄弟弄出来了:))),原来说配注册表麻烦什么的,失误哈,弄好了才发现不需要那么复杂,USB CLIENT上层的功能驱动选RNDIS,就可以工作了,这个绑定好象也是默认的,兄弟们试试吧:)
根据地的兄弟们,团结就是力量
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2005-05-10 16:12
对了,ACTIVESYNC用最新的哈,据说最新的才支持
根据地的兄弟们,团结就是力量
上一页
游客

返回顶部