wince如何实现mass Storage功能

pangding1014 2013-05-07 05:15:59
就是在pc端能将设备识别人u盘
看到一些文章,说是修改注册表
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
"DefaultClientDriver"=- ; erase previous default
"DefaultClientDriver"="Mass_Storage_Class"

[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:5

[HKEY_LOCAL_MACHINE/Drivers/USB/FunctionDrivers/Mass_Storage_Class]
"Dll"="usbmsfn.dll"
"InterfaceSubClass"=dword:06
"InterfaceProtocol"=dword:50
"DeviceName"="DSK2:"
"FriendlyName"="Mass Storage"
"idVendor"=dword:048C
"Manufacturer"="Honeywell"
"idProduct"=dword:0001
"Product"="Honeywell Mass Storage"
"bcdDevice"=dword:0
这些id我暂时是用的上面的,知道是不对,现在的状况就是pc端有盘符了,但是进不去
这个"idVendor" "idProduct"等信息如何得到。是不是一个sd卡对应一个id,那么如何多个卡呢?小白不太懂,望大神指导指导,万分感谢!
...全文
162 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
pangding1014 2013-05-14
  • 打赏
  • 举报
回复
引用 15 楼 LoongEmbedded 的回复:
下面的连接是我实现mass storage的总结,期望对你有帮助: http://blog.csdn.net/loongembedded/article/details/7536193 http://blog.csdn.net/loongembedded/article/details/8497746
谢谢您的关注,我读过您的文章,给了我很大的帮助,也做了一定的修改。现在我将sd卡做mass storage,pc上有盘符,但是wince上的sd卡盘符没有消失,dismount/mount一直被重复调用
loongembedded 2013-05-14
  • 打赏
  • 举报
回复
下面的连接是我实现mass storage的总结,期望对你有帮助: http://blog.csdn.net/loongembedded/article/details/7536193 http://blog.csdn.net/loongembedded/article/details/8497746
pangding1014 2013-05-10
  • 打赏
  • 举报
回复
加入打印信息,发现dismount/mount一直被重复调用
pangding1014 2013-05-10
  • 打赏
  • 举报
回复
引用 11 楼 cclutpk 的回复:
[quote=引用 10 楼 pangding1014 的回复:] [quote=引用 4 楼 accessysq 的回复:] "DeviceName"="DSK2:" 这个是SD卡? 如果指向flash我就知道有pc看到盘符而进不去的情况。
我想问下"DeviceName"="DSK1:" 这个如何设置,我在ce的控制面板里查看sd卡,有时是DSK1,有时是DSK2。sd卡的一些注册信息是这样的[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC_SMDK2440] "Order"=dword:21 "Dll"="sdhc_sc2440.dll" "Prefix"="SDH" "DMAChannel"=dword:0 ; DMA channel to use. Set to 0xffffffff to disable DMA "DMAIrq"=dword:11 "DMA_IST_Priority"=dword:96 现在的串口显示是ERROR: d:\wince500\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907: UsbMsFn!BOT_DeviceNotify: Failed to open store[/quote] 想指定DSK的索引,需要在注册表里面添加 [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class] "Index"=dword:8 ;指定为DSK8[/quote] 发现了一个问题,就是PC连接wince后,wince中的sd卡还在,应该是没有dismount掉,这部分代码应该怎么修改?
pangding1014 2013-05-09
  • 打赏
  • 举报
回复
引用 11 楼 cclutpk 的回复:
想指定DSK的索引,需要在注册表里面添加 [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class] "Index"=dword:8 ;指定为DSK8
嗯,这部分好了,现在的问题是pc端有可移动磁盘的盘符,就是点不开
  • 打赏
  • 举报
回复
"DeviceName"="DSK2:" 这个是SD卡? 如果指向flash我就知道有pc看到盘符而进不去的情况。
cclutpk 2013-05-08
  • 打赏
  • 举报
回复
只要你的
引用 2 楼 pangding1014 的回复:
[quote=引用 1 楼 cclutpk 的回复:] 这里的idVendor,idProduct是告知PC的吧,随便写个应该就可以
应该不是这样吧,昨天用usbview可以查到这个信息。但是连上pc后还是不能用[/quote] 不能用一定是因为这个么?你看一下设备端控制面板的存储器管理,看看你的SD卡是“DSK2:”吗?
pangding1014 2013-05-08
  • 打赏
  • 举报
回复
引用 1 楼 cclutpk 的回复:
这里的idVendor,idProduct是告知PC的吧,随便写个应该就可以
应该不是这样吧,昨天用usbview可以查到这个信息。但是连上pc后还是不能用
cclutpk 2013-05-08
  • 打赏
  • 举报
回复
这里的idVendor,idProduct是告知PC的吧,随便写个应该就可以
cclutpk 2013-05-08
  • 打赏
  • 举报
回复
引用 10 楼 pangding1014 的回复:
[quote=引用 4 楼 accessysq 的回复:] "DeviceName"="DSK2:" 这个是SD卡? 如果指向flash我就知道有pc看到盘符而进不去的情况。
我想问下"DeviceName"="DSK1:" 这个如何设置,我在ce的控制面板里查看sd卡,有时是DSK1,有时是DSK2。sd卡的一些注册信息是这样的[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC_SMDK2440] "Order"=dword:21 "Dll"="sdhc_sc2440.dll" "Prefix"="SDH" "DMAChannel"=dword:0 ; DMA channel to use. Set to 0xffffffff to disable DMA "DMAIrq"=dword:11 "DMA_IST_Priority"=dword:96 现在的串口显示是ERROR: d:\wince500\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907: UsbMsFn!BOT_DeviceNotify: Failed to open store[/quote] 想指定DSK的索引,需要在注册表里面添加 [HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class] "Index"=dword:8 ;指定为DSK8
pangding1014 2013-05-08
  • 打赏
  • 举报
回复
引用 4 楼 accessysq 的回复:
"DeviceName"="DSK2:" 这个是SD卡? 如果指向flash我就知道有pc看到盘符而进不去的情况。
我想问下"DeviceName"="DSK1:" 这个如何设置,我在ce的控制面板里查看sd卡,有时是DSK1,有时是DSK2。sd卡的一些注册信息是这样的[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC_SMDK2440] "Order"=dword:21 "Dll"="sdhc_sc2440.dll" "Prefix"="SDH" "DMAChannel"=dword:0 ; DMA channel to use. Set to 0xffffffff to disable DMA "DMAIrq"=dword:11 "DMA_IST_Priority"=dword:96 现在的串口显示是ERROR: d:\wince500\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907: UsbMsFn!BOT_DeviceNotify: Failed to open store
pangding1014 2013-05-08
  • 打赏
  • 举报
回复
引用 3 楼 cclutpk 的回复:
只要你的 [quote=引用 2 楼 pangding1014 的回复:] [quote=引用 1 楼 cclutpk 的回复:] 这里的idVendor,idProduct是告知PC的吧,随便写个应该就可以
应该不是这样吧,昨天用usbview可以查到这个信息。但是连上pc后还是不能用[/quote] 不能用一定是因为这个么?你看一下设备端控制面板的存储器管理,看看你的SD卡是“DSK2:”吗?[/quote] 我想问下"DeviceName"="DSK1:" 这个如何设置,我在ce的控制面板里查看sd卡,有时是DSK1,有时是DSK2。sd卡的一些注册信息是这样的[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SDHC_SMDK2440] "Order"=dword:21 "Dll"="sdhc_sc2440.dll" "Prefix"="SDH" "DMAChannel"=dword:0 ; DMA channel to use. Set to 0xffffffff to disable DMA "DMAIrq"=dword:11 "DMA_IST_Priority"=dword:96 现在的串口显示是ERROR: d:\wince500\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907: UsbMsFn!BOT_DeviceNotify: Failed to open store
pangding1014 2013-05-08
  • 打赏
  • 举报
回复
引用 7 楼 syrchina 的回复:
改着一个就可以了: "DefaultClientDriver"="Mass_Storage_Class" 但是要重启机器,并且等几十秒
不是这个问题,之前的bsp包里的注册表没有Mass_Storage_Class的注册信息,这是我自己添加上去的
rickys2080 2013-05-08
  • 打赏
  • 举报
回复
改着一个就可以了: "DefaultClientDriver"="Mass_Storage_Class" 但是要重启机器,并且等几十秒
pangding1014 2013-05-08
  • 打赏
  • 举报
回复
引用 4 楼 accessysq 的回复:
"DeviceName"="DSK2:" 这个是SD卡? 如果指向flash我就知道有pc看到盘符而进不去的情况。
问题是这样的,上次看错了,应该是DSK1。。但是这次还是有问题,串口打印信息是ERROR: d:\wince500\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907: UsbMsFn!BOT_DeviceNotify: Failed to open store,说是不能打开
pangding1014 2013-05-08
  • 打赏
  • 举报
回复
引用 3 楼 cclutpk 的回复:
只要你的 [quote=引用 2 楼 pangding1014 的回复:] [quote=引用 1 楼 cclutpk 的回复:] 这里的idVendor,idProduct是告知PC的吧,随便写个应该就可以
应该不是这样吧,昨天用usbview可以查到这个信息。但是连上pc后还是不能用[/quote] 不能用一定是因为这个么?你看一下设备端控制面板的存储器管理,看看你的SD卡是“DSK2:”吗?[/quote] 问题是这样的,上次看错了,应该是DSK1。。但是这次还是有问题,串口打印信息是ERROR: d:\wince500\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907: UsbMsFn!BOT_DeviceNotify: Failed to open store,说是不能打开

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧