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

shuiyan 2007-11-09 12:40:09
一、环境描述
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?
...全文
698 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenmou 2009-09-17
  • 打赏
  • 举报
回复
mark
yashi 2007-11-09
  • 打赏
  • 举报
回复
very good, 不管是提问题的方式,还是最后把研究出来的结果公布出来,楼主做的很值得我们学习。
fredeng 2007-11-09
  • 打赏
  • 举报
回复
刚看到,准备help一下。接分了。
shuiyan 2007-11-09
  • 打赏
  • 举报
回复
已解决。结贴!

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

造成问题的原因:

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

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

另外:boot.hv/default.hv/user.hv在%_flatreleasedir%下是隐藏的系统文件,一般的搜索是找不到的。所以我开始还以为没有这些文件呢。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧