FLASH文件系统问题求助

我的单板上有16M的FLASH,我要在前8M做文件系统,只要一个分区,后8M保留。操作如下:
devf-sandpoint -s 0x70000000,8M,8M,8M,128K -vvvv -r -u2 -b5 &
启动后发现系统给我建立了64个分区!不知道原因是什么,尝试在进入QNX之前将前8M的FLASH全部擦除结果也是一样。哪位大侠指点一下,多谢了!

试试
devf-sandpoint -s 0x70000000,8M,128K -vvvv -r -u2 -b5 &

devf-sandpoint -s 0x70000000,8M -vvvv -r -u2 -b5 &

多谢comquter,试过了,还是一大堆分区。不过从调试信息上看,fs0p0是整个8M的分区,其它分区每一个大小是FLASH擦除块的大小(unit size)。这样也满足了要求,使用fs0p0就OK了。不知道QNX的FLASH文件系统是否就是这样的。

除非你后8M上有使文件系统产生误解的数据,否则不会出现这种情况.

象你这种情况我觉得最好这样用.
启动闪存驱动,
devf-sandpoint -s 0x70000000,16M -vvvv -r -u2 -b5
删除整个闪存.
flashctl -p/dev/fs0 -ev
格式化前8M.
flashctl -p/dev/fs0p0 -l8M -f
然后杀掉/重新启动闪存驱动,这样一来就不会出现象你所说的情况了.

多谢指点。不过还是想不明白,我已经指定了0x70000000,8M,就是告诉系统我的FLASH只有8M啊,文件系统初始化时还会看我8M后面的数据吗?我的后8M放的是一些RAW数据,我担心一旦文件系统被破坏需要重新初始化时央及后8M的数据,所以只让文件系统管理前8M,如果这样不行的话,就只有按照你说的方法做了。

多谢指点。不过还是想不明白,我已经指定了0x70000000,8M,就是告诉系统我的FLASH只有8M啊,文件系统初始化时还会看我8M后面的数据吗?我的后8M放的是一些RAW数据,我担心一旦文件系统被破坏需要重新初始化时央及后8M的数据,所以只让文件系统管理前8M,如果这样不行的话,就只有按照你说的方法做了。

闪存驱动启动时会从闪存中读取芯片信息,所以说文件系统仍会会知道实际的容量.
早一些的文件系统好象有这个问题,当实际容量与给定容量不符时会有麻烦.
你的文件系统是什么版本?

如何看文件系统的版本啊?我是用BSP6.2.1中的devf-generic改的。

6.2.1的话应该没有问题.
我试了一下最新的文件系统,也有你说的问题.既然这样只好指定闪存的实际大小了.

多谢comquter,试过了你说的方法,指定FLASH大小16M,然后对dev-fs0用-l擦除8M,再对dev/fs0p0用-l指定8M格式化,再次启动后只有两个分区了,dev/fs0p0是8M的文件系统分区,dev/fs0p1是后8M的RAW分区。而且没有破坏后8M的数据,比原来好多了。

实际上闪存驱动启动时所指定的大小称为"窗口大小",与闪存实际大小是无关的.
8M的窗口可以接16M,24M,32M等等不同容量的闪存.