[求助]WINCE5 实现 HIVE注册表问题01:filesys.exe运行出错:无法mount boot.hv。检查后结果——boot.hv为何不在core

yimaoqian   2007-11-9 12:40 楼主
一、环境描述
CPU: PXA270
RAM: 64MB SDRAM
ROM: Intel 2M Nor Flash(Boot)
     Samsung 1GB Nand Flash(BINFS+FATFS)
    说明:系统镜像文件xip.bin会烧录到NAND的开始区域,此区域是BINFS格式;NAND剩下的区域会全部以FATFS格式化成一个盘 DISK_STORAGE。
OS: WINCE5.0
    已经添加“File systems and Data Store”->"Hive-based Registry".
    此系统基于WINCE5, RAM-base registry已经完整实现。

xip.bin组成:core.bin 最小内核,Boot时会复制到RAM解开。
              nk.bin device.exe/gwes.exe...etc. 所有其余的dll/lib/exe等的集合。

二、调试信息
FS: Mount complete (ROM, index 2, flags 0x00000031)
0x83ce6024: ERROR: c:\macallan\private\winceos\coreos\filesys\reg\reghive\registry.c line 714: 0x83ce6024: FSREG: Unable to mount boot hive from ROM

三、查找原因:
    1. ROM(NAND)应该是加载成功了。
    2. 无法找到boot.hv。
    3. 使用viewbin -t 查看bin文件,开始的core.bin(boot加载到RAM运行)里面竟然没有boot.hv
MODULES ---------------------------------------
    11/09/2007  04:06:44      741376  nk.exe
    11/09/2007  04:09:29      968704  coredll.dll
    11/09/2007  04:09:28      558592  filesys.exe
    11/08/2007  02:22:00       35328  binfs.dll
    11/08/2007  02:21:56      173056  fsdmgr.dll
    11/08/2007  02:22:00       40960  mspart.dll
    11/08/2007  04:43:03       22528  ceddk.dll
    11/09/2007  04:08:00      143872  nandfls.dll

FILES ----------------------------------------
     11/09/2007  04:09:24  CHRS       3727      20680               initobj.dat (ROM 0x8023A0A4)
     11/09/2007  04:09:24  CHRS       2213       7283                initdb.ini (ROM 0x802AC3EC)
   

    而后面的nk.bin里面确有如下的hv

FILES ----------------------------------------
     11/08/2007  07:59:20  C_R_       2380      10290                ceconfig.h (ROM 0x8050F64C)
     11/09/2007  04:09:23  _HRS          0     127906                 wince.nls (ROM 0x81D2456C)
     11/09/2007  04:09:24  CHRS       5288      36864                   boot.hv (ROM 0x81D43910)
     11/09/2007  04:09:24  CHRS      69643     286720                default.hv (ROM 0x81D44DB8)
     11/09/2007  04:09:24  CHRS       6151      40960                   user.hv (ROM 0x81D55DC4)
      7/01/2004  04:00:00  _HR_          0        134                 close.2bp (ROM 0x80511324)

四、问题:
    boot.hv/default.hv/user.hv怎么没有自动放到core.bin中呢?是platform.reg里面需要什么配置吗?还是PB里面需要添加什么feature?
   

回复评论 (4)

已解决。结贴!

解决方法:
    在common.bib中,发现将boot.hv/default.hv/user.hv全部放到了NK中,难怪XIPKERNEL中没有。改了后就ok。

造成问题的原因:

    目前在网上找到的相关HIVE实现帖子,基本都只说明了platform.reg中的修改,包括DX fredzeng的http://blog.eeworld.net/fredzeng 中发布的中文贴。

    幸亏fredzeng DX曾经发过一篇E文贴,最后提到了bib文件的修改,无意中找到,才发现这个问题。

    另外:boot.hv/default.hv/user.hv在%_flatreleasedir%下是隐藏的系统文件,一般的搜索是找不到的。所以我开始还以为没有这些文件呢。
点赞  2007-11-9 15:13
刚看到,准备help一下。接分了。
点赞  2007-11-9 15:54
very good, 不管是提问题的方式,还是最后把研究出来的结果公布出来,楼主做的很值得我们学习。
点赞  2007-11-9 16:16
mark
点赞  2009-9-17 11:25
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复