4607|5

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

在nandflash上使用fat文件系统,应该是比较有挑战性的吧! [复制链接]

在nandflash上使用fat文件系统,应该也是可行的吧,只要可以完成逻辑地址到物理地址的转换算法,这个算法当然要考虑到坏块识别,垃圾收集,磨损均衡等等模块!

还有几个概念,想请大家给分析下,
1 nand flash是块擦除,页读写。
当一个页读/写失败了,那么是否要将其所在块标识成坏块。
2 ecc是做什么的?ecc校验失败是否可以确定该块已经变成了坏块呢?ecc校验是否可以关闭?
3 是否只有当擦除一个块失败之后,才可以把该块视为坏块?

请教各位过来人,关于这方面有没有什么可以可供参考的信息!大家也可以帮偶分析下,探讨探讨!

最新回复

这个是pdf版本的,也许对你有用: 【简介】如何编写linux下nand flash驱动 v1.0 .pdf http://download.eeworld.net/source/1513220  详情 回复 发表于 2009-8-4 21:57
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
是什么操作系统呢?
如果是成熟的OS,比如wince/linux/winxpEmbedded/ucOSII的,就不用担心,已经实现FAT/FAT32了。而且对ECC和坏块有专门的管理策略。

如果是一般简化系统自己增加(比如单片机上的实时系统),就的确需要自己来实现。
FAT层属于“文件系统”(File System),只要符合FAT规定即可,以Sector来操作。
驱动层就需要完成ECC处理,提交各Sector信息,一个Block有多个Sector的,需要对多sector的处理进行管理。

1. 是的,不然再向里面写入数据就无法保证安全。
2. ECC就是针对NAND会出坏块的特征,提出的对数据进行校验算法,以验证是否发生了位翻转错误。不可关闭
3. 不一定。有的时候为了保护某些位置,也可将其标为坏块。
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
读写page的过程中,如果ecc校验失败,那么这个数据就读写错误了,那么这个时候是否应该将其视为坏块!
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
Mark,偶做过一点,没有做完,用单片机很难满足性能要求,你用什么U,跑多少频率,最高bus速率是多少?FAT系统不要紧,实现比较容易,麻烦的是FTL实现.
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

5
 
1   nand   flash是块擦除,页读写。   
当一个页读/写失败了,那么是否要将其所在块标识成坏块。   
2   ecc是做什么的?ecc校验失败是否可以确定该块已经变成了坏块呢?ecc校验是否可以关闭?   
3   是否只有当擦除一个块失败之后,才可以把该块视为坏块?   

说一下我的理解:
1.一般是擦除erase之后,发现擦除失败,才会去标记此为坏块。
一般的读写出错,是通过ECC校验算法去检错和纠错的。好像不涉及到坏块标记。
这部分没细节去研究过,有空研究研究。
2.ECC的出现是由于nand flash读写过程中都容易出错,所以才需要在读写前后,去用校验算法检测和纠错读/写的数据,
是否发生错误,以及发生错误去纠正错误。
ECC校验失败,未必一定是坏块。系统具体如何处理,我没去深究。
个人感觉,也有可能多做一次读写,如果再次错误,可以把其标记为坏块。
ECC理论上你可以关闭,但是实际会存在很大问题。因为硬件特性决定nand flash出错几率大,
你关闭了,那读写过程很容易发生错误,使得无法正常使用。
3。参见上面,我的理解,擦除失败,只是动态使用过程中的,一种识别方法。
其他的,也有可能读写多次失败而去标记坏块。

关于nand flash更多资料,参考:
【简介】如何编写linux下nand flash驱动
http://green-waste.blog.163.com/blog/static/326776782009622112913547/

另外,对于在nand flash上实现其他文件系统,比如FAT
个人没做过,不过看过介绍,最简单的是在上实现一个转换层,叫做
NFTL(Nand Flash Translation Layer),但是由于nand flash的读写特性,使得这样的文件系统总体效率会很低,
所以,才会出现jffs/jffs2,yaffs/yaffs2,这类专门针对nand/nor flash的文件系统。

如果只是学习研究,那么这么做还是可以慢慢学到很多东西的。
如果真正想做好,那么个人觉得没必要。
不如去抽空折腾yaffs之类的,会更有实际意义。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
这个是pdf版本的,也许对你有用:
【简介】如何编写linux下nand flash驱动 v1.0 .pdf
http://download.eeworld.net/source/1513220
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表