WINCE REG文件相关资料

REG文件

 

  注册表文件,这个和Windows操作系统中使用的注册表文件基本一样,在BSP中主要是Platform.reg,该注册表文件描述了和硬件平台相关的配置,大部分是用来描述驱动的相关信息。

  注册标的格式如下:

de>[KEY1]de>

de>"ValueName1"={Value Type}:{data}de>

de>"ValueName2"={Value Type}:{data}de>

de>[KEY2]de>

de>"ValueName1"={Value Type}:{data}de>

  其中Value Type和data相互对应,不同的Value type对应不同的data,具体如下:

  Value Type

data 
REG_SZ”my string”字符串类型
REG_DWORDdword:NNNN(hex number)DWORD类型
REG_MULTI_SZmulti_sz:”my_string_1”,”my_string_2”多字符串类型
REG_BINARYhex:xx,xx,xx二进制类型
HEXhex(xxxxxxxx):xx,xx,xx,xx十六进制类型

  在注册表中,同样可以使用IF/ENDIF来进行条件包含,其中条件可以是一个WinCE中的环境变量,还可以在该环境变量后加一个空格再加一个惊叹号(“!”),表示没有设置或者不等于的情况,比如:

de>IF environment variable [= value] [!]de>

de>[KEY1]de>

de>"ValueName1"={Value Type}:{data}de>

de>"ValueName2"={Value Type}:{data}de>

de>[KEY2]de>

de>"ValueName1"={Value Type}:{data}de>

de>ENDIFde>

  如果注册表某一行是以分号(“;”)开始,表示这行是被注释掉的。当然也有一些例外,比如在支持Hive注册表的时候,如下:

  ; HIVE BOOT SECTION

  ... reg data...

  ; END HIVE BOOT SECTION

  关于Hive注册表,以前介绍过,这里不多说了。我们在注册表中无非就是创建,删除key,赋值等操作。

  创建一个注册表key:

  [Key1]

  "ValueName"="Value Type"

  删除一个注册表key:

  [-KEY1]

  删除一个注册表值:

  "ValueName1"=-

  和BSP以及硬件平台相关的注册表配置都放在platform.reg文件中,和WinCE工程相关的配置应该放在project.reg文件中。

 

 

摘自论坛

http://topic.csdn.net/u/20081008/15/750119c7-efec-4140-9ecc-309dcb0ed7a4.html?1882204088

 

初学, 关于wince reg文件的简单问题
1:这是背光的
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/BAK]//这句说明什么?
"Index"=dword:1 //index表示什么?1表示什么?
"Prefix"="BAK" //Prefix表示什么?
"Dll"="backlight.dll"
"Order"=dword:1//这个表示什么?
"IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"  //这个表示什么,这串数据从哪里来的?
; Power-manageable generic

[HKEY_CURRENT_USER/ControlPanel/Backlight]//这个和上面的有什么区别吗?
"ACTimeout"=dword:3c //这些是和程序联系起来的吗?
"BatteryTimeout"=dword:1e
"BacklightOnTap"=dword:1
"ACBacklightOnTap"=dword:1
    "Brightness"=dword:32
2:触摸屏
[HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/TOUCH]这个和上面的有什么区别吗?
  "MaxCalError"=dword:7
; portrait
  "CalibrationData"="480,668 127,212 133,1128 838,1120 827,212 "//这串数据怎么得到的?从哪里得到的?怎么和源程序结合起来的?
3:串口
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial1]
  "DeviceArrayIndex"=dword:0//?
  "Irq"=dword:1c//?
  "MemBase"=dword:50000000//?
  "MemLen"=dword:2C//?
  "InterruptBitsShift"=dword:0 ; UART 0 Interrupt Sub Register shift bit.//?
  "ISTTimeouts"=dword:200 ; every 512 ticks checking Modem status.//?
  "Prefix"="COM"//?
  "Index"=dword:1//?
  "Dll"="serial_smdk2440.dll"
  "Order"=dword:0//?
  "Priority"=dword:0///?
  "Port"="COM1:"//?
  "DeviceType"=dword:0//?
  "FriendlyName"=LOC_DISPLAYNAME_COM1//?
  "Tsp"="unimodem.dll"//?
  "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"//?
  "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00//?

 

回复:

Index"=dword:1 //index表示什么?1表示什么? ------------索引了,
"Prefix"="BAK" //Prefix表示什么? -----驱动函数前缀
"Dll"="backlight.dll"
"Order"=dword:1//这个表示什么? ---------------启动顺序吧。
"IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"  //这个表示什么,这串数据从哪里来的? --------在微软,每个外设都有一个固定的GUID。

 

 

 

WINCE中的注册表文件

http://blog.ednchina.com/bluehacker/248746/message.aspx

注册表文件是WINCE中非常重要的文件,所有驱动程序的配置信息都保存在注册表中,系统启动的时候,会根据系统注册表中的信息,加载builtin驱动程序。还会根据注册表信息对flash或者SD卡等加载分区驱动和文件系统驱动。

Wince中的注册表是在平台build的时候根据几个注册表文件生成reginit.ini文件,这个文件是最终系统镜像的注册表文件。这是在build过程最后makeimg的阶段完成的。 Reginit.ini文件是从几个.reg文件中生成的,只要有platform.reg,common.reg,wceshell.reg,IE.reg,project.reg等文件。

这几个文件很是让人困惑,今天仔细看了下微软的文档,总算搞明白到底怎么个关系,在合并产生reginit.ini文件的过程中,是按照下面的次序来合并的。

1.       首先合并common.reg,IE.reg,wceapps.reg等操作系统通用的reg设置

2.       然后合并project.reg文件,即工程的reg设置

3.       最后才是platform.reg

也就是说,如果project.reg文件和common.reg中有相同的注册表项,那么project.reg将覆盖common.reg中的设置;同样,platform.reg会覆盖project.reg中的设置。

 

基于WinCE的嵌入式系统注册表的研究

 

  摘要:本文首先讲述了 Windows CE注册表的重要性,它对整个嵌入式系统的正常运行起着关键性作用。然后又介绍了两种注册表存储方式,并着重讲述了基于 HIVE的注册表。详细阐述了基于 HIVE的注册表的保存数据方式及实现 HIVE注册表的方法。最后给出了系统成功修改注册表的实现方法。本文的研究对其它操作系统的注册表修改也具有着借鉴意义。

0 引言

  嵌入式操作系统 Windows CE和桌面操作系统一样使用注册表(Registry)来保存应用程序、驱动程序和用户的设定以及其他一些配置信息,通常还存储着操作系统调用程序的状态信息,所以注册表起着非常重要的作用,它是 Windows CE操作系统的核心。在没有注册表的情况下,操作系统将不能获得必需的信息来运行和控制附属的设备和应用程序及正确响应用户的输入[1][2]。

  1 Windows CE注册表简介

  Windows CE的注册表结构和其他版本的 Windows操作系统的注册表结构是类似的。注册表是一个包括主关键字子树的集合,它和文件目录树一样具有层次结构。每个子树又由更低层的子树、键以及键值组成。键相当于文件系统的目录,每个键包含若干键值项。而键值项相当于文件系统末端的文件,它由键值名、数据类型和键值组成。键值就是注册表存储的数据。

  Windows CE对注册表的值有一些限制:键或者键值项的名字最多为 255个字符,数据最大为4K,键嵌套层次最多为 16层。所以在使用注册表编程时,要尽量使键和键值项占用最小的空间。另外,需要注意的是,在注册表中,键值项比键值占用更大的存储空间。

  Windows CE注册表包括4个根键 [2],如表1所示。

  表 1 Windows CE注册表根键


  2 Windows CE注册表类型

  由于嵌入式系统的特点,一些嵌入式设备是没有外存的。因此 Windows CE的注册表提供了两种实现方式:基于对象存储的注册表(RAM-Based Registry)和基于 Hive的注册表(Hive-Based Registry) [3]。我们可以在 Windows CE中使用任何一种注册表,注册表类型对于用户和应用程序来说都是透明的。基于RAM的注册表在经常热启动的设备上是非常高效的,而在经常冷启动的设备上,性能却很令人失望,最适合有电池后备的个人电子消费类产品。对于经常冷启动或者不怎么使用热启动方式的设备来说,基于 hive的注册表是非常高效的,最适合永久性的存储器和多用户环境下使用。

  2.1 基于 RAM的注册表

  顾名思义,基于 RAM的注册表把整个注册表作为一个对象存储堆放在 RAM中。这就意味着如果系统中断对 RAM的电池供电,对注册表的所有改动都会丢失。也就是说,它们的有效性和 RAM中数据的有效性是一致的。但是使用 RAM注册表,对注册表的读写访问操作非常的快速高效。在旧版本的 Windows CE中,大量应用了基于 RAM的注册表。如果有外存且需要经常冷启动的设备采用基于 RAM的注册表,则需要在系统断电的时候对注册表进行保存,等系统再次启动时对保存的注册表进行还原。

  2.2 基于 HIVE的注册表

  HIVE系统包含了不属于任何用户信息的系统设置。HIVE系统由 OEM层调用。通常 hive文件为System.hv,但是它的存储位置可能随着平台而变化。这种存储方式使系统在断电前后无须备份和恢复注册表数据,这使得系统冷启动时速度更快。

  基于HIVE结构的注册表被分为两部分存储:系统HIVE,存储所有的系统数据;用户HIVE,存储对特定用户的所有相关数据。一个多用户系统将包括几个用户HIVE。当一个用户登录时,相应的用户 HIVE就会被激活,当用户退出时,相应的用户 HIVE也会被撤销。所有的用户 HIVE都用 USER.hv来命名,并且被放在不同的用户目录中,每个目录都是以它属于的用户的用户名来命名的。

  注册表中的HKEY_LOCAL_MACHINE/init/BootVars下的键值项ProfileDir存储着所有用户目录的位置。HKEY_LOCAL_MACHINE/init/BootVars下的键值项 SystemHive存储着系统HIVE的文件路径和文件名。

  BOOT HIVE存储只用于系统启动时的系统设置。BOOT HIVE从 ROM中读出并用于启动驱动程序和相关的文件系统。这个文件系统用于启动系统 HIVE文件。当系统HIVE启动后, BOOT HIVE将被终止。当系统 HIVE有效时,启动过程中被修改的注册表数据将被存放于系统 HIVE中。但是 BOOT HIVE在 ROM中的数据还保持不变。 3 HIVE注册表的实现HIVE注册表是通过修改系统的平台文件来实现的,在工程目录下的 PLATFORM.REG文件中包含了系统的启动信息,HIVE注册表的启动方式不同于普通注册表的启动方式,它需要在系统加载设备管理器前加载系统存储媒介的驱动程序,只有这样才能在加载设备管理器当中提取设备在注册表中的保存信息,达到 HIVE存储的目的。下面介绍如何让系统支持 HIVE 表2 标准 HIVE及其支持的文件


  注册表存储:

  1 )修改设备管理器的启动信息值 “Start DevMgr”= dword:1此册项代表使用 HIVE注册表存储系统信息

  2 )把系统的存储媒介驱动程序加在 “HIVE BOOT SECTION”与“END HIVE BOOT SECTION” 的注释之间,该注释被编译器选择提取之后,在系统上电后加载在设备管理器之前

  3 )在系统的存储媒介驱动程序上提供一个 FLAG项,该项的目的是对目标数据进行逻辑运算。

  “flags”= dword:1

  通过以上参数的修改,系统即可支持 HIVE注册表存储,该存储方式有效存储系统保存

  在 HIVE注册表中的信息,比如触摸屏触电校验信息,系统 IP地址等。经大量试验证明,该方法有效可行。 4 系统注册表修改分析

  4.1 触摸屏驱动程序注册表设置 下面是本多媒体系统触摸屏驱动程序的注册表信息设置,我们在校准的时候需要在注册表中存储一些校准坐标信息: [HKEY_LOCAL_MACHINE/ControlPanel]      "InputConfig"= dword:3  ;3 =>键盘和触摸屏

  [HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/TOUCH] "DriverName"="touch:dll" "MaxCalError"=dword:10"CalibrationData"="500,512 762,268 758,760 244,758 241,266 "//校准信息 Landscape "CalibrationData"="515,503 763,748 258,749 269,255 764,255 "


  图 1 HIVE注册表需要修改的文件

  4.2 在映像中固定 IP地址

  在我们自己创建的调试环境中每次启动后都需要手动修改 IP后才能多人同时调试,所以要想将 IP地址固定下来就要关系到注册表的修改。而关于IP地址的更改一定会反映到系统注册表中,也就是说如果能将这部分更改在定制操作系统的时候就加进去,那么当映像启动后,就具有设定好的 IP地址了 [4]。

  经过不断摸索,得出的结论很好,修改平台文件project.reg,在文件中添加以下内容:

  [HKEY_LOCAL_MACHINE/comm/vmini1/parms/tcpip] "defaultgateway" = multi_sz:"192.168.0.1" "subnetmask" = multi_sz:"255.255.255.0" "IpAddress" = multi_sz:"192.168.0.5" "enabledhcp" = dword:0

  第一个是默认网关,第二个是子网掩码,第三个是 IP地址,最后一个也必须加,就是禁用DHCP,只有这样自己的设定才能生效。 注意:注册表键值类型一定要设置好,像上面的 multi_sz,dword一定要添加在前面,否则仍然没有效果。

  4.3 SD卡驱动注册表信息

  SD卡是车载多媒体系统的重要外围存储设备,为灵活实现 SD卡热插拔功能,使用流接口驱动模型。SD卡驱动程序以及它所使用的文件系统都是由存储管理器负责的。在存储管理器的启动过程中,很多配置信息都是从系统的注册表得到的。因此必须先创建如下 SD卡注册表信息:

  [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/sdcard] "D11"="sdcard.d11" "Prefix"="SDC" "Index"=dword:1

  "Order"=dword:l

  "FSD"="fatfs.d11"

  [HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/SDCARD]

  "Name"="SD Card"

  "Folder"= "SDCARD Storage"

  5 结论

  注册表是 Windows CE操作系统的核心,起着至关重要的作用,车载多媒体系统的所有驱动程序和应用程序的配置信息都被保存在注册表中,如果修改或加载不当,都将使得整个系统的一些功能不能正常使用,甚至将会导致 Windows CE操作系统无法启动。本文的创新点在于提出了一种实现 HIVE注册表的方法和修改注册表的思路,经大量试验证明此种思路很有效,可以用来修改更多其它需要的配置。随着我国的汽车事业的蓬勃发展,汽车导航多媒体系统有着越来越广阔的应用前景,本项目的经济效益预计在八十万元左右。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】由投影重建图像:滤波反投影、FDK、TFDK三维重建算法理论基础

转自:由投影重建图像:滤波反投影、FDK、TFDK三维重建算法理论基础_m0_37357063的博客-CSDN博客_fdk算法 1. 基础理论从: [1] RafaelC.Gonzalez, RichardE.Woods, Gonzalez,等. 阮秋琦等译.数字图像处理(第三版)[M]. 电子工业出版社, 2011.P2…

How to Use Hive-based Registry IN WINCE.NET

摘要:WINCE本身是一个完全在内存中运行的系统。每次启动都需要把NK.BIN拷贝到内存中相对应的地址。这样的系统就不需要了系统维护,但是如何“永久”的保存设置就成了问题。本文将介绍如何在Wince中实现设置的永久保存。 关键字:WINCE、嵌入式…

【转】libpcap实现机制及接口函数

转自:libpcap实现机制及接口函数 - 简书 1.Libpcap 的工作原理 Libpcap的工作原理可以描述为,当一个数据包到达网卡时,通过网络分接口(即旁路机制)将数据包发给BPF过滤器,匹配通过的数据包可以被libpcap利…

惊!MySQL官网巨变,下载被取消

随着欧盟的批准,甲骨文宣布收购Sun交易完成,与此同时甲骨文一系列动作也迅速展开。 甲骨文因MySQL被欧盟卡了大半年,在中国,MySQL的用户非常多,MySQL的前途无疑让人牵肠挂肚。并购之前,甲骨文说了很多&…

【转】【C++学习笔记】C++异常处理

转自:【C学习笔记】C异常处理!你绝对不能错过的干货! - 知乎 合理地使用C异常处理,能够使我们写出来的程序更加稳定强健,不易崩溃。那么,应该如何使用C异常处理呢?下面,我们就来向大…

【转】源码分析C++的string实现

转自:源码分析C的string实现 - 知乎 我们平时使用C开发过程中或多或少都会使用std::string,但您了解string具体是如何实现的吗,这里程序喵给大家从源码角度分析一下。 读完本文相信您可以回答以下问题: string的常见的实现方式…

做一个项目,平时都用到哪些工具提高效率(上)

做.NET 相关项目,Visual Studio 2008,SQL Server 2000/2005是标准的配置,但是,除此之外,还可以应用哪些工具来提高工作效率,让项目做的更轻松。 1 需要一个代码生成工具,生成实体层,数据访问代…

【转】傅里叶分析之掐死教程(完整版)更新于2014.06.06

转自:傅里叶分析之掐死教程(完整版)更新于2014.06.06 - 知乎 作 者:韩 昊 知 乎:Heinrich 微 博:花生油工人 知乎专栏:与时间无关的故事 谨以此文献给大连海事大学的吴楠老师,柳…

wince6.0编译命令分析

下面从CSDN帮助文档简要说明vs2005下面的系统编译命令,这些命令位于Build->Advanced Build Commonds 一共有六条命令,分别是: 1.Sysgen 2.Clean Sysgen 3.Build and Sysgen 4.Rebuild and Clean Sysgen 5.Build Current BSP and Subprojec…

【转】C,C++宏中#与##的讲解

转自:C,C宏中#与##的讲解 - MoreWindows - 博客园 文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C中常用的预定义宏》 宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的…

wince对中文字体的支持

最近情况真的是很糟,小小年纪,得了好几样小毛病,弄得每天都提不起精神来,恍恍惚惚的,幸好有妻子的支持,她不论自己多忙多累,一看到我情绪不好,就给与很多安慰,百般鼓励&a…

提示信息的窗口效果

代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><title>提示信息的窗口效果<…

【转】ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍

转自&#xff1a;ARM 之七 主流编译器&#xff08;armcc、iar、gcc for arm、LLVM(clang)&#xff09;详细介绍_itexp-CSDN博客_armcc 必备 在讲解各编译器之前&#xff0c;必须先了解一下以下文件。这些文件在编译器目录下或者编译生成目标平台的可执行程序时经常见到。此外&a…

【转】深入浅出理解有限状态机

转自&#xff1a;深入浅出理解有限状态机 - 知乎 有限状态机是一种用来进行对象行为建模的工具&#xff0c;其作用主要是描述对象在它的生命周期内所经历的状态序列&#xff0c;以及如何响应来自外界的各种事件。在计算机科学中&#xff0c;有限状态机被广泛用于建模应用行为、…

wince 环境变量

wince工程的环境变量在PBInitEnv.bat文件中存储&#xff0c;经测试&#xff0c;如果在下面增加了新的变量&#xff0c;在此文件中会出现

【转】vs平台工具集介绍,vc6~vs2019各IDE对应的工具集版本

转自&#xff1a;vs平台工具集介绍以及安装 - jack_Meng - 博客园 一、什么是平台工具集&#xff1a; 平台工具集其实是MSBuild其目录所在C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0。VS从2010之后开始支持使用之前的版本进行编译&#xff0c;可以在工程属性->常…

基于FPGA的前向纠错算法

目前&#xff0c;无线产品的广泛应用使无线音频和视频的高质量传输成为可能。蓝牙、无限局域网等无线传输设备比较复杂&#xff0c;成本较高&#xff0c;急需 开发一种简便的、仅用于流媒体的无线传输平台&#xff0c;将音频数据实时地发送到移动终端。由于音频数据的实时性&am…

【转】Windows版本,OS内核版本,Windows SDK之间的关系

转自&#xff1a;Windows版本&#xff0c;OS内核版本&#xff0c;Windows SDK之间的关系 - 知乎 前言&#xff1a;我们经常会会被几个概念弄混淆&#xff0c;什么是Windows版本号&#xff0c;什么又是操作同内核版本&#xff0c;开发C的时候什么又是WindowsSDK&#xff0c;实际…

【转】30分钟学会UML类图

转自&#xff1a;30分钟学会UML类图 - 知乎 30分钟学会UML类图 肖继潮 UML图有很多种&#xff0c;但是并非必须掌握所有的UML图&#xff0c;才能完整系统分析和设计工作。一般说来&#xff0c;在UML图中&#xff0c;只要掌握类图、用例图、时序图的使用&#xff0c;就能完成大…

Microsoft SQL Server 2005数据库安装

Microsoft SQL Server 2005数据库&#xff0c;电脑里原有的mssql2000已经不适用了&#xff0c;到网上寻找SQL Server 2005简体中文开发版的下载地址&#xff0c;一开始下载了个学习版的express&#xff0c;可限制太多&#xff0c;还是决心安装开发版本的。到微软的官方网站寻找…