阅读:1717回复:4
关于BinFS分区的创建时间问题
PXA270的平台,三星的1G NandFlash ,在做分区表的时候,也就是BP_LowLevelFormat这个过程竟然需要20多分钟才能建立好,不知道大家的这个时间是多少,无法忍受,驱动已经是用汇编来读写2048和spare区域了,没法再提高了?
|
|
沙发#
发布于:2007-08-24 21:01
是不是每次读写的数据太少了?
让这个函数每次多读写一些PAGE,还有,是不是一个BLOCK被ERASE了好多次啊? 要不应该不会这么慢. |
|
|
板凳#
发布于:2007-08-24 22:34
谢谢,我看了下这个函数的实现,它主要完成标记坏块和创建一个空的MBR分区出来,时间主要花在标记坏块上,它首先会读取每个block的spare区域,如果是坏块则读下一个block的spare,如果这个block的spare的badblock标志显示不是坏块,则会将这个block擦除,然后读取这个block的每个sector,直到读回的不是0XFF,那么标记为坏块,再读下个block,如果读回的都是0xff,那么再向每个sector写入0(2K大小),再读回来,如果还是0,并且这个block的每个sector都是擦除后为0xff,写入0后读回还是0,那么就擦除这个block,认为是好的block。
所以,这样就要 操作8912个block,等于是读写整个NAND FLASH一次,擦除两次,时间主要耗在这上面,但是驱动里面好象就没有一个占用时间多的函数了,大家的建立binfs需要多少时间呢? |
|
地板#
发布于:2007-08-30 22:27
那就没办法了:)
|
|
|
地下室#
发布于:2007-10-10 18:03
lowformat中除了擦除外,还对某个块进行读写试验了。去掉这段代码只要几十秒搞定。
|
|