基于WinCE的嵌入式系統(tǒng)注冊表的研究
BOOT HIVE存儲只用于系統(tǒng)啟動時的系統(tǒng)設(shè)置。BOOT HIVE從ROM中讀出并用于啟動驅(qū)動程序和相關(guān)的文件系統(tǒng)。這個文件系統(tǒng)用于啟動系統(tǒng)HIVE文件。當(dāng)系統(tǒng)HIVE啟動后,BOOT HIVE將被終止。當(dāng)系統(tǒng)HIVE有效時,啟動過程中被修改的注冊表數(shù)據(jù)將被存放于系統(tǒng)HIVE中。但是BOOT HIVE在ROM中的數(shù)據(jù)還保持不變。
3 HIVE注冊表的實現(xiàn)
HIVE注冊表是通過修改系統(tǒng)的平臺文件來實現(xiàn)的,在工程目錄下的PLATFORM.REG文件中包含了系統(tǒng)的啟動信息,HIVE注冊表的啟動方式不同于普通注冊表的啟動方式,它需要在系統(tǒng)加載設(shè)備管理器前加載系統(tǒng)存儲媒介的驅(qū)動程序,只有這樣才能在加載設(shè)備管理器當(dāng)中提取設(shè)備在注冊表中的保存信息,達(dá)到HIVE存儲的目的。下面介紹如何讓系統(tǒng)支持HIVE
注冊表中的HIVE | 文件 | 描述 |
BOOT HIVE | BOOT.hv存于ROM中 | 包括所有 HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_USERS下的數(shù)據(jù),只是在啟動時使用。啟動后對它的修改將影響系統(tǒng)HIVE |
SYSTEM HIVE | OEM-dependen | 包括所有 HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_USERS下的數(shù)據(jù),包括對每個用戶都一樣的設(shè)備的設(shè)置 |
USER HIVE | USER.hv | 包括所有HKEY_CURRENT_USER下的數(shù)據(jù),包含用戶定義的設(shè)置。每個用戶具有不同的HIVE,當(dāng)用戶登錄時會啟動它,當(dāng)退出時,會將它關(guān)閉 |
表2 標(biāo)準(zhǔn)HIVE及其支持的文件
Table2 Standard HIVE and support type
注冊表存儲:
1)修改設(shè)備管理器的啟動信息值
“Start DevMgr”= dword:1
此冊項代表使用HIVE注冊表存儲系統(tǒng)信息
2)把系統(tǒng)的存儲媒介驅(qū)動程序加在
“HIVE BOOT SECTION”與“END HIVE BOOT SECTION”
的注釋之間,該注釋被編譯器選擇提取之后,在系統(tǒng)上電后加載在設(shè)備管理器之前
3)在系統(tǒng)的存儲媒介驅(qū)動程序上提供一個FLAG項,該項的目的是對目標(biāo)數(shù)據(jù)進(jìn)行邏輯運算。
“flags”= dword:1
通過以上參數(shù)的修改,系統(tǒng)即可支持HIVE注冊表存儲,該存儲方式有效存儲系統(tǒng)保存在HIVE注冊表中的信息,比如觸摸屏觸電校驗信息,系統(tǒng)IP地址等。經(jīng)大量試驗證明,該方法有效可行。
4 系統(tǒng)注冊表修改分析
4.1 觸摸屏驅(qū)動程序注冊表設(shè)置
下面是本多媒體系統(tǒng)觸摸屏驅(qū)動程序的注冊表信息設(shè)置,我們在校準(zhǔn)的時候需要在注冊表中存儲一些校準(zhǔn)坐標(biāo)信息:
[HKEY_LOCAL_MACHINEControlPanel]
"InputConfig"= dword:3 ;3 =>鍵盤和觸摸屏
[HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPTOUCH]
"DriverName"="touch:dll"
"MaxCalError"=dword:10
"CalibrationData"="500,512 762,268 758,760 244,758 241,266 "http://校準(zhǔn)信息
Landscape
"CalibrationData"="515,503 763,748 258,749 269,255 764,255 "
評論