ARM-WinCE大侠的BLOG简直太棒了!

    技术2022-05-11  13

    在这里引用ARM-WinCE大侠的一篇博文,以飨视听啊...太棒了!

     

    引用自:http://blog.csdn.net/nanjianhui/archive/2009/08/20/4466741.aspx

    题目:WinCE系统USB Mass Storage实现

    作者:ARM-WinCE

    正文:

             Mass Storage的实际应用就是U盘,目标板和PC通过USB相连,PC可以把目标板识别为U盘,在很多产品上都很常用。这里介绍一下在WinCE系统中U盘功能的实现。

     

     

    在谈WinCEUSB 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驱动的注册表配置

    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)