WINCE6.0+S3C6410实现USB mass storage遇到的问题

loongembedded
博客专家认证
2011-10-17 09:20:32
本人基于深圳友坚的ideal6410来实现USB mass storage,相关内容如下:
1.添加组件”Device Drivers”->”USB Function”->”USB Function Clients”->”Mass Storage”。
2.platform.reg中相关的注册表信息如下:
;------------ USB Function Mass Stroge Driver ---------------------------------
IF BSP_USBFNCLASS == MASS_STORAGE

[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"="DSK3:"
"FriendlyName"="Mass Storage"
"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
;"Removable"=dword:0
"Removable"=dword:1

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
"Index"=dword:3

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\High_Capacity]
"Index"=dword:3

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class]
"Index"=dword:3

ENDIF BSP_USBFNCLASS

重新编译之后生成的NK.bin更新之后,用usb device线连接到PC机上,但PC机上没有看到多的盘符,只是在PC机上的“设备管理器->通用串行控制器”多出一个带感叹号的“USB mass storage device”,串口输出下面的信息
[UFNPDD] RESET Again
[UFNPDD] RESET Again
目前还不知道为什么不行,麻烦知道的朋友指教一下,先谢谢了。
...全文
272 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
简单并快乐着 2013-10-14
  • 打赏
  • 举报
回复
引用 17 楼 LoongEmbedded 的回复:
[Quote=引用 14 楼 ele01 的回复:] 引用 12 楼 loongembedded 的回复: 引用 7 楼 guetcw 的回复: C100上也很正常,就是"DeviceName"="DSK3:" 这里不能和NAFLSH的盘符冲突 ;------------ USB Function Mass Stroge Driver --------------------------------- IF BSP_USBFNCLASS ==…… [/Quote] 我昨晚做了测试,NANDFLASH正常加载的时候,显示是DSK1,我的"DeviceName"为"DSK1:"时可以在PC机上看到WINCE是作为一个可移动盘存在,这时候在WINCE端看不到NANDFLASH盘符;但如果"DeviceName"是DSK1之外的值(比如DSK3或其他的)都不能识别WINCE作为一个可移动盘存在,当然这样的情况下,在WINCE设备端是可以看到NANDFLASH盘符的,在这里向大家请教了。
连接上以后,当然wince 这边看不到了,因为控制权交给了 电脑了,以前手机也是这样的,一旦连接电脑,这边的app 不能跑了的,因为都找不到盘符了。这个也正常,这边是不能直接访问这个盘符了啊。
loongembedded 2011-10-21
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ele01 的回复:]
引用 12 楼 loongembedded 的回复:
引用 7 楼 guetcw 的回复:
C100上也很正常,就是"DeviceName"="DSK3:" 这里不能和NAFLSH的盘符冲突
;------------ USB Function Mass Stroge Driver ---------------------------------
IF BSP_USBFNCLASS ==……
[/Quote]
我昨晚做了测试,NANDFLASH正常加载的时候,显示是DSK1,我的"DeviceName"为"DSK1:"时可以在PC机上看到WINCE是作为一个可移动盘存在,这时候在WINCE端看不到NANDFLASH盘符;但如果"DeviceName"是DSK1之外的值(比如DSK3或其他的)都不能识别WINCE作为一个可移动盘存在,当然这样的情况下,在WINCE设备端是可以看到NANDFLASH盘符的,在这里向大家请教了。

loongembedded 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ele01 的回复:]
引用 12 楼 loongembedded 的回复:
引用 7 楼 guetcw 的回复:
C100上也很正常,就是"DeviceName"="DSK3:" 这里不能和NAFLSH的盘符冲突
;------------ USB Function Mass Stroge Driver ---------------------------------
IF BSP_USBFNCLASS ==……
[/Quote]
哈哈,谢谢,今晚试一下。
ele01 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 loongembedded 的回复:]
引用 7 楼 guetcw 的回复:
C100上也很正常,就是"DeviceName"="DSK3:" 这里不能和NAFLSH的盘符冲突
;------------ USB Function Mass Stroge Driver ---------------------------------
IF BSP_USBFNCLASS == MASS_STORAGE

[HKEY_LOCAL……
[/Quote]

你在控制面板中看看NANDFLASH的disk有没有被mount上,如果mass storage指定的DSK和你的nandflash冲突了,就会这样。
  • 打赏
  • 举报
回复
嗯,我的也看不到,要切换回serial模式nandflash才能看到。
loongembedded 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 accessysq 的回复:]
注册表应该没有问题,我的也是这样,可以,不过需要格式化后才能使用,格式化后一旦重启,就再也不行,因为nandflash里面放注册表的文件夹没了,所以要正常工作要该下面的驱动。

友坚的开发板感觉还是不太专业,很多都支持的不好,或者根本就不行,跟他们的说明还是有点差距的。
[/Quote]
看不到盘符,如何格式化啊,我试了广州华天正的real6410也不行。
loongembedded 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 accessysq 的回复:]
注册表应该没有问题,我的也是这样,可以,不过需要格式化后才能使用,格式化后一旦重启,就再也不行,因为nandflash里面放注册表的文件夹没了,所以要正常工作要该下面的驱动。

友坚的开发板感觉还是不太专业,很多都支持的不好,或者根本就不行,跟他们的说明还是有点差距的。
[/Quote]
我进一步补充我遇到的问题:PC机连上设备后,除了上面我提到的现象之外,在电脑的右下角还可以看到像平时我们接上U盘时的小箭头鼠标,可是在PC机上就是没有看到新的盘符。
当我遇上-你 2011-10-18
  • 打赏
  • 举报
回复
学习了
woshi_ziyu 2011-10-18
  • 打赏
  • 举报
回复
帮顶,,,,,,
loongembedded 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guetcw 的回复:]
C100上也很正常,就是"DeviceName"="DSK3:" 这里不能和NAFLSH的盘符冲突
;------------ USB Function Mass Stroge Driver ---------------------------------
IF BSP_USBFNCLASS == MASS_STORAGE

[HKEY_LOCAL_MACHINE\Drivers\USB……
[/Quote]
我试了guetcw的注册表信息,可以了,但是在WINCE设备端又看不到原来的NANDFLASH盘符了,不知为什么?看来这部分要深入去学习才能有所理会了,还望知道的朋友分析一下。
  • 打赏
  • 举报
回复
注册表应该没有问题,我的也是这样,可以,不过需要格式化后才能使用,格式化后一旦重启,就再也不行,因为nandflash里面放注册表的文件夹没了,所以要正常工作要该下面的驱动。

友坚的开发板感觉还是不太专业,很多都支持的不好,或者根本就不行,跟他们的说明还是有点差距的。
Linux_lee 2011-10-18
  • 打赏
  • 举报
回复
呵呵,改一下注册表里的设置,记得是跟盘符有关,我都改成功过的,随便挂载任意分区和SD卡
loongembedded 2011-10-18
  • 打赏
  • 举报
回复
谢谢大家的回复,明天试一下看是否成功啊。
shellgo 2011-10-18
  • 打赏
  • 举报
回复
6410以前也试验过,没有成功,用得不多,所以没有解决
九个太阳2023 2011-10-18
  • 打赏
  • 举报
回复
学习了!!
guetcw 2011-10-18
  • 打赏
  • 举报
回复
C100上也很正常,就是"DeviceName"="DSK3:" 这里不能和NAFLSH的盘符冲突
;------------ USB Function Mass Stroge Driver ---------------------------------
IF BSP_USBFNCLASS == MASS_STORAGE

[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"=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
"Removable"=dword:0

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
"Index"=dword:3

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\High_Capacity]
"Index"=dword:3

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class]
"Index"=dword:3

ENDIF BSP_USBFNCLASS
ele01 2011-10-18
  • 打赏
  • 举报
回复
s5pv210下的mass storage很正常 我把reg配置给你参考下。

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

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
"Index"=dword:3

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\High_Capacity]
"Index"=dword:3

[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\MMC_Class]
"Index"=dword:3
ENDIF

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
"Dll"="usbmsfn.dll"
"InterfaceSubClass"=dword:06
"InterfaceProtocol"=dword:50
"FriendlyName"="Mass Storage"
"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
; for SDMMC
"DeviceName"="DSK3:" ; SDMMC DSK index
"Removable"=dword:1 ; Removable option
"Type"=dword:1 ;0-nand, 1-sdmmc
"SDSlot0"="HSC1:" ; SD Slot

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class]
"PacketsPerTransfer"=dword:180; change transfer size to 64KB from 8KB
  • 打赏
  • 举报
回复
我用的是友坚另一块6410的版子,可以看到盘符。只是必须格式化了后才能使用。

19,504

社区成员

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

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