9149|38

87

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何实现CE设备在PC上识别为U盘? [复制链接]

通过看资料:
http://blog.eeworld.net/nanjianhui/archive/2009/08/20/4466741.aspx


我的BSPP中USB 驱动中有
        1、USB\FUNCTION
        2、USB\HCD\OHCD
        3、USB\HCD\UHCD
组建添加了:
        1\USB Function Clients\Mass Storage
        2\USB Host Support\USB Storage Class Driver

注册表里面关于FunctionDrivers的是在common.reg中:
--------------------------------------------------------------

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"=- ; erase previous default
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"="Mass_Storage_Class"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
   "Dll"="usbmsfn.dll"
   "InterfaceSubClass"=dword:06
   "InterfaceProtocol"=dword:50
   "DeviceName"="DSK1:"
   "FriendlyName"="Mass Storage"
; 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:045E
   "Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change

idVendor)"
   "idProduct"=dword:FFFF
   "Product"="Generic Mass Storage (PROTOTYPE--Remember to change idVendor)"
   "bcdDevice"=dword:0
; @CESYSGEN ENDIF CE_MODULES_USBMSFN

; @CESYSGEN IF CE_MODULES_RNDISFN
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"=- ; erase previous default
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"="Mass_Storage_Class"            ;这里原来是RNDIS

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\RNDIS]
   "Dll"="rndisfn.dll"
   "FriendlyName"="Rndis"
; 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:045E
   "Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change

idVendor)"
   "idProduct"=dword:0301
   "Product"="Generic RNDIS (PROTOTYPE--Remember to change idVendor)"
   "bcdDevice"=dword:0

-------------------------------------------------------------------
; @CESYSGEN IF CE_MODULES_SERIALUSBFN
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"=- ; erase previous default
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"="Mass_Storage_Class" ;;这里原来是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:045E
   "Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change

idVendor)"
   "idProduct"=dword:00ce
   "Product"="Generic Serial (PROTOTYPE--Remember to change idVendor)"
   "bcdDevice"=dword:0

但现在没反应,不知道是哪里出问题了,是不是驱动问题?

最新回复

支持下楼主!!  详情 回复 发表于 2009-9-28 20:09
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我顶
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这个问题我遇到过,但是没解决呢?感觉是不是还有自己写程序实现吧!可以查看pubilc下的代码!我后来开发的是把设备当做串口用的!
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个类似手机的使用:USB链接PC后在pc上出现一个可移动硬盘, 这个功能是必须要的!
开发的话就没必要了
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个是USB部分的注册表设置,感觉USB的驱动好像不支持我要的功能
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; USB Host/Device
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\OHCI]
        "Prefix"="HCD"
        "Dll"="ohci.dll"
        "Index"=dword:1
        "Order"=dword:1
;        "UseExistingSettings"=dword:0
;        "Irq"=dword:01E
;        "memBase"=dword:B0900000
        "Priority"=dword:255

IF BSP_NOUSBSER !

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USB]
        "Dll"="sc2440_usb_ser.Dll"
        "IoBase"=dword:B1200000
        "Irq"=dword:B
        "IoLen"=dword:130
        "Tsp"="Unimodem.dll"
        "DeviceArrayIndex"=dword:0
        "Prefix"="COM"
        "Order"=dword:2
        "DeviceType"=dword:0
        "FriendlyName"="SC2440 USB Cable:"
; Eliminate flow control bit
        "DevConfig"=hex: 10,00,00,00,05,00,00,00,00,01,00,00,00,4B,00,00,00,00,08,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\Comm\USB\Linkage]
        "Bind"=multi_sz:"SC2440USB1"
   
[HKEY_LOCAL_MACHINE\Comm\SC2440USB]
        "DisplayName"="SC2440 USB Driver"
        "Group"="Serial"
        "ImagePath"="sc2440_usb_ser.dll"

[HKEY_LOCAL_MACHINE\Comm\SC2440USB\Linkage]
        "Route"=multi_sz:"SC2440USB1"

[HKEY_LOCAL_MACHINE\Comm\SC2440USB1\Parms]
ENDIF BSP_NOUSBSER !
; @CESYSGEN ENDIF CE_MODULES_USBD

USB的驱动接口

COM_Init
        COM_Deinit
        COM_Open
        COM_Close
        COM_Read
        COM_Write
        COM_Seek
        COM_PowerDown
        COM_PowerUp
        COM_IOControl
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 
你是不是yc的开发板那!
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 
竟然和我的一样,他[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USB]
"Dll"="sc2440_usb_ser.Dll"  这个dll是把usb转成串口的!不可以把调试信息打开研究下!我本来的想法和你一样,但是现在放弃了!不知道你想做什么功能??
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
  "DeviceName"="DSK1:"

1. LZ 的 Target 内是否有 DSK1??(可在 WinCE 的 registry [HKEY_LOCAL_MACHINE\Drivers\Active] 中得知)

2. LZ 的 PC 上是否有辨认到有 USB device attached? 它是认成什麽装置??(可在 WinXP 的 Device Manager 内得知)

Paul, Chao @ Techware
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

9
 
类似手机的使用:USB链接PC后在pc上出现一个可移动硬盘,

这个贴,是成功了,但没说是怎么实现的
http://topic.eeworld.net/u/20090117/21/180069a5-0f0c-4e7d-b4e0-1c8100f19448.html

真正实现usb MassStorage 的是usbmsfn.dll
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 7 楼 paul_chao 的回复:
?"DeviceName"="DSK1:"

1. LZ 的 Target 内是否有 DSK1??(可在 WinCE 的 registry [HKEY_LOCAL_MACHINE\Drivers\Active] 中得知)

2. LZ 的 PC 上是否有辨认到有 USB device attached? 它是认成什麽装置??(可在 WinXP 的 Device Manager 内得知)

Paul, Chao @ Techware



有DSK1:
\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class
虽然是SDCARD的但也是可以的
--------------------------
2、在设备管理器中  
是windows ce usb devices\anchor usb EZ-Link Cable ,USB链接后就实现与ActiveSync同步
  这里应该是用的serial_calss 吧?

 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

11
 
简单看了下注册表,似乎没什么问题,但是还有部分内容比较重要,你没贴出来。
你要实现U盘功能的话在WINCE下已经将FLASH的部分空间设置成盘符了吧?
如果有的话相应FLASH驱动部分的注册表要有如下内容:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk]
   "Prefix"="DSK"
   "Index"=dword:1

并且Index的值以及你贴出的USB注册表中的"DeviceName"="DSK1:"这两个中的数字要一致。

如果还不行的话就要通过BUSHOUND软件及你驱动的打印信息找下原因了。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 veabol 的回复:
简单看了下注册表,似乎没什么问题,但是还有部分内容比较重要,你没贴出来。
你要实现U盘功能的话在WINCE下已经将FLASH的部分空间设置成盘符了吧?
如果有的话相应FLASH驱动部分的注册表要有如下内容:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk]
?"Prefix"="DSK"
? "Index"=dword:1
并且Index的值以及你贴出的USB注册表中的"DeviceName"="DSK1:"这两个中的数字要一致。

如果还不行的话就要通过BUSHOUND软件及你驱动的打印信息找下原因了。

盘符OK,在wince下!
注册表如下:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDrv]
        "Prefix"="DSK"       
        "Index"=dword:1               
        "Dll"="FLASHDRV.dll"
        "FSD"="FATFS.DLL"       
        "Order"=dword:0
        "Ioctl"=dword:4
        "Profile"="FlashDrv"
        "FriendlyName"="MS Flash Driver"
        "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
  "MountFlags"=dword:11
        "BootPhase"=dword:1
        "Flags"=dword:1000  ;***
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

13
 
你说的“注册表里面关于FunctionDrivers的是在common.reg中: ”

那你的platform.reg或者是project.reg是怎么写的?(project.reg可能没有)
因为在整合注册表的过程中platform.reg中的内容会规制掉common.reg的相同内容。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

14
 
platform.reg中没有
HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
  "DefaultClientDriver"="Mass_Storage_Class"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
等项的设置
------------
所以我把common.reg都改成"DefaultClientDriver"="Mass_Storage_Class"
----
我的平台是2440+wince5.0      
我感觉注册表的根本没有起任何作用,
现在怀疑:一、没有支持的驱动      二、哪里的环境变量没有设置?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

15
 
嘿嘿,这个我也想搞,我先搞定这个LCD先,然后再来抄袭楼主成功经验,
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 14 楼 gooogleman 的回复:
嘿嘿,这个我也想搞,我先搞定这个LCD先,然后再来抄袭楼主成功经验,


没问题 我搞定后 我会公布的

-------
我设置了:SYSGEN_USBFN_STORAGE=1保证CE_MODULES_USBMSFN有效
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

17
 
在你的BSP的USB driver还有WINCE PUBLIC下USB的driver都加些打印信息吧,看看是不是哪里出了问题,PUBLIC下的基本上在WINCE500\PUBLIC\COMMON\OAK\DRIVERS\USBFN\CLASS\STORAGE里边的函数加些打印信息就可以了

其实用DEBUG模式应该就会打印一些内容的,我一直都用的release。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

18
 
你看下这个吧
http://blog.eeworld.net/nanjianhui/archive/2009/08/20/4466741.aspx
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

19
 
哈哈LS有没有发现 我的贴这里有这个链接
    /nanjianhui讲的太简单了,要实现可不容易
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

20
 
楼主问题还解决了,解决了赶快分享下呀!很多人想知道这问题呢!!帮你顶下呀!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表