0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术WinCE RAM-Based与Hive-Based注册表介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-03 09:14 次阅读

Windows Embedded CE嵌入式操作系统支持两种不同的注册表类型:RAM-based注册表和Hive-based注册表。

RAM-based注册表将所有注册表信息保存在对象存储(object store)中,对象存储可以看作是WinCE系统在内存中永久的虚拟RAM磁盘,因此要保存注册表信息,需要把注册表转存到具有掉电保护的RAM介质中,为此CE提供了转存及恢复注册表的底层函数。如果没有对注册表进行这样的转存及恢复,则系统总是使用缺省的注册表。

Hive-based注册表将注册表数据存储为文件,注册表文件可以存储在任何文件系统中。将注册表存储在非易失的存储介质上(比如Flash),就不需要类似RAM-based注册表的备份与恢复操作。

RAM-based注册表通常用在总是使用热启动,很少甚至从不冷启动的系统中,Windows Embedded CE6.0及以后版本,默认采用Hive-based注册表,英创公司的WinCE系列工控主板默认使用Hive-based注册表,注册表文件存储在NandFlash中。

WinCE在系统启动过程中会在注册表里添加信息,最典型的就是在注册表中生成驱动的Active 项,如果是Hive-based注册表,则意味着WinCE在整个启动过程中会不停写盘,在大多数情况下这没有任何问题,但如果系统使用环境供电不稳定,在系统启动过程中频繁断电,则有可能导致注册表损坏。而对RAM-based注册表,每次系统启动时都会将内核中的默认注册表加载到RAM中,系统启动过种中生成的注册表信息也写在RAM中,因此不会有注册表被写坏的问题。所以从启动的可靠性来看,RAM-based的注册表方式优于Hive-based注册表方式。

为了提高主板的可靠性,我们在BSP中增加了支持RAM-based注册表的底层转存及恢复功能。所设计的转存及恢复功能,主要是针对那些在实际的应用中,必须保存的相关信息。比如触摸屏较准参数网络参数等。为此我们对内核进行了更新,新的内核在采用RAM-based注册表同时,也能保存一些必要的注册表数据。

英创WinCE RAM-based注册表版本内核目前能保存以下注册表信息:

注册表功能 注册表
1 触摸屏校准参数 [HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\TOUCH]
'CalibrationData'=''
2 网络1参数 [HKEY_LOCAL_MACHINE\Comm\ENET1\Parms\TcpIp]
'EnableDHCP'=dword:0
'UseZeroBroadcast'=dword:0
'DefaultGateway'='192.168.201.19'
'IpAddress'='192.168.201.213'
'Subnetmask'='255.255.255.0'
'DNS'='61.139.2.69'
3 网络2参数 [HKEY_LOCAL_MACHINE\Comm\ENET2\Parms\TcpIp]
'EnableDHCP'=dword:0
'UseZeroBroadcast'=dword:0
'DefaultGateway'='192.168.201.19'
'IpAddress'='192.168.201.213'
'Subnetmask'='255.255.255.0'
'DNS'='61.139.2.69'
3 系统语言设置 [HKEY_LOCAL_MACHINE\MUI]
'SysLang'=dword:804
[HKEY_LOCAL_MACHINE\MUI]
'DefaultLCID'=dword:804
[HKEY_CURRENT_USER\MUI]
'CurLang'=dword:804

表1

使用RAM-based注册表时,无论是由控制面板、远程注册表工具或通过程序代码直接修改了上面例出的注册表项后,都需要调用RegFlushKey函数才能真正保存注册表信息。下面是示例代码:

HKEY hOpenKey;
// 打开任意注册表键
RegOpenKeyEx (HKEY_LOCAL_MACHINE, L'HARDWARE\\DEVICEMAP\\TOUCH', 0, 0, &hOpenKey);
// 调用RegFlushKey会触发系统保存注册表
RegFlushKey( hOpenKey );
// 关闭打开的注册表
RegCloseKey( hOpenKey);

我们将上面代码封装成了一个小工具RegFlushKey,放在系统的控制面板中,方便调试时使用。比如用户通过控制面板的笔针工具较准完触摸屏后,再点击运行一次RegFlushKey,触摸屏较准数据就保存了。

图1

根据用户实际需求,我们会不断添加保存的注册表项,本文档表1也会同步更新。

与hive-based注册表相比,使用RAM-based注册表还有些需要注意的地方,比如“拨号连接”。在hive注册表的系统中,通过控制面板或英创提供的RasEntry程序新建拨号连接后,对应的注册表就已经自动保存了,系统断电重启不会丢失,因此在hive注册表情况下,拨号连接只需要建立一次。而RAM-based注册表不能保存这些信息,所以系统每次启动后都需要新建拨号连接。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34614
收藏 人收藏

    评论

    相关推荐

    ARM-based相比ARM cortex有何优势?

    你看好ARM-based架构吗 相比ARM cortex有何优势 ARM其他还有什么架构啊,感觉曝光的好少。。
    发表于 04-24 06:55

    FPGA-Based DPU网卡的发展和应用

    采用单芯片的SoC形态,兼顾性能和功耗。FPGA-Based DPU在硬件设计上的挑战主要来自芯片面积和功耗。
    发表于 02-23 14:40 580次阅读
    FPGA-<b class='flag-5'>Based</b> DPU网卡的发展和应用

    labview中先打开注册表,U盘启用禁用

    *附件:U盘启用禁用.zip 使用labview2013编辑,通过修改注册表方式达到禁用和启用可移动磁盘的效果。 ①打开注册表HKEY_LOCAL_MACHINE\\\\SYSTEM
    发表于 02-21 16:39

    GaN-Based如何在EMI和功耗之间寻找一个最优的平衡?

    GaN-Based如何在EMI和功耗之间寻找一个最优的平衡? GaN-Based材料是一种具有广泛应用前景的宽能隙半导体材料,其在高频功率电子设备中具有许多优势,如高功率密度、高工作温度、快速开关
    的头像 发表于 11-07 10:35 236次阅读

    一种Inverter-Based CTLE以解决传统CTLE的不足

    传统CML结构的CTLE基于源极退化电阻电容实现均衡,当速度提高到56Gb/s或者112Gb/s时CML-based CTLE面临速度、面积、功耗的巨大压力
    的头像 发表于 10-31 16:23 1088次阅读
    一种Inverter-<b class='flag-5'>Based</b> CTLE以解决传统CTLE的不足

    信息技术是干什么?

    广播电子技术信息技术
    橙群微电子
    发布于 :2023年09月22日 09:17:48

    CB-40 LRD Type 用户手册: Product Data CMOS Cell-Based IC

    CB-40 LRD Type 用户手册: Product Data CMOS Cell-Based IC
    发表于 09-11 18:30 0次下载
    CB-40 LRD Type 用户手册: Product Data CMOS Cell-<b class='flag-5'>Based</b> IC

    CB-40 LR Type 用户手册: Product Data CMOS Cell-Based IC

    CB-40 LR Type 用户手册: Product Data CMOS Cell-Based IC
    发表于 09-08 18:31 0次下载
    CB-40 LR Type 用户手册: Product Data CMOS Cell-<b class='flag-5'>Based</b> IC

    STM32WB5MMG模块的订购信息和机械器件特性

    该数据提供了 STM32WB5MMG 模块的订购信息和机械器件特性。本文档应结合多协议无线 32 位 MCU Arm®-based Cortex®-M4with FPU、Bluetooth
    发表于 09-07 06:15

    LibTorch-based推理引擎优化内存使用和线程池

    LibTorch-based推理引擎优化内存使用和线程池
    的头像 发表于 08-31 14:27 630次阅读
    LibTorch-<b class='flag-5'>based</b>推理引擎优化内存使用和线程池

    CB-90 MR Type 用户手册: Product Data CMOS Cell-Based IC

    CB-90 MR Type 用户手册: Product Data CMOS Cell-Based IC
    发表于 08-14 18:30 0次下载
    CB-90 MR Type 用户手册: Product Data CMOS Cell-<b class='flag-5'>Based</b> IC

    2023年中海达星推官系列直播再度启航,与您一起探讨空间信息技术

    信息技术
    中海达
    发布于 :2023年06月21日 11:45:49

    注册表信息安全#计算机文化

    计算机智慧办公
    未来加油dz
    发布于 :2023年06月07日 17:39:52

    在windows注册表中存储二进制数据

    注册表是 Windows 操作系统中一个重要的数据库,它包含 Windows 操作系统和应用程序的重要设置和选项。由于注册表的功能非常强大,因此注册表对于恶意程序来说是非常有利用价值的。
    的头像 发表于 05-31 14:13 1128次阅读
    在windows<b class='flag-5'>注册表</b>中存储二进制数据

    有没有使用FFT-Based Algorithm的三相电表应用软件?

    个比较器通道。并且应用软件都是使用Filter-Based Algorithm,有没有使用FFT-Based Algorithm的三相电表应用软件?
    发表于 05-18 15:16