tandyjames
驱动牛犊
驱动牛犊
  • 注册日期2005-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:7050回复: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用最新的哈,据说最新的才支持
根据地的兄弟们,团结就是力量
上一页
游客

返回顶部