14434|39

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE6.0设备在PC上识别成U盘的问题 [复制链接]

当设备通过USB连接到PC时,想把设备当成U盘来用,作了如下一下工作,但是有问题,
请大家帮我看看,是哪里的问题。

添加了相关的组件:
CORRE OS-->CEBASE-->Core OS Services-->USB Function Driver 和USB Storage Class Driver
Device Drivers-->USB Funciton-->USB Function Clients-->Mass Storage

注册表增加了如下
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
  "Dll"="usbmsfn.dll"
  "InterfaceSubClass"=dword:06
  "InterfaceProtocol"=dword:50
  "DeviceName"="DSK1:"
  "FriendlyName"="Mass Storage"
  "idVendor"=dword:0228
  "Manufacturer"="TECH"
  "idProduct"=dword:0228
  "Product"="Wince"
  "bcdDevice"=dword:0
  "Removable"=dword:1   

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"="Mass_Storage_Class" ;

通过以上的修改,
1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑”
中会出现“可移动磁盘”,但无法访问它(无法格式化);
2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡),
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时,
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑”
中也不会出现“可移动磁盘”。

此帖出自WindowsCE论坛

最新回复

我最近也在研究这个方面的内容。你的库估计有问题。我将我的库给你一份吧。  详情 回复 发表于 2010-3-29 10:10
点赞 关注
 

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可以这样做?弄出来要指点一下啊。以前有人在论坛提过。
此帖出自WindowsCE论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
   "Dll"="usbmsfn.dll"
   "InterfaceSubClass"=dword:06
   "InterfaceProtocol"=dword:50
   "DeviceName"="DSK1:"
   "FriendlyName"="Mass Storage"
   "idVendor"=dword:0405
   "Manufacturer"="Generic Manufacturer (LifeLink)"
   "idProduct"=dword:AAAA
   "Product"="Generic Mass Storage (USB Smart Card)"
   "bcdDevice"=dword:0

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

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class]
    "DLL"="USBMSC.DLL"
    "Prefix"="DSK"
    "ResetTimeout"=dword:4000 ; msec
    "CommandBlockTimeout"=dword:4000
    "CommandStatusTimeout"=dword:4000
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\2]
    "DLL"="USBDISK6.DLL"
    "Prefix"="DSK"
    "FSD"="UDFS.DLL"
    "Folder"="USB Disk"
    "IOCTL"=dword:4
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\6]
    "DLL"="USBDISK6.DLL"
    "Prefix"="DSK"
    "FSD"="FATFS.DLL"
    "Folder"="USB Disk"
    "IOCTL"=dword:4
    "MediaPollInterval"=dword:1250; msec
    "ReadSectorTimeout"=dword:2000
    "WriteSectorTimeout"=dword:2000
    "ScsiCommandTimeout"=dword:5000
    "UnitAttnRepeat"=dword:10

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class]
   "FriendlyName"=LOC_USBFN_SERIAL_NAME
   "idVendor"=dword:0547
   "Manufacturer"=LOC_USBFN_SERIAL_MANUFACTURER
   "idProduct"=dword:2720
   "Product"=LOC_USBFN_SERIAL_PRODUCT
   "Index"=dword:9

"DeviceName"="DSK1:" 这个里面的 DSK1 对应的是你的设备管理器里面加载的设备,要是 Flash 为 DSK1 的话,那么连到电脑上就是你的NandFlash,如果是 SD 卡加载为 DSK1 的话,那么连到你电脑上的就是 SD 卡了。
  如果你这样配置还不正确,那么就是你BSP的 Function 驱动可能有问题了。 我用的是 S3C2440,Samsung 官方 BSP 就有问题。
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
gooogleman:但愿我能搞出来,因为我现在不能确认BSP的FLASH驱动部分及BSP中的注册表这个功能的设置都是正确的
xajhuang:多谢你出手呀,我测试看看,不过我的平台不是三星的
此帖出自WindowsCE论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

5
 
不要查 Flash 驱动了。要是 SD 卡能行 Flash 不行才能说明 Flash 驱动有问题,要是 SD 卡 和 Flash 都不行,就是 USB 驱动或者注册表配置问题。
此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
xajhuang:
我现在的情况就是这样:
1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑”
中会出现“可移动磁盘”,但无法访问它(无法格式化);
2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡),
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时,
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑”
中也不会出现“可移动磁盘”,有时候插上SD卡后,“设备管理器”中的出现黄色感叹号后,
“USB Mass Storage Device”这一项都没有了。

此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
第一种情况我遇到过 但是我把 USB 驱动修改后就好了。 第二种没有碰到过。
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

8
 
修改注册表如下所示,但上述问题还是同样存在。

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
  "Dll"="usbmsfn.dll"
  "InterfaceSubClass"=dword:06
  "InterfaceProtocol"=dword:50
  "DeviceName"="DSK1:"
  "FriendlyName"="Mass Storage"
  "idVendor"=dword:0405
  "Manufacturer"="Generic Manufacturer (LifeLink)"
  "idProduct"=dword:AAAA
  "Product"="Generic Mass Storage (USB Smart Card)"
  "bcdDevice"=dword:0

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

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\8\Mass_Storage_Class]
   "DLL"="USBMSC.DLL"
   "Prefix"="DSK"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class]
   "DLL"="USBMSC.DLL"
   "Prefix"="DSK"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\2]
   "DLL"="USBDISK6.DLL"
   "Prefix"="DSK"
   "Folder"="USB Disk"
   "MediaPollInterval"=dword:432   ; Media poll interval (1250 ms)
   "ReadSectorTimeout"=dword:2710  ; Read sector timeout (10 s)
   "WriteSectorTimeout"=dword:2710 ; Read sector timeout (10 s)
   "ScsiCommandTimeout"=dword:1388 ; Command timeout (5 s)
   "UnitAttnRepeat"=dword:A        ; TEST UNIT READY repeat (reduce to 1 for large USB disk keys)
   "IOCTL"=dword:4
   "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\6]
   "DLL"="USBDISK6.DLL"
   "Prefix"="DSK"
   "Folder"="USB Disk"
   "MediaPollInterval"=dword:432   ; Media poll interval (1250 ms)
   "ReadSectorTimeout"=dword:2710  ; Read sector timeout (10 s)
   "WriteSectorTimeout"=dword:2710 ; Read sector timeout (10 s)
   "ScsiCommandTimeout"=dword:1388 ; Command timeout (5 s)
   "UnitAttnRepeat"=dword:A        ; TEST UNIT READY repeat (reduce to 1 for large USB disk keys)
   "IOCTL"=dword:4
   "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"


此帖出自WindowsCE论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
把USBFN这个两用的驱动看明白就可以实现了
此帖出自WindowsCE论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
MARK!
此帖出自WindowsCE论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

11
 
不要只看注册表,而是要看USB的驱动。

一般原厂bsp都不会实现USB MassStorage驱动的,必须自己实现或修改。这个不改好,你的注册表搞的再好都没用的。
此帖出自WindowsCE论坛
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

12
 
mark
此帖出自WindowsCE论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

13
 
zzzzzzzzzzzzzzzzz
此帖出自WindowsCE论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

14
 
ccccccccccccccc
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

15
 
fffffffffffffffffff
此帖出自WindowsCE论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

16
 
楼上怎么搞的,多几次刷喽就封ID了
此帖出自WindowsCE论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

17
 
to LinHanLao,

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑”
中会出现“可移动磁盘”,但无法访问它(无法格式化)

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你格式化的时候,okay,这个时候应该可以访问了,但是,你的binfs也就格式发成了FATFS,所以你下次再启动的时候,这个时候,wince是booting补起来的。

解决方案:重新修改  usb mass storag driver。(这个不是很难)


2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡),
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时,
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑”
中也不会出现“可移动磁盘”。

----->这个是微软的没实现这个功能,就是类似与 reader card的功能。微软当前的driver默认的情况下是假设你的SD card已经插上去了,所以说当你没有插入SD卡就启动 usb mass storage功能的话,现在在 Init的时候会出错。也就是会在设备管理器上出现 惊叹号。

解决方案   重新修改  usb mass storag driver。(这个可能有点困难)
         
此帖出自WindowsCE论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

18
 
学习中
此帖出自WindowsCE论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

19
 
To yangkunzhen:
谢谢你的回复,第二个问题,即使是在SD卡已经插上的情况下启动设备,也是一样的现象。
此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 16 楼 yangkunzhen 的回复:
to LinHanLao,

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑”
中会出现“可移动磁盘”,但无法访问它(无法格式化)

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你…


牛,学习了。
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表