Mass Storage的實際應用就是隨身碟,目標板和PC通過USB相連,PC可以把目標板識別為隨身碟,在很多產品上都很常用。這裡介紹一下在WinCE系統中隨身碟功能的實現。
在談WinCE的USB Mass Storage實現之前,首先要具備以下條件:
1. 開發板支援USBClient裝置。
2. 開發板上至少有一種存放裝置可以被用來映射為隨身碟。
現在的處理器一般都帶有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”:被映射為隨身碟的存放裝置的裝置名稱
“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就會將裝置識別為隨身碟。