阅读:1784回复:4
flash disk\compact flash的问题
最近在做一个 Flash disk,在格式化时windows告诉我一个簇大小为200h bytes,也就是说文件以200h bytes一块为单位存储,在UFI的命令中我相应的定义一个block的大小也为200h bytes.但是,现在的flash如samsung的,8M和16M的erase最小单位分别为8k和16k,我查了其它公司的也一样,是不是在写入一些小文件时或是文件的起始存储位置不是8k或16k的整数倍时,我必须先将一个8k读出,保存原来存储有用的数据,erase这8k,再和现在要写的数据再一起写进去,如果是这样的话大侠们能否推荐一个使程序简单的算法。我想做个compact flash的朋友一定碰到过类似的问题,望指教!分数吗,包你满意。
|
|
沙发#
发布于:2001-10-19 08:58
flash是要一次Erase 8/16KByte,既使改变一个BYTE,但CompactFlash Card本身已有IDE接口,擦除工作不是你的任务。你只需要给它读写命令。
|
|
板凳#
发布于:2001-10-19 09:06
flash我就没有用过。我用过Omega的磁盘驱动器,控制起来跟你说的差不多。
没办法,别人的Core就是那样设计的。 |
|
|
地板#
发布于:2001-10-19 18:51
大侠,意思是如果我要做flash disk或CompactFlash存储卡(不是读写器)没有别的办法只有用一个8K/16K buffer,对吗?这个算法应怎么样设计呢?
|
|
地下室#
发布于:2001-10-20 08:47
[QUOTE]原本由 cbb 发表
[B]大侠,意思是如果我要做flash disk或CompactFlash存储卡(不是读写器)没有别的办法只有用一个8K/16K buffer,对吗?这个算法应怎么样设计呢? [/B][/QUOTE] 你是在做CompactFlash存储卡?那就只有那样做了,除了8K/16K buffer之外,也许还要逻辑与物理地址转换表buffer,可以说一下你怎么做的吗?很感兴趣。 |
|