S3c6410 實現Wince600上 Xip+Hive註冊表保存

S3c6410 實現Wince600上 Xip+Hive註冊表保存
軟件平臺:wince600
硬件平臺:深圳友堅恆天科技 UT_S3C6410開發板       http://www.urbetter.com

實現方法:
1. 必須加入HIVE based regiters這個組件到OS(在PB右邊的文件系統選項裏)
2. 註冊表添加,必須將一下部分加入你的註冊表中實現hive
  ;HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE/init/BootVars]
"SYSTEMHIVE"="Documents and Settings//system.hv"     ;system.hv會保存到/HDD/Documents and Settings/system.hv
;"PROFILEDIR"="Documents and Settings"   ;user.hv會保存到/HDD/Documents and Settings/default/user.hv
"Start DevMgr"=dword:1   ;這個說是啓動device.exe,但是wince 5.0好像不用這個
"DefaultUser"="default"       ;咱們只有一個用戶default,基本上就是決定user.hv的路徑了
"Flags"=dword:3 ;這個應該是wince 5.0下決定在哪個階段啓動device.exe的表項
"RegistryFlags"=dword:1   ;這個就是設置註冊表每次改動後自動flush到system.hv
;###########################################################################
;這個部分是binfs的註冊表項,如果你不是用的binfs那麼不用將它們拉到boot.hv中
[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/SMFlash]
"DriverPath"="Drivers//BlockDevice//SMFlash"
"LoadFlags"=dword:1
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000
[HKEY_LOCAL_MACHINE/Drivers/BlockDevice/SMFlash]
"Prefix"="DSK"
"Dll"="BIBDrv.dll"
"Order"=dword:0
"Ioctl"=dword:4
"Profile"="SMFlash"
"FriendlyName"="Samsung Flash Driver"
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000
; Bind BINFS to the block driver
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SMFlash]
"DefaultFileSystem"="BINFS"   ;binfs的路徑爲/BINFS
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"MountFlags"=dword:11
"Folder"="ResidentFlash"
"Name"="Samsung Flash Disk"
"BootPhase"=dword:0
"Flags"=dword:1000
"MountHidden"=dword:0  
;###########################################################################
;###########################################################################
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/PocketStore]
  "Prefix"="DSK"
  "Dll"="ONDisk.dll"
  "Order"=dword:1
  "Profile"="PocketStore"
  "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
  "BmlVolumeId"=dword:0 ; BML volume ID = 0
  "BmlPartitionId"=dword:8 ; BML parition ID = PARTITION_ID_FILESYSTEM
  "Index"=dword:2    
  "Flags"=dword:1000   ;這個flag指定這個驅動只在boot.hv中加載一次
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/PocketStore]
  "DefaultFileSystem"="FATFS"
  "PartitionDriver"="mspart.dll"
  "AutoMount"=dword:1
  "AutoPart"=dword:1
  "AutoFormat"=dword:1
  "MountAsBootable"=dword:1   ;這個是wince 5.0下指定這個分區保存system.hv的關鍵
  "Folder"="HDD"
  "Name"="NAND Drive"
  "Ioctl"=dword:4
[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/PocketStore/FATFS]
  "EnableCacheWarm"=dword:0
  
ENDIF
;###########################################################################
;END HIVE BOOT SECTION
; HIVE BOOT SECTION
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Support BINFS Section
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Add BinFS to partition table
[HKEY_LOCAL_MACHINE/System/StorageManager/PartitionTable]
        "21"="BINFS"
[HKEY_LOCAL_MACHINE/System/StorageManager/BINFS]
        "Folder"="BINFS"
        "FriendlyName"="Bin FileSystem"
        "Dll"="binfs.dll"
        ; MountFlags:
        ; 0x10 specifies that this file system is to be mounted as an external
        ;      ROM filesystem shadowing the /windows directory
        ; 0x1 specifies that the mountpoint /BINFS is to be hidden
        ;
        "MountFlags"=dword:10  
        "BootPhase"=dword:0
; END HIVE BOOT SECTION

3. config.bib文件修改
MEMORY
    pdwXIPLoc            00000000  803FF000  FIXUPVAR
    XIPKERNEL            80200000  001FF000  RAMIMAGE
    CHAIN                803FF000  00001000  RESERVED
    NK                    80400000  01E00000  NANDIMAGE
    RAM                80400000  07C00000  RAM
    FLASH              92000000  00100000  RESERVED  
    
CONFIG
  AUTOSIZE=ON
  COMPRESSION=ON
  DLLADDR_AUTOSIZE=ON
  KERNELFIXUPS=ON
  PROFILE=OFF
  RAM_AUTOSIZE=OFF
  ROMFLAGS=0
  ;ROMSIZE=01E00000
  ;ROMSTART=800B8000
  ;ROMWIDTH=32
  ROM_AUTOSIZE=OFF
  XIPSCHAIN=803FF000  
4. 必須將下列文件加入到XIPKERNEL裏
"nk.exe",
    "coredll.dll",
    "filesys.exe",
    "fatfsd.dll",
    "diskcache.dll",
    "fatutil.dll",
    "binfs.dll",
    "fsdmgr.dll",
    "mspart.dll",
    "smflash.dll",
    "boot.hv",
加入方法如下:
nk.exe     $(_FLATRELEASEDIR)/kern.exe                XIPKERNEL  SH
其他項類似方法添加.
注:可以直接修改common.bib文件
編譯完成後,將xip.bin文件燒寫到你的板子上即可.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章