winCE6.0 HIVE注册表保存

注册表需要保存到NAND FLASH里面,需要在boot.hv里就加载FAT文件系统来访问

存储在第一个盘里面的system.hv,user.hv. 所以要在注册表中把加载第一部分
FAT的项目放在
“; HIVE BOOT SECTION”
  ;items to load
“; END HIVE BOOT SECTION”

S3C6410平台上,BSP为20080918(支持MLC),要支持注册表保存,步骤如下:
1.catalog里选中Hive-based Registry
2.修改platform.reg. 改动有以下几处

IF IMGHIVEREG
[HKEY_LOCAL_MACHINE/Init/BootVars]
  "RegistryFlags" = dword:1 ;设置注册表每次改动后自动flush到system.hv
 "Flags"=dword:3
ENDIF IMGHIVEREG

 。。。。。

IF BSP_POCKETMORY

;添加以下三行。 即把FLASH的第一部分放在BOOT.HV里加载
IF IMGHIVEREG
; HIVE BOOT SECTION
ENDIF IMGHIVEREG

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/FlashDisk]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:1
;   "Index"=dword:1
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FlashDisk"
   "BmlVolumeId"=dword:0 ; BML volume ID = 0
   "BmlPartitionId"=dword:8 ; BML parition ID = PARTITION_ID_FILESYSTEM
   "WMRStartSector"=dword:0
   "WMRNumOfSector"=dword:10000 ; 32MByte
   "Flags"=dword:11000 ; do not load again in boot phase 2 ;一定要打开,不然会多一个盘

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk"
;    "Folder"="PocketMory"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
    "MountFlags"=dword:2     ;这里要打开并且修改为2,表示可以存储HIVE文件
;    "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/FlashDisk]
    "DriverPath"="Drivers//BuiltIn//FlashDisk"
    ; LoadFlags 0x01 == load synchronously
    "LoadFlags"=dword:1
    "BootPhase"=dword:0

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk/FATFS]
    "FriendlyName"="PocketMory FAT FileSystem"
;    "Dll"="fatfsd.dll"
    "Flags"=dword:00000014   ; FATFS_ENABLE_BACKUP_FAT |

FATFS_DISABLE_AUTOSCAN
    "Folder"="PocketMory"
    "FormatExfat"=dword:1
;    "EnableCacheWarm"=dword:0
    "CheckForFormat"=dword:1
    "EnableWriteBack"=dword:1

[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/FlashDisk/Filters/CacheFilt]
    "Dll"="cachefilt.dll"
    "LockIOBuffers"=dword:1

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk/FATFS/Filters/CacheFilt]
    "Dll"="cachefilt.dll"
    "LockIOBuffers"=dword:1

;添加以下三行。
IF IMGHIVEREG   
; END HIVE BOOT SECTION
ENDIF IMGHIVEREG
;----------------------------------------------------------------------------
; 2nd FAT Area
;----------------------------------------------------------------------------

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/FlashDisk1]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:1
;   "Index"=dword:1
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FlashDisk1"
   "BmlVolumeId"=dword:0  ; BML volume ID = 0
   "BmlPartitionId"=dword:9 ; BML parition ID = PARTITION_ID_FILESYSTEM1
   "WMRStartSector"=dword:10000
   "WMRNumOfSector"=dword:ffffffff ; last location
;   "Flags"=dword:11000 ; do not load again in boot phase 2 ;

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk1]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk1"
;    "Folder"="PocketMory1"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
;    "MountFlags"=dword:0
;    "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/FlashDisk1]
    "DriverPath"="Drivers//BuiltIn//FlashDisk1"
    ; LoadFlags 0x01 == load synchronously
    "LoadFlags"=dword:1
    "BootPhase"=dword:0

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk1/FATFS]
    "FriendlyName"="PocketMory FAT FileSystem1"
;    "Dll"="fatfsd.dll"
    "Flags"=dword:00000014   ; FATFS_ENABLE_BACKUP_FAT |

FATFS_DISABLE_AUTOSCAN
    "Folder"="PocketMory1"
    "FormatExfat"=dword:1
;    "EnableCacheWarm"=dword:0
    "CheckForFormat"=dword:1
    "EnableWriteBack"=dword:1

[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/FlashDisk1/Filters/CacheFilt]
    "Dll"="cachefilt.dll"
    "LockIOBuffers"=dword:1

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDisk1/FATFS/Filters/CacheFilt]
    "Dll"="cachefilt.dll"
    "LockIOBuffers"=dword:1

ENDIF BSP_POCKETMORY


3.用“Build Current BSP and Subprojects”编译。 OK!

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/knock/archive/2009/11/02/4758671.aspx

你可能感兴趣的:(winCE6.0 HIVE注册表保存)