FLASH的硬件结构决定了只能按BLOCK擦,除非是一个BLOCK就是一页,否则按页擦是不可能实现的。如果你的内存够大,你可以将待擦除的页所在的BLOCK内容全部读到内存中,等BLOCK擦除完成后,再将其余页写回去。但是这样的话,FLASH的寿命会受到很大影响,所以这个办法要慎用。
其实,如果你的程序空间和内存空间够的话,可以在程序中使用文件系统,例如yaffs,如果是LINUX系统的话,yaffs是自带的。这样的话,你就不需要关心怎么擦除页,以及寿命之类了,编程也方便多了。
追问可以给我发点yaffs的资料吗?谢谢了哦,我先给你最佳。