Yaffs文件系统最小可用分区

 测试目的       目前版本的大板机顶盒上有2M的norflash和64M的nand flash。寻找在nand flash上可用的yaffs文件系统最小可用分区的大小。测试方案       yaffs最小分区测试方案 策略:连续划分两个分区A和B,向A分区写数据,如果B分区被写坏,则说明为A分区       分配的区域太小,不支持,反之说明,A分区当前的大小是支持
摘要由CSDN通过智能技术生成
 
测试目的
       目前版本的大板机顶盒上有2M的norflash和64M的nand flash。寻找在nand flash上可用的yaffs文件系统最小可用分区的大小。
测试方案
       yaffs最小分区测试方案
 
策略:连续划分两个分区A和B,向A分区写数据,如果B分区被写坏,则说明为A分区
       分配的区域太小,不支持,反之说明,A分区当前的大小是支持的。不断减
       少A分区的大小,直到不支持(B分区在写A分区时被写坏)。
 
注意:
       1、NAND flash每次擦除的大小为16K,所以A和B分区每次分配的大小必须是16K
       的整数倍。
       2、为保证B分区被破坏时被及时发现,在分区B上的数据要尽量充满该分区,
       并检查所有文件(还是被破坏后,mount操作不能成功?)。
       3、当前NAND flash分区情况是分为3个区,最后一个(mtd10)未被用到,
       测试操作可在该区域进行,这样不破坏mtd8和mtd9,方便以太网访问。
 
步骤:
       1、修改linux-2.4.17_mvl21/drivers/mtd/nand/spia.c:
       #define NANDFLASH_TEST_SIZE 512 // 分区大小,修改此值,看是否支持
       {
                .name   = "NAND flash partition test A",
                .offset = 32*1024*1024,
                .size   = NANDFLASH_TEST_SIZE*1024
    },
       {
                .name   = "NAND flash partition test B",
                .offset = 32*1024*1024 + NANDFLASH_TEST_SIZE*1024,
                .size   = 96*1024*1024
    }
      
       2、重新编译内核,烧写内核
       3、为B分区写入足够数据,尽量不要留有空闲空间
       4、为A分区进行写操作
       5、检查B分区是否被写坏
 
       重复进行1到5操作,找到当烧写A分区时,B分区也被破坏时NANDFLASH_TEST_SIZE
的值,,若不固定,找到其分布规律。
 
       计划从512K开始测试,并采用类似“二分法查找”的方式,第二次为256K,如果
支持,第三次为256/2,否则为((512+256)/2),以此类推,且数值一定为16的整数倍。
测试步骤:
       对A 进行写操作有两类不同情况:
1、 B区有无空闲空间
2、 B区有无mount进来
由此可确定以下4 种不同测试前提条件:
1、 当B区有空闲空间且没有被mount进来时对A进行写操作;
2、 当B区没有空闲空间且没有被mount进来时对A进行写操作;
3、 当B区有空闲空间且已经mount进来时对A进行写操作;
4、 当B区没有空闲空间且已经mount进来时对A进行写操作;
针对每一种前提条件的测试步骤:
1、 格式化A区和B区,记录A区和B区的使用情况;
2、 向A写入足够量数据,记录写入数据大小;
3、 记录A区和B区的使用情况;
查看B区使用情况和以前有什么不同,文件是否被破坏或其它操作是否正常;
 
以上每个测试步骤的结果在下面的“实际情况”一栏中进行描述。区的空间使用情况采用以下格式记录:
Filesystem           1k-blocks      Used  Available  Use%
分别是分区名称、空间大小、已经使用空间大小、剩余空间大小和使用百分率。
“SHELL ”一栏中将记录操作步骤,其中的 nf_test.out 是新建一个文件并向其写入指定大小数据的工具。
测试过程:
分配512K空间
dev:     size   erasesize name
mtd0: 00004000 00004000 "Dayang Product data --mtd0"
mtd1: 00002000 00002000 "Dayang Loader data --mtd1"
mtd2: 00002000 00002000 "Dayang Loader data backup --mtd2"
mtd3: 00008000 00008000 "Dayang Bios data --mtd3"
mtd4: 000b0000 00010000 "Dayang Linux kernel"
mtd5: 00110000 00010000 "Dayang Linux filesystem"
mtd6: 00010000 00010000 "Dayang BootLogo"
mtd7: 00020000 00010000 "Dayang OpenBIOS"
mtd8: 00200000 00004000 "NAND flash partition 1"
mtd9: 01e00000 00004000 "NAND flash partition 2"
mtd10: 00080000 00004000 "NAND flash partition test A"
mtd11: 01f80000 00004000 "NAND flash partition test B"
测试前提
实际情况
SHELL
总结
B区有空闲空间
没有被mount进来
mtdblock10 496 96 400 19%
mtdblock11 32240 96 32144 0%
mkyaffs /dev/mtd10
mkyaffs /dev/mtd11
mount -t yaffs /dev/mtdblock10 nf1
mount -t yaffs /dev/mtdblock11 nf2
df
umount nf2
./nf_test.out nf1/a 524288
ls -l nf1/
mount -t yaffs /dev/mtdblock11 nf2
df
vi nf2/test
ls -l nf2/
rm nf2/test
ls -l nf2/
B区没有文件,空间使用情况没有变化,新建、删除文件正常
409088
mtdblock10 496 496 0  100%
mtdblock11 32240 96 32144 0%
B区没有空闲空间
没有被mount进来
mtdblock10 496 96 400 19%
mtdblock11 32240 32240 0  100%
mkyaffs /dev/mtd10
mkyaffs /dev/mtd11
mount -t yaffs /dev/mtdblock10 nf1
mount -t yaffs /dev/mtdblock11 nf2
./nf_test.out nf2/a 33030144
ls -l nf2/
df
umount nf2
./nf_test.out nf1/a 524288
ls -l nf1/
mount -t yaffs /dev/mtdblock11 nf2
df
ls -l nf2/
B区空间使用情况没有变化,文件访问正常。
409088,32914944
mtdblock10 496 496 0  100%
mtdblock11 32240 32240 0  100%
B区有空闲空间
已经mount进来
mtdblock10 496 96 400 19%  
mtdblock11 32240 96 32144    0%
mkyaffs /dev/mtd10
mkyaffs /dev/mtd11
mount -t yaffs /dev/mtdblock10 nf1
mount -t yaffs /dev/mtdblock11 nf2
df
./nf_test.out nf1/a 524288
ls -l nf1/
df
vi nf2/test
ls -l nf2/
rm nf2/test
ls -l nf2/
B区空间使用情况没有变化,新建、删除文件正常
409088
mtdblock10 496 496 0  100%
mtdblock11 32240 96 32144    0%
B区没有空闲空间
已经mount进来
mtdblock10 496 96 400 19%
mtdblock11 32240 32240 0  100%
mkyaffs /dev/mtd10
mkyaffs /dev/mtd11
mount -t yaffs /dev/mtdblock10 nf1
mount -t yaffs /dev/mtdblock11 nf2
df
./nf_test.out nf2/a 33030144
ls -l nf2/
df
./nf_test.out nf1/a 524288
ls -l nf1/
df
ls -l nf2/
B区空间使用情况没有变化,文件访问正常。
409088,32914944
mtdblock10 496 496 0  100%
mtdblock11 32240 32240 0  100%
支持512K 大小的分区。。
可用空闲空间409088 字节,不可使用空间:524288 – 409088 = 115200 字节(1125K )。
分配256K空间
dev:     size   erasesize name
mtd0: 00004000 00004000 "Dayang Product data --mtd0"
mtd1: 00002000 00002000 "Dayang Loader data --mtd1"
mtd2: 00002000 00002000 "Dayang Loader data backup --mtd2"
mtd3: 00008000 00008000 "Dayang Bios data --mtd3"
mtd4: 000b0000 00010000 "Dayang Linux kernel"
mtd5: 00110000 00010000 "Dayang Linux filesystem"
mtd6: 00010000 00010000 "Dayang BootLogo"
mtd7: 00020000 00010000 "Dayang OpenBIOS"
mtd8: 00200000 00004000 "NAND flash partition 1"
mtd9: 01e00000 00004000 "NAND flash partition 2"
mtd10: 00040000 00004000 "NAND flash partition test A"
mtd11: 01fc0000 00004000 "NAND flash partition test B"
测试前提
实际情况
SHELL
总结
B区有空闲空间
没有被mount进来
mtdblock10 240 96 144 40%
mtdblock11 32496 96 32400    0%
mkyaffs /dev/mtd10
mkyaffs /dev/mtd11
mount -t yaffs /dev/mtdblock10 nf1
mount -t yaffs /dev/mtdblock11 nf2
df
umount nf2
./nf_test.out nf1/a 262144
ls -l nf1/
mount -t yaffs /dev/mtdblock11 nf2
df
vi nf2/test
ls -l nf2/
rm nf2/test
ls -l nf2/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值