WinCE系统USB Mass Storage实现

在谈WinCE的USB Mass Storage实现之前,首先要具备以下条件:

1. 开发板支持USBClient设备。

2. 开发板上至少有一种存储设备可以被用来映射为U盘。

 现在的处理器一般都带有USB Client或者是USB OTG控制器,并且BSP中都有相应的驱动。对于存储设备来说,Nandflash或者SD卡都可以作为存储设备。所以都不是什么问题。

 

驱动一般wince系统只带的,我们只需要定制就可以了:


在Catalog中将下面两个组件加上即可:

1、Core OS Services-->USB Host Support-->USB Storage Class Driver

2、Core OS Services-->File Systems and Data Store-->Storage Magager-->FAT File System

3、然后,直接Sysgen.

下面的3步(也可以加上)
4、添加Catalog->Core OS->Windows CE devices->Device Drivers->USB Function->USB Function Bus Drivers->Netchip NET2280 USB Function
5、添加Catalog->Core OS->Windows CE devices->Device Drivers->USB Function->USB Function Clients->Mass Storage
6、添加Catalog->Core OS->Windows CE devices->Device Drivers->USB Host->USB Host Controllers->OHCI

遇到的一些问题总结:

1、在wince系统开发板上插入u盘,没有u盘的图标显示;将开发板和电脑相连,可以测到插在开发板上的u盘,但是u盘里的内容显示是空的,并且不稳定,老掉。

    原因:u盘没有被格式化成FAT格式。

    修改之后的结果:

    开发板上仍然没有u盘的图标。连接电脑时可以识别并显示u盘里的内容。

2、系统老是不识别u盘

   我用了很多u盘,都识别不了。系统不是不识别u盘,而是系统可识别的u盘比较少,一般能支持小容量的u盘。

   具体来说测试中用了256M u盘可以识别,1G 4G都没能识别出来。

 

网上搜集的一些有用资料:

 

一、将设备在pc上识别为u盘

Mass Storage的实际应用就是U盘,目标板和PC通过USB相连,

PC可以把目标板识别为U盘,在很多产品上都很常用。

这里介绍一下在WinCE系统中U盘功能的实现。

在谈WinCE的USB Mass Storage实现之前,首先要具备以下条件:

1. 开发板支持USBClient设备。

2. 开发板上至少有一种存储设备可以被用来映射为U盘。

现在的处理器一般都带有USB Client或者是USB OTG控制器,

并且BSP中都有相应的驱动。对于存储设备来说,

Nandflash或者SD卡都可以作为存储设备。所以都不是什么问题。

下面介绍一下步骤:

1. 选择WinCE Mass Storage组件

在定制WinCE的时候,在Catalog Items View中选择”Device Drivers”

->”USB Function”->”USB Function Clients”->”Mass Storage”。

2. 更改USB Client驱动的注册表配置 (D:/WINCE600/PUBLIC/COMMON/OAK/FILES/common.reg)

在WinCE中,USB Client驱动的注册表配置如下:

[HKEY_LOCAL_MACHINE/Drivers/USB/FunctionDrivers]

“DefaultClientDriver”:设置默认的USB Client驱动,这里应该是Mass_Storage_Class

[HKEY_LOCAL_MACHINE/Drivers/USB/FunctionDrivers/Mass_Storage_Class]

“Dll”:USB Client的驱动

“DeviceName”:被映射为U盘的存储设备的设备名

“FriendlyName”:显示设备名

“idVendor”:Vendor ID,应该向USB组织申请

“idProduct”:Product ID,由厂商定义

“Manufacturer”:厂商名

“Product”:产品名

“bcdDevice”:设备的版本号

“InterfaceSubClass”:USB Host端通过该值来枚举设备,06h表示Mass Storage。

“InterfaceProtocol”:USB设备所支持的传输协议,50h表示bulk-only。

上面对注册表的配置进行了介绍,这里给各例子:

[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:048C

  "Manufacturer"="Honeywell"

  "idProduct"=dword:0001

  "Product"="Honeywell Mass Storage"

  "bcdDevice"=dword:0

3. 重新编译WinCE工程

由于添加了新的组件,需要重新编译WinCE工程。

编译完成后,下载并运行,将设备通过USB连接到PC上,PC就会将设备识别为U盘。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值