WinCE
支持两种类型
注册表:RAM-Based
HIVE-Based,默认
使
RAM-Based注册表。 1.RAM-Based注册表
RAM-Based注册表
所有
注册表数据存储
象存储(object store)
,
就
存放
RAM里面。
般
有电池备份RAM
系统
面,
就
说,当系统掉电以
,
自动切换成电池供电,此时RAM还有供电,所以
面
数据不
丢失,这样采
RAM-Based注册表非常有效。
RAM-Based注册表于经常热启动(Warm Boot)
设备
面,
少
冷启动(Cold Boot)设备
面。
2.HIVE-Based注册表
HIVE-Based注册表
注册表数据存成文
,
就
存
掉电不
丢失数据
磁盘
面,HIVE注册表被分成两部分:系统Hive
户Hive,
就
system.hv
user.hv。
个
户系统
,
包含
个
户Hive,不同
户Hive(user.hv)
该
户登陆
时候被加载,被注销
时候卸载。
实际HIVE-Based
注册表包含三个部分,
称
引
Hive,系统Hive
户Hive,
就
Boot.hv,system.hv
user.hv。Boot.hv主
于系统引
时候所需
注册表设置,这部分设置不
被保存
磁盘
面,
就
说,
系统掉电以
就
丢失。实际
,这部分应该说
属于RAM-Based注册表,由于这部分数据不需
改动,所以
就无所谓
。System.hv存放关于系统
注册表设置,user.hv存放
户相关
注册表设置。
般
们编译WinCE系统
时候,Platform Builder
根据platform.reg文
注释标签
判断哪些注册表设置放入boot.hv
,凡
注释标签”;HIVE BOOT SECTON”
”;END HIVE BOOT SECTION”
间
设置都
被放入boot.hv
,其
都
放
default.hv
user.hv
。
WinCE第
次引
时候,所有
.hv都
被放
RAM
,WinCE系统
首先读
boot.hv进行相关引
时候
设置,然
default.hv
user.hv放
磁盘
指定路径
面,这个路径
注册表
设置
,然
default.hv
被重命名
system.hv。当系统第二次启动
时候,
比较磁盘
.hv
存
.hv
否
致,如果不
致,
拷贝磁盘
面
.hv
存
。
们
以看出,实际
HIVE注册表
运行
时候
放
RAM
,这样速度比较快。启动
时候
从磁盘
读出,
户更改注册表以
,
被保存
磁盘
,保存
时机
以设置
,
以选择
户更改
立刻保存
磁盘
,
以选择
reboot
时候保存。
3HIVE-Based注册表实现
(1) 添加HIVE-Based注册表项
系统
支持HIVE-Based注册表
”Catalog Item View”
选择”Core OS”->”CEBASE”->”File System and Da
需
添加相应
注册表设置,
般
们
platform.reg
添加HIVE相关
设置,首先需
添加
HIVE注释标签,如
:
;HIVE BOOT SECTION
…
<your registry setting>
…
;END BOOT SECTION
所有HIVE有关
注册表设置包括HIVE存放
磁盘
驱动
相关设置都
放
HIVE注释标签
。
(3) 设置注册表存放位置:
面通过
个例子
说明
设置system.hv
user.hv存放
位置
[HKEY_LOCAL_MACHINEinitBootVars]
"SystemHive"="NandFlashsystem.hv"
"ProfileDir"="NandFlashuser.hv"
"Flags"=dword:1
"RegistryFlags"=dword:1
“SystemHive”设置system.hv存放
位置,这里存放
NandFlash磁盘
根目录
面。
“ProfileDir”设置user.hv存放
位置,这里存放
NandFlash磁盘
根目录
面。
“Flags”设置
否立刻启动Device Manager,主
启动Hive-Based所需
存储设备。
“RegistryFlags”设置什么时候
新
注册表设置
入磁盘,这里表示立刻
入。
(4) 修改磁盘设备驱动配置
相关
磁盘驱动添加支持Hive
设置,如
:
[HKEY_LOCAL_MACHINEDriversBuiltInNANDFlash]
"Flags"=dword:1000
由于Hive注册表被保存
NandFlash
,所以
”Flags”
设置添加
NandFlash设备驱动
注册表设置
。
面
设置只有
使
HIVE-Based注册表
时候需
,如果不
Hive注册表,需
注释掉。
(5) 添加Storage Manager相关配置
具体添加如:
[HKEY_LOCAL_MACHINESystemStorageManagerProfiles<ProfileName><FileSystemName>]
"MountBootable"=dword:1
同样,使
HIVE注册表
时候需
述设置,如果不
使
HIVE注册表,则注释掉就
以
。
面
曾经基于NandFlash支持Hive注册表
设置,仅供参考:
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINEinitBootVars]
"SystemHive"="NANDFlashsystem.hv" ;unmask this line to use flash
"ProfileDir"="NANDFlashusr.hv"
"Start DevMgr"=dword:1
"DefaultUser"="default"
"Flags"=dword:1
"RegistryFlags"=dword:1
[HKEY_LOCAL_MACHINESystemStorageManagerAutoLoadNSFlash]
"DriverPath"="DriversBuiltInNANDFlash"
"LoadFlags"=dword:1 "Order"=dword:0
[HKEY_LOCAL_MACHINEDriversBuiltInNANDFlash]
"Dll"="ep94xxnandflash.dll"
"Prefix"="DSK" "Order"=dword:0
;"Ioctl"=dword:4
"Pro
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Flags"=dword:1000 ;unmask this line when enable HIVE
;"MemBase"=dword:00000000
;"MemLen"=dword:00000000
; Override names in default pro
[HKEY_LOCAL_MACHINESystemStorageManagerProfilesNSFlash]
"Name"="Ep94xx NAND Flash"
"Folder"="NANDFlash"
"PartitionDriver"="MSPart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
"MountFlags"=dword:2 ;unmask this line when enable HIVE
[HKEY_LOCAL_MACHINESystemStorageManagerProfilesNSFlashFATFS]
"MountFlags"=dword:2 ;unmask this line when enable HIVE
"EnableCache"=dword:1
"CacheSize"=dword:1000
"MountBootable"=dword:1
"Flags"=dword:00000024
;"Flags"=dword:00680024
;"FormatTfat"=dword:1
"CheckForFormat"=dword:1