FAT分区在Nand上的实现与CE5.0下的实现方法一样,请参考5.0实现的笔记:
http://blog.csdn.net/shevsten/archive/2010/03/04/5344716.aspx
需要注意的是需要包含Third Party-GEC2410-Storage Devices-PCI NAND Flash Driver组件.使能CE_MODULES_SDNPCID.否则相关设置不能被包括进去.
HIVE注册表也和CE5.0下的实现方法基本一样,请参考:
http://blog.csdn.net/shevsten/archive/2010/03/25/5415852.aspx
需要注意的是,在DEVICEEMULATOR BSP中有两个MSFlash的profile,一个是AMD Nor Flash,一个是Nand,我们的硬件上没有AMD Nor Flash,这方面的注册表设置不能被包括.
而Nand中的设置:
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MSFlash_NAND]
[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/MSFlash_NAND]
我们需要改为
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MSFlash]
[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/MSFlash]
否则会和common.reg中的设置有冲突,改成MSFlash后这样所有内容就覆盖原来的内容了,否则会显示2个Flash Disk(Flash Disk2).
还有一个是common.reg中设置了
[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/ObjectStore]
"MountAsBootable"=dword:1
这样会出现在对象存储,也就是根目录下也出现注册表文件夹Documents and Settings(应该保存在flash里的)
最简单的办法就是在platform.reg中覆盖这个设置:
[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/ObjectStore]
"MountAsBootable"=dword:0
以下是这两部分的注册表设置:
; @CESYSGEN IF FILESYS_FSREGHIVE
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE/init/BootVars]
;"Flags"=dword:1 ; see comment in common.reg
"SystemHive"="Documents and Settings//system.hv"
"ProfileDir"="Documents and Settings"
"DefaultUser"="default"
;"Start DevMgr"=dword:1
"Flags"=dword:3 ;equals to "Start DevMgr"=dword:1
"RegistryFlags"=dword:1 ;auto flush system.hv
; END HIVE BOOT SECTION
; @CESYSGEN ENDIF FILESYS_FSREGHIVE
; HIVE BOOT SECTION
; @CESYSGEN IF CE_MODULES_SDNPCID
[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/ObjectStore]
"MountAsBootable"=dword:0
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MSFlash]
"Profile"="MSFlash"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Order"=dword:0
"FriendlyName"="MSFLASH NAND Driver"
"Dll"="smflash.dll"
"Prefix"="DSK"
;"Ioctl"=dword:4 ;add
;"Flags"=dword:1000 ;add
;"BootPhase"=dword:0
[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/MSFlash]
"DriverPath"="Drivers//BuiltIn//MSFlash"
; LoadFlags 0x01 == load synchronously
"LoadFlags"=dword:1
"Order"=dword:0
"BootPhase"=dword:0
;IF FORMAT_STORAGE
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/MSFlash]
"DefaultFileSystem"="BINFS"
"PartitionDriver"="mspart.dll"
"MountAsROM"=dword:1
"MountHidden"=dword:0
"Folder"="Flash Disk"
"Name"="FLASH Disk Block Device"
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
; Keep FATFS from trying to shadow /Windows
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/MSFlash/FATFS]
"MountAsROM"=dword:0
"MountHidden"=dword:0
"MountAsBootable"=dword:1
"Flags"=dword:00000014 ;FATFS_FORCE_WRITETHROUGH | FATFS_DISABLE_AUTOSCAN
"EnableWriteBack"=dword:1
"CheckForFormat"=dword:1
;ENDIF
; @CESYSGEN ENDIF CE_MODULES_SDNPCID
; END HIVE BOOT SECTION