wince5如何实现Flash 剩余空间自动分区格式化并加载?即Resident FLASH?

shuiyan 2007-11-16 02:38:06

1GB的NAND FLASH,系统镜像28MB,这部分使用BINFS分区,映射在\windows下。

想将剩下的空间自动分区为FAT格式,并显示为DISKSOTRAGE目录,请问如何设置?
...全文
890 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
smart_qiang 2010-06-02
  • 打赏
  • 举报
回复
顶,正是想知道的问题
ym_luo 2010-03-04
  • 打赏
  • 举报
回复
“4) 系统启动,根据注册表,自动将剩余空间分区,格式化,加载成目录.”

如果不在boot做好分区,问题:
系统第一次启动会相当慢,根据Flash容量越大启动时间越长,64M都要等一会,1G的会让你无法忍受。
gooogleman 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 myxmouse 的回复:]
在 nandflash 的驱动里面 好像
以前搞过
现在忘了
[/Quote]

的确是在flash驱动里面的。

如果eboot不格式化FAT分区,就要在flash驱动中把NK所占block标记为坏块。才行。

但是如何让系统自动格式化位binfs我就不知道怎么搞了。这个不行的。因为当时已经存在NK了,不能再格式化了。
哈哈,终于弄明白优龙为何不支持binfs了。
哈哈,现在如果在ADS增加binfs格式化那么就好办了。
gooogleman 2008-09-17
  • 打赏
  • 举报
回复
好贴要顶啊
  • 打赏
  • 举报
回复
在 nandflash 的驱动里面 好像
以前搞过
现在忘了
shuiyan 2007-11-26
  • 打赏
  • 举报
回复
在Boot 中分区,不会对BINFS重新操作。

进入系统后的注册表设置,只需要AutoMount=1, AutoPart/AutoFormat好像都不需要。
dapli 2007-11-26
  • 打赏
  • 举报
回复
哪里决定NK是BinFS的?
可能我没有将NK设置成BinFS
怎么设置呢?BinFS这个特性我已经加到定制的系统里了呀
dapli 2007-11-24
  • 打赏
  • 举报
回复
按照楼上的几位的方法,是可以对flash进行FAT分区的,
但是好像把所有的位置都FAT了,是吗?
系统进行AutoFormat后,可以看到flash的FATFS分区。但再开机就无法起动系统镜像了,怀疑已经把NK分区Format了,看来不是余下的部分了
应该可以修改FAT的起始位置吧?
哪里是表明flash的余下部分?
是在注册表里吗?
我把"Flags"=dword:1000,"Index"=dword:1 这几个值改大一些后,接过好像都不对。
shuiyan 2007-11-20
  • 打赏
  • 举报
回复
谢谢flashxue01和jiajia6254 的帮助! 不好意思,真没想到有人理,所以2天都没看。

说明一下:Flash剩余空间的自动分区加载已经完成。

不过实现过程跟我开始前想的不太一样。

现在的做法:
1) Boot中,下载完系统镜像,先根据镜像大小,分出第一个区,格式为BinFS。
2) 将剩余的空间全部分成一个DOS32,也就是FAT区。
3) 按照flashxue01和jiajia6254的说明,在注册表对应处加入AutoPart, AutoFormat, AutoPart,即可。
4) 系统启动后,就会看到剩余空间对应的目录了。

我希望的是:
1) 如上,分出BinFS。
2) 不做。
3) 配置注册表
4) 系统启动,根据注册表,自动将剩余空间分区,格式化,加载成目录。

也就是说,我希望的是不在Boot中对剩余空间做什么动作,毕竟Eboot只是Wince的一个可选项,不是必须的。如果在生产上,烧录的只是简单的引导boot,那又如何实现呢?

jiajia6254 2007-11-19
  • 打赏
  • 举报
回复
1、在PB中加入"Hive-based Registry"、“FAT FILE SYSTEM”。
2、打开platform.reg,完成如下信息:(其中第二个键是新加的,最后面的三个键是从后面挪过来并修改完的)
; HIVE BOOT SECTION ;
[HKEY_LOCAL_MACHINE\init\BootVars]
"SYSTEMHIVE"="system.hv"
; "PROFILEDIR"="Documents and Settings"
"Start DevMgr"=dword:1
"RegistryFlags"=dword:1


[HKEY_LOCAL_MACHINE\init\BootVars]
"DefaultUser"="default"

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FlashDrv]
"DriverPath"="Drivers\\BlockDevice\\FlashDrv"
"LoadFlags"=dword:1
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000



[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\FlashDrv]
"Prefix"="DSK"
"Dll"="FLASHDRV.dll"
"Order"=dword:0
"Ioctl"=dword:4
"Profile"="FlashDrv"
"FriendlyName"="MS Flash Driver"
"MountFlags"=dword:11
"BootPhase"=dword:0
"Flags"=dword:1000

; Bind BINFS to the block driver
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv]
"DefaultFileSystem"="BINFS"
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"MountFlags"=dword:2
"Folder"="ResidentFlash"
"Name"="Microsoft Flash Disk"
"BootPhase"=dword:0
"Flags"=dword:1000
; END HIVE BOOT SECTION
; @CESYSGEN ENDIF FILESYS_FSREGHIVE

在4.2中肯定是能用的
flashxue01 2007-11-18
  • 打赏
  • 举报
回复
给你参考下注册表部分的设置。

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NandFLASH]
"DefaultFileSystem"="FATFS"
"AutoPart"=dword:1
"AutoMount"=dword:1
"AutoFormat"=dword:1
"PartitionDriver"="mspart.dll"

"Name"="Flash Disk"
"Folder"="NandFlash"
"BootPhase"=dword:0


; Keep FATFS from trying to shadow \Windows
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NandFLASH\FATFS]
"Flags"=dword:14
"FormatTfat"=dword:1
"CheckForFormat"=dword:1
"MountAsBootable"=dword:1


[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]
"Prefix"="DSK"
"Dll"="smflash.dll"
"Index"=dword:1
"Order"=dword:0
"Profile"="NandFLASH"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
shuiyan 2007-11-16
  • 打赏
  • 举报
回复
csdn根本搜不到。

其实很多人都会的,只是没空指点……

等吧
cjxpistol 2007-11-16
  • 打赏
  • 举报
回复
up

19,502

社区成员

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

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