加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

wince6.0 nandflash当做mass storage

发布时间:2020-12-15 18:20:00 所属栏目:百科 来源:网络整理
导读:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? wince6.0 ?nandflash当做mass storage(U盘) ?平台:wince6 ?+ S3C6410? BSP:友坚BSP2.1 ?前些日子,有客户要求Nandflash作为 mass storage使用,不想使用同步工具传资料。下面

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? wince6.0 ?nandflash当做mass storage(U盘)

?平台:wince6 ?+ S3C6410?

BSP:友坚BSP2.1

?前些日子,有客户要求Nandflash作为 mass storage使用,不想使用同步工具传资料。下面是具体步骤:

1.勾选 Device Drivers->USB Function->USB FUnction Clients->Mass Storage

2.SMDK6410.bat ?中的

?set BSP_USBFNCLASS=SERIAL
@REM?set BSP_USBFNCLASS=MASS_STORAGE

修改为

@REM?set BSP_USBFNCLASS=SERIAL
? set BSP_USBFNCLASS=MASS_STORAGE

3.修改platform.reg中usb function注册表

#IF 0 ;add mao for usb Mass_Storage
;------------ USB Function Driver -------------------------------------------
; @CESYSGEN IF CE_MODULES_USBFN
IF BSP_NOUSBFN !
IF BSP_KITL != USBSERIAL


[HKEY_LOCAL_MACHINEDriversBuiltInSC6410USBFN]
"Dll"="s3c6410_usbfn.dll"
"Prefix"="UFN"
"Order"=dword:20
"Priority256"=dword:64
"Irq"=dword:60; USB OTG Virtual IRQ = 96 (0x60),Physical IRQ = 58
"BusIoctl"=dword:2a0048
"IClass"=multi_sz:"{E2BDC372-598F-4619-BC50-54B3F7848D35}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"


[HKEY_LOCAL_MACHINEDriversUSBFunctionDrivers]
"DefaultClientDriver"=-; erase previous default
?




;------------ USB Function Serial Driver --------------------------------------
IF BSP_USBFNCLASS == SERIAL


[HKEY_LOCAL_MACHINEDriversUSBFunctionDrivers]
"DefaultClientDriver"="Serial_Class"


[HKEY_LOCAL_MACHINEDriversUSBFunctionDriversSerial_Class]
"FriendlyName"=LOC_USBFN_SERIAL_NAME
"idVendor"=dword:045E
? ? ?;"idVendor"=dword:0547 ?;add mao
"Manufacturer"=LOC_USBFN_SERIAL_MANUFACTURER
?"idProduct"=dword:00CE


;"idProduct"=dword:2720 ;add mao
"Product"=LOC_USBFN_SERIAL_PRODUCT
"Index"=dword:5


ENDIF BSP_USBFNCLASS
;-------------------------------------------------------------------------


;------------ USB Function Mass Stroge Driver ---------------------------------
IF BSP_USBFNCLASS == MASS_STORAGE


[HKEY_LOCAL_MACHINEDriversUSBFunctionDrivers]
; "DefaultClientDriver"=- ; erase previous default


"DefaultClientDriver"="Mass_Storage_Class"


[HKEY_LOCAL_MACHINEDriversUSBFunctionDriversMass_Storage_Class]
"Dll"="usbmsfn.dll"
"InterfaceSubClass"=dword:06
"InterfaceProtocol"=dword:50
"DeviceName"="DSK1:" ? //DSK后缀标号要与nandflash中的index一致
"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
;-----------------add mao 1217------------
[HKEY_LOCAL_MACHINEDriversUSBFunctionDriversRNDIS]


? ? "idVendor"=dword:0547


? ? "Manufacturer"=LOC_USBFN_RNDIS_MANUFACTURER


? ? "idProduct"=dword:2c2d


? ? "Product"=LOC_USBFN_RNDIS_PRODUCT
;-----------------add mao 1217------------


ENDIF BSP_USBFNCLASS


[HKEY_LOCAL_MACHINEDriversSDCARDClientDriversClassSDMemory_Class]
"Index"=dword:3


[HKEY_LOCAL_MACHINEDriversSDCARDClientDriversClassSDMemory_ClassHigh_Capacity]
"Index"=dword:3


[HKEY_LOCAL_MACHINEDriversSDCARDClientDriversClassMMC_Class]
"Index"=dword:3
;-------------------------------------------------------------------------




[HKEY_CURRENT_USERControlPanelComm]
"Cnct"="`USB"


[HKEY_LOCAL_MACHINEDebugZones]
"USBFN"=dword:ffff
"Serial"=dword:ffff
"PM"=dword:ffff


ENDIF
ENDIF BSP_NOUSBFN !
; @CESYSGEN ENDIF CE_MODULES_USBFN
;-------------------------------------------------------------------------

4.NandFlash 的注册表如下

[HKEY_LOCAL_MACHINEDriversBuiltInNANDFlash]
"Dll"="nandflash.dll"
"Prefix"="DSK"
"Order"=dword:4
;"Ioctl"=dword:4
"Profile"="NSFlash"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Index"=dword:1 ?;add mao 1217




; Override names in default profile
[HKEY_LOCAL_MACHINESystemStorageManagerProfilesNSFlash]
"DefaultFileSystem"="FATFS"
?"Name"="Microsoft Flash Disk"
?"Folder"="NANDFlash"
?"PartitionDriver"="MSPart.dll"
?"AutoMount"=dword:1
?"AutoPart"=dword:1
?"AutoFormat"=dword:1?


[HKEY_LOCAL_MACHINESystemStorageManagerProfilesNSFlashFATFS]
"EnableCache"=dword:1
"CacheSize"=dword:1000
"MountBootable"=dword:1
;"Flags"=dword:00000024
"CheckForFormat"=dword:1
;add mao
? ; "FormatExfat"=dword:1
? ? "FormatFAT"=dword:1?
"Flags"=dword:14
"EnableWriteBack"=dword:1
"MountAsRoot"=dword:1
"MountAsBootable"=dword:1


重新sysgen 后,下载NK后,会在pc端 发现 ?可移动磁盘,

遇到的问题:

点击打开时,提示未格式磁盘,需要格式化,但格式化时会出错,或者导致系统重启后起不来,

原因是:我的Nandflash被分为了BINFS 和FAT32 两个分区,pc识别的是BINFS分区,现在我们需要将FAT32分区映射给pc,修改public下的usbfn—class -storage-block.cpp中的g_hStore = OpenStore(g_szDeviceName);为

g_hStore = OpenPartition(g_hStore,_T("Part01")); //add mao for mass storage

重新编译后,发现第一次打开时 还是提示要格式化磁盘,格式化后可以使用,为什么需要格式化在网上查到原因:

CE6设备如果使用exFAT文件系统,作为Mass Storage盘符连接win xp系统的PC后,访问这个盘符时XP会提示此盘符未格式化,需要格式化,这是因为WINDOWS桌面系统是从Vista sp1才开始支持exfat的,后边的win7等都没有问题,而win xp识别exFAT需求安装补丁955704,文件名:WindowsXP-KB955704-x86-CHS.exe
下载地址:


http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=1cbe3906-ddd1-4ca2-b727-c2dff5e30f61

当然如果你未选中exfat文件系统组件,我估计是没有最后这个问题的,安装补丁后,就OK了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读