4735|9

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince6.0+6410 flash 分区问题 [复制链接]

最近在研究用ce6.0+6410定制系统,打算把flash分成两个区,一个存放系统镜像文件等,
剩下的空间用作存储设备,存放应用程序等。目前按照以下的代码修改后,存在一些问题,
例如:系统启动后,只是加载整个flash作为一个分区(表明分区不成功),关闭电源,
系统不能启动(网上评论说,可能删除了系统文件内容,需要修改fmd.cpp文件)。
本人是新手,希望大家指点一下,以下是我的部分代码:


;-------------- NAND Flash Block Device Driver ----------------------------------
; HIVE BOOT SECTION
IF BSP_NONANDFS !

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NANDFLASH]
        "Prefix"="DSK"
        "Dll"="nandflash.dll"
        "Index"=dword:1
        "Order"=dword:0
        "Profile"="NANDFLASH"
        "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
       
        ;临时添加
        "MountFlags"=dword:11
    "BootPhase"=dword:1

IF IMGHIVEREG
        "Flags"=dword:1000
ENDIF IMGHIVEREG

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\NANDFLASH]
        "DriverPath"="Drivers\\BuiltIn\\NANDFLASH"
        "LoadFlags"=dword:1                        ; load synchronously
        ;"BootPhase"=dword:0
       
        ;临时添加
    "MountFlags"=dword:11
    "BootPhase"=dword:1
    "Flags"=dword:1000

IF IMGHIVEREG
        "MountAsBootable"=dword:1                ; for Hive-based registry
ENDIF IMGHIVEREG

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH]
        "DefaultFileSystem"="FATFS"
        "PartitionDriver"="mspart.dll"
        "Name"="Microsoft Flash Disk"
       
        ;添加 add by mzb
        "AutoPart"=dword:1
    "AutoMount"=dword:1
    "AutoFormat"=dword:1
       
        "BootPhase"=dword:0
    "Flags"=dword:1000
   
    ;"Folder"="ResidentFlash"

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH\BINFS]
        "MountHidden"=dword:1
        "MountAsROM"=dword:1
       
        ;临时添加
    "MountFlags"=dword:11
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1


[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH\FATFS]
        "FormatExfat"=dword:1
        "Flags"=dword:10        ;14                        ; deprecated in CE6.0 (0x4 : FATFS_DISABLE_AUTOSCAN, 0x10 : FATFS_ENABLE_BACKUP_FAT)
        "DisableAutoScan"=dword:0   ;1
        "CheckForFormat"=dword:1
        "EnableWriteBack"=dword:1
        "Folder"="NandFlash"
        "MountAsRoot"=dword:1                ; for ROM-only file system
       
        ;by mzb
        "AutoPart"=dword:1
    "AutoMount"=dword:1
    "AutoFormat"=dword:1
   

IF IMGHIVEREG
        "MountAsBootable"=dword:1                ; for Hive-based registry
        "Flags"=dword:1000              ; add by mzb
ENDIF IMGHIVEREG

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\NANDFLASH\Filters\CacheFilt]
        "Dll"="cachefilt.dll"
        "LockIOBuffers"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH\FATFS\Filters\CacheFilt]
        "Dll"="cachefilt.dll"
        "LockIOBuffers"=dword:1

ENDIF BSP_NONANDFS !

; END HIVE BOOT SECTION
;-------------------------------------------------------------------------

最新回复

抱歉,说错了。 这个问题,已经解决了,在Eboot中实现的分区。 开始的时候,系统通过u-boot启动,没有烧写eboot,菜鸟啊,还需要继续学习!  详情 回复 发表于 2010-6-1 13:15
点赞 关注

回复
举报

86

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
MountHidden and MountAsROM settings apply only to Windows CE 5.0 and later. For versions of Windows Embedded CE earlier than Windows CE 5.0, replace these two settings with  "MountFlags"=dword:11

MountHidden and MountAsROM设置只适合Windows CE 5.0 和以后的版本。对于Windows CE 5.0 之前的版本,用"MountFlags"=dword:11进行替代。

As of Windows CE 5.0, the MountFlags registry flag has been deprecated. For more information, see Mount Settings.
在Windows CE 5.0中,MountFlags 注册键值已经不赞成使用。对于更多的消息,请参阅Mount Settings。
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
注册表里面的东西很乱,你本身的注册表没有问题,你添加的估计是按照网上进行添加的吧。网上的大部分都是基于5.0和之前的版本,所以,请参阅6.0的相应要求进行添加。
还有,你希望实现的是BinFS吧,一方面实现分区,另一方面实现添加蜂窝注册表实现永久保存。
如果想要实现BinFS还要实现BP__XXX开头的几个分区函数,具体怎么实现我也在摸索之中!
共同努力吧!
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
谢谢,我是打算实现注册表永久保存,前提是要完成分区,在WriteOSImageToBootMedia函数中,我进行了分区,把系统之外剩下的空间,按照DOS32进行了分区,不知道为什么没有成功?还要继续研究啊,加油
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
如果只是实现永久保存时没有那么麻烦的,你可以参考http://chenyq2008.spaces.live.com/blog/cns!F73164AC8D0D8D50!245.entry就可以实现了。
如果是要分区,你可以用BinFS完成对NK的保存,FAT管理其他用户存储。其实还是实现BinFS。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
目前想实现分区,不知道在那个位置修改!已经在eboot中的nand.cpp中WriteOSImageToBootMedia函数进行了修改,但是每次启动后系统仍旧默认为一个分区,而且重启的话,系统启动不起来。
  曾经在网上看过一个帖子,说是需要修改fmd.cpp中的函数,因为其中的函数是从0扇区开始的,所以需要在每个函数的操作中,加上reserved blocks。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

7
 
涉及到分区就有点恼火了,网上问的多,解决的少,虽然知道有些人做出来了,但是这些东西有的涉及公司信息,又不敢多问,还是自己再琢磨一下吧。
WinCE6.0中已经开放了源代码:
D:\WINCE600\PRIVATE\WINCEOS\DRIVERS\MSFLASH\SRC
参考一下!
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

8
 
顶一下,楼主解决了吗?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

9
 
还没解决啊,就是寄存器的问题啊!感觉配置的不正确!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 9 楼 mzb881 的回复:
还没解决啊,就是寄存器的问题啊!感觉配置的不正确!

抱歉,说错了。
这个问题,已经解决了,在Eboot中实现的分区。

开始的时候,系统通过u-boot启动,没有烧写eboot,菜鸟啊,还需要继续学习!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表