您的位置 首页 技术

详解TCC89x的Hive Registry设置

//=====================================================================//TITLE:// 详解TCC89x的Hive Regi

//=====================================================================

//TITLE:

// 详解TCC89x的Hive Registry设置

//AUTHOR:

// norains

//DATE:

// Tuesday 16-November-2010

//Environment:

// Windows CE 6.0

// TCC8900

//=====================================================================

Hive Registry在许多计划中设置比较费事,有的还专门弄了个文档来一步一步解说怎么设置;但关于TCC89x来说,假如你要求不高,仅仅是能够正常让Hive Registry运作,那么一切都是很简单。

首要,咱们要做的是,增加Hive Registry选项,如图:

挑选该特性今后,其实仅仅设置了SYSGEN_FSREGHIVE这个环境变量罢了。编译结束,将体系烧录到FLASH,这时分Hive Registry现已开端正常作业了。但这时分仔细的朋友测验的时分发现,为什么更改后的注册表数值重启之后就消失了,没有保存下载呢?这也能叫Hive Registry正常作业么?

很明确地说,此刻Hive Registry现已正常作业了,之所以数据没有保存下来,是由于保存的途径不对。翻开Platform.reg文件,发现保存途径的设置如下:

从图中能够看出,途径是在“Documents and Settings”这个文件夹,也便是说完好的途径为“/Documents and Settings”。这意味着什么?意味着咱们的注册表文件保存到内存的暂时空间去了!为了能在封闭设备后还能保存数据,咱们只需要更改该途径到Flash中即可,如:

或许有的朋友觉得将注册表文件保存到NAND有点不专业,想保存到躲藏的APP分区,或许会依照我这篇文章《TCC89x的NAND数据分区的设置》(http://blog.csdn.net/norains/archive/2010/11/11/6002358.aspx)进行设置,而且将途径更改为“App//Documents and Settings”,但在实践运转中发现底子数据就无法保存。然后再深究原因,结果是,当挑选Hive Registry时,APP分区底子就没有手动加载。怎么回事呢?其实这个咱们需要在NAND注册表中增加“; HIVE BOOT SECTION”字段,如图:

编译结束,将体系烧录,OK!一切正常!

了解注册表的朋友或许就疑问了,为什么加了这两句之后,就能正常加载了呢?前面有“;”符号,不是注释么?一开端我也是这么想的,但该死的微软,给咱们开了一个天大的打趣,HIVE BOOT SECTION之前加“;”不是注释,是代表特别的功用!众所周知,Hive Registry分为两个部分,一部分是编译时生成的包含到NK里边的,另一部分是保存到非易失前言的,也便是相似FLASH一类。夹在“; HIVE BOOT SECTION”和“ ; END HIVE BOOT SECTION”之间的数值,标明它是要存储在非易失前言中的。

知道这些基础知识之后,关于为什么之前的注册表在Hive Registry的景象下,没有正确加载APP分区了。首要,NAND注册表的Flags设置为1000,意味着该驱动在保存到Flash的注册表找到的话,也只依照保存的这个数值进行加载;即使是NK部分还存在该键值,也只履行一次。换句话来说,假如Flags为0,那么会履行两次。接着,由于之前的注册表没有增加“HIVE BOOT SECTION”字段,所以并没有保存到Flash的注册表中,所以发动之后,在Flash的注册表就没有找到该分区信息,所以不会进行加载。最终,又由于NAND驱动只加载一次,体系不会再履行NK里边的NAND注册表,所以APP分区就永久没有办法主动加载了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/321631.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部