做胎儿羊水鉴定网站,网站管理主要包括哪些内容,权威发布,网站seo优化实例摘要#xff1a;WINCE本身是一个完全在内存中运行的系统。每次启动都需要把NK.BIN拷贝到内存中相对应的地址。这样的系统就不需要了系统维护#xff0c;但是如何“永久”的保存设置就成了问题。本文将介绍如何在Wince中实现设置的永久保存。 关键字#xff1a;WINCE、嵌入式…摘要WINCE本身是一个完全在内存中运行的系统。每次启动都需要把NK.BIN拷贝到内存中相对应的地址。这样的系统就不需要了系统维护但是如何“永久”的保存设置就成了问题。本文将介绍如何在Wince中实现设置的永久保存。 关键字WINCE、嵌入式操作系统、Hive-based Registry 作者Tony
Email:gzci163.com
Windows CE .NET是Windows CE 3.0的后继产品。Windows CE .NET为嵌入式市场从新设计为快速建立下一代智能移动和小内存占用的设备提供了一个健壮的实时操作系统。Windows CE .NET具备完整的操作系统特性集包和端对端开发环境它包括了创建一个基于Windows CE的定制设备所需的一切例如强大的联网能力、强劲的实时性和小内存体积占用以及丰富的多媒体和Web浏览功能。 WINCE本身是一个完全在内存中运行的系统。每次启动都需要把NK.BIN拷贝到内存中相对应的地址。关机之后内存中的数据将都“消失”。这样的系统就不需要了系统维护但是如何“永久”的保存设置就成了问题。通过查找资料找到了一个微软提供的解决办法。具体实现方法如下
第一步在PB的Catalog里面将Hive-based Registry加入到我们的Platform之中。 第二步在Platform.reg中修改[HKEY_LOCAL_MACHINE\init\BootVars]下面的设置为
SystemHive
Start DevMgrdword:
在我们系统中是从CF卡中直接启动相当于Windows系统的C盘所以具体更改如下SYSTEMHIVEDocuments and Settings\\system.hv
PROFILEDIRDocuments and Settings
Start DevMgrdword:1 SYSTEMHIVE是system.hv文件保存的路径。Start DevMgr是选择是否启动设备管理器Device Manager启动设备管理器的目的是为了启动一些Hive-based Registry所必须的设备。Start DevMgr is a Boolean value indicating whether or not to start the Device Manager so it can start the drivers necessary to reach the registry hives. A value of 1 causes the Device Manager to start; 0 keeps the Device Manager from starting. The only case in which the Device Manager should not start is if you want to store the hives in the object store, which causes the hives to be lost on a cold boot. Typically, the hives are stored outside RAM, so it is necessary to start the Device Manager.
第三步在Platform.reg中修改[HKEY_LOCAL_MACHINE\init\BootVars]下面的DefaultUser设置以确定调用哪个默认用户的Hive-based Registry。如果不是多用户可以不做设置。
第四步确定一下Platform.reg和Common.reg当中所有的启动驱动程序的注册项是否设置。你可以在Platform.reg和Common.reg中搜索
; HIVE BOOT SECTION ; END HIVE BOOT SECTION
这样的字段。有许多项需要设置包括IRQ、IO、PCI等不过一般的如果你没有修改过系统默认的就可以了。这些设置是告诉ROM registry builder需要把什么加入到boot hive中。 第五步启动必须在第一启动阶段启动的驱动程序。我们先看一下下面的关于第一启动阶段的描述 很显然的Filesys是必须在第一启动阶段启动的。在common.reg中找到相关的文件系统的设置添加Flagsdword:1000我们用的fat文件系统具体设置如图 第六步设置MountFlags的注册值为DWORD:2。在Common.reg中的
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\ \]
设置 MountFlagsdword:2 第七步确定是否需要注册表刷新机制。一般情况下在OS挂起或者重启动等软起动的时候系统会自动的刷新保存注册表但是当系统突然掉电的话注册表是不会保存的。所以就需要在更改了设置之后对注册表进行刷新。一般的解决方案是在用户进行了设置之后运行保存设置程序调用RegFlushKey进行设置的保存不要定时的刷新注册表这样会是整个系统变的很慢。
第八步完全的重新buildmake image重新生成nk.bin。
通过以上的设置Wince系统中就可以实现设置的永久保存了。 参考文献
Microsoft Windows CE .NET 4.2 HELP VERSION 4.0 下面分享一下我在WINCE5。0下做好保存设置的方法(用的ARMSYS2440平台很简单哦理论的东西就不多说了上面两篇文章讲得比较清楚了)
第1步在当前Platform下加入Hive-based Registry的支持
第 2步在注册表platform.reg中查找“; HIVE BOOT SECTION”有两处在第二处原来是IF BSP_NONANDFS !的地方将; HIVE BOOT SECTION 和 ; END HIVE BOOT SECTION之间的内容替换成
[HKEY_LOCAL_MACHINE\init\BootVars] SystemHivesystem.hv Start DevMgrdword:1 RegistryFlagsdword:1 [HKEY_LOCAL_MACHINE\init\BootVars] DefaultUserdefault
IF BSP_NONANDFS ! [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH] DriverPathDrivers\\BuiltIn\\SMFLASH ; LoadFlags 0x01 load synchronously LoadFlagsdword:1 BootPhasedword:0
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH] PrefixDSK Dllsmflash.dll Indexdword:1 Orderdword:0 ProfileSMFLASH IClass{A4E7EDDA-E575-4252-9D6B-4195D48BB865} Flags dword:1000 ;;;;;;;;;;
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH] DefaultFileSystemBINFS AutoPartdword:1 AutoMountdword:1 PartitionDrivermspart.dll NameMicrosoft Flash Disk FolderResidentFlash BootPhasedword:0 MountFlagsdword:2 Flags dword:1000 ;;;;;;;;;;
; Keep FATFS from trying to shadow \Windows [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH\FATFS] Flagsdword:14 FormatTfatdword:1 CheckForFormatdword:1 [HKEY_LOCAL_MACHINE\System\StorageManager\FATFS] Flagsdword:00000014 ;FATFS_TFAT_ALWAYS|FATFS_FORCE_TFAT MountFlagsdword:0
ENDIF ; BSP_NONANDFS ; END HIVE BOOT SECTION
第3步最后一步重新Sysgen要选择clean before building最后build BSPmakeimg。