saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
阅读:5574回复:41

MX21 NAND CE5.0 HIVE的问题。做过的大哥请指导一下!谢谢了!

楼主#
更多 发布于:2007-03-13 17:25
  想把HIVE放到NAND FLASH上,FATFS文件系统。参考了网上关于做HIVE方法,做了如下设置:

1.在platform.reg中
[HKEY_LOCAL_MACHINE\init\BootVars]下
    "SYSTEMHIVE"="NAND Flash\\system.hv" (common.reg中也改为如此)
    "PROFILEDIR"="NAND Flash"
      "Flags"=dword:2 (添加,否则系统起不来)
                      (RegistryFlags默认为1)
2.默认的,NAND驱动和FATFS文件系统都在HIVE BOOT SECTION,END HIVE BOOT SECTION 中,所以没做修改

3. common.reg中[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]下添加
    "Flags"=dword:1000
   NAND 注册表中也添加"Flags"=dword:1000(但系统起来之后却看不到NAND 分驱了)。

4. 在NAND 注册表中
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NandMSFlash\FATFS]下
添加  "MountFlags"=dword:2

系统起来后,只见system.hv在NAND Flash文件夹中(commmon.reg中不设置的话
不会出现这样的情况),且若是NAND注册表中未添加"Flags"=dword:1000的话,
可以看到NAND分驱,但名字却是NAND Flash2了。
当然,弄了一天,到最后,断电后还是不能保存注册表。
哪位大哥有做过的,请指导一下小弟!先谢过了!
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-14 12:31
谢谢dreamzqw兄的回复!

我试过了,还是不行。
RESET是可以保存注册表的,但断电却不行。
感觉在platfrom.reg中设置 "SYSTEMHIVE"="NAND Flash\\system.hv"
                           "PROFILEDIR"="NAND Flash"
没有有用,这两项只在common.reg中设置有用,且可以看到目录下有system.hv和user.hv,这样看来我是没有把注册表保存在NAND中了,那应该如何设置呢?我看了很多文章,设置的地方就那么几个,难道5.0中还有其他地方要改动?
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-14 15:27
多谢milkyway1888兄弟的回复!

我试一下

我还想问一下,在common.reg中不用改吗?你说的把注册表放在nandflash,是放在了哪部分的?我的nandflash分成了MBR,BINFS,FATFS部分。我的理解是放在FATFS部分,但你又提到“如果是其他文件系统,如FATFS,就要做相应的修改”你不是放在FATFS部分的吗?
我在common.reg中设置了system.hv的存储路径之后,系统起来之后可以看到在设置的目录文件夹下有system.hv和user.hv,但不是在NAND FATFS部分,我感到很奇怪。
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-15 12:52
谢谢milkyway1888!

但,怪了,试了多次,依旧不行。郁闷了
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-03-16 13:29
只是一个nk.bin
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-03-16 15:08
jasonshi:你那样设置之后,系统起来能看到NAND盘吗?
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-03-16 15:14
我改的就这两个地方
platform.reg中
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\init\BootVars]
    "SYSTEMHIVE"="NAND Flash\\system.hv"        ; have changed.
    "PROFILEDIR"="NAND Flash"
    "RegistryFlags"=dword:1
    "Flags"=dword:1
    "Flags"=dword:2                  ; have changed. add
; END HIVE BOOT SECTION

NAND驱动注册表nandfcd.reg中
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NandFlash]
    "Dll"="nandfcd.dll"
    "Order"=dword:0
    "Prefix"="DSK"
    "Profile"="NandMSFlash"
    "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
    "FriendlyName"="i.MX21 NAND FLASH Driver"
        "Flags"=dword:1000       ;have changed. add

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NandMSFlash]
    "Name"="i.MX21 NAND FLASH"
    "Folder"="NAND Flash"
    "DefaultFileSystem"="FATFS"
    "AutoMount"=dword:1
        "AutoPart"=dword:1
        "AutoFormat"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NandMSFlash\FATFS]
    ; Override common setting to enable automatic formatting of unformatted volumes
    "Flags"=dword:00000024
    "MountAsBootable"=dword:1        ;have changed. add
    "MountAsRoot"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\Nandfcd]
    "DriverPath"="Drivers\\BuiltIn\\NandFlash"
    ; LoadFlags 0x01 == load synchronously
    "LoadFlags"=dword:1
    "BootPhase"=dword:0
    ; Note: if BinFS is used together with PS, then should ensure
    ; this is loaded after BinFS by setting order to 1 and that
    ; BinFS autoload order is 0.
    "Order"=dword:0
; END HIVE BOOT SECTION
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-03-16 15:23
你MSFLASH部分在哪里改的,common.reg中吗?
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-03-16 16:53
jasonshi兄弟,除了BootVars之外我把你的注册表都放在我的platform.reg下,且[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFLASH\BINFS]也放在HIVE BOOT SECTOR下,
系统是可以起来的,但还是不能保存到NAND上。
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-03-19 17:17
奇怪的事情。在common.reg中添加了 "Flags"=1就可以保存注册表了。
系统起来后,在我的NAND Flash分区里(放完OS镜像后剩余部分格成FAT32)可以看到system.hv
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-03-20 10:20
谢谢milkyway1888兄弟的关注!

我说的是bootvars下的"Flags"=dword:1,就是在第一阶段启动存储管理器。
(本来我的common.reg中bootvars下只有"Flags"=dword:0)
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-03-20 12:19
总结一下这做的HIVE注册表改动,同时谢谢milkyway1888和jasonshi兄弟的关注和帮助!

我的设备平台:MX21,CE5.0(非PQ),NAND 64M(分成MBR、BINFS、FAT32)

改动文件:
1、commom.reg中BootVars下添加
 "RegistryFlags"=dword:1
 "flags"=dword:1
2、platform.reg中BootVars下修改
        "SYSTEMHIVE"="NAND Flash\\system.hv"           ;;存储路径放到NAND Flash分区里
             "PROFILEDIR"="NAND Flash"
3、NAND驱动注册表nandfcd.reg中
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NandFlash]和
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NandMSFlash]下添加"Flags"=dword:1000

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NandMSFlash\FATFS]下添加"MountAsBootable"=dword:1

确保[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\Nandfcd]一定要能加载。若是这部分不能加载,系统就起不来。( Entry for nand driver to be loaded by storage manager.
Once a driver has been loaded by storage manager, it will not
be loaded again by device manager.
Note: Needed for Hive registry or persistent storage)
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-03-20 19:58
jasonshi兄弟:你没有看清楚我是怎么改的啊。
1、在platform.reg中我只改了"SystemHive"="NAND Flash\\system.hv"
                                     "ProfileDir"="NAND Flash"    这相当于我选择了把.hv文件保存在NAND Flash分区里(这个名字由NAND驱动注册表nandfcd.reg中"Folder"="NAND Flash"定义)
2、在common.reg中我只添了"RegistryFlags"=dword:1 "flags"=dword:1,其他我没改过。
关于"SystemHive"="Documents and Settings\\system.hv"
                              "ProfileDir"="Documents and Settings"  是在NAND Flash 上创建了个Documents and Settings文件夹,把.HV文件放在里面,当然,文件夹名字可以任意设定。
3、然后就是在NAND驱动注册表中[........Profiles\NandMSFlash\FATFS]下添加个"MountAsBootable"=dword:1就可以了。      "Flags"=dword:1000添加与否不会影响HIVE的实现。你是不是把NAND驱动注册表当成platform.reg中MSFLASH部分了?不是的,那是在BSP包中......\
DRIVERS\NAND驱动注册表,是和platform.reg分开的。
4、环境变量FILESYS_FSREGHIVE我没设过。
5、我的分区是在bootloader中就创建好的。系统起来后就可以在 "我的设备"下看到 NAND Flash分区了。
6、关于NAND中AutoLoad部分的加载,因为我的系统中这部分是放在了#if defined IMGMULTIXIP || defined BSP_PS_NAND下的,我用的镜像不是IMGMULTIXIP且我用的非PQ包,不能加载PS NAND组件,所以我就直接把它移到条件的外面了。

兄弟,祝你早日成功!
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-03-21 11:48
是在NAND驱动注册表nandfcd.reg中
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-03-21 12:05
比如说我机子上的目录是
C:\WINCE500\PLATFORM\Mx21\SRC\DRIVERS\Block\Nandfmd\Nandfcd
文件夹下的nandfcd.reg文件
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2007-03-21 17:04
不是把common.reg下的"flags"=dword:0改成"flags"=dword:1,是添加。
不是文件夹形式的“NAND FLASH”,图标是像电脑上硬盘一样的。
platform.reg中除了存储路径,别的我没改过。
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-03-22 13:11
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-03-23 17:33
上面的修改是我的一个操作平台,CE5.0,非PQ版本的BSP。只能做一个参考
努力! 成功就在不远处....
saint_bxg
驱动小牛
驱动小牛
  • 注册日期2006-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望284点
  • 贡献值0点
  • 好评度257点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-04-06 14:18
恭喜jasonshi 兄弟成功了。
努力! 成功就在不远处....
游客

返回顶部