金牌会员
 
- 积分
- 1522
- 金钱
- 1522
- 注册时间
- 2014-5-16
- 在线时间
- 217 小时
|
发表于 2016-6-5 21:03:28
|
显示全部楼层
本帖最后由 zmingwang 于 2016-6-5 23:08 编辑
STM32确实不太适合挂YAFFS,因为YAFFS是以页为单位分配空间的,所以要在内存里创建文件结构的树,你想挂1G的NAND,必须要外挂一片至少1M的SRAM.
当然如果系统本来就有外部SRAM,还是可以用YAFFS的,需要将整片SRAM设置为动态分配的内存,因为YAFFS内部是用malloc来分配内存的.
windows当然只能识别FAT文件系统,所以如果你想直接让windows识别你的NAND为U盘,你就需要再挂载一个FATFS,用yaffs的文件IO来实现fatfs的文件IO,也就是说你要用yaffs来写一个FTL层.
yaffs有什么用呢,这就要从fat为什么不适用于nand说起,主要两点:fat文件系统首先不会做磨损平衡,所以nand会坏得很快.再一个,fat在系统非正常结束,比如掉电,复位等情况下,不能保证数据完整性,甚至fat文件系统的完整性.yaffs就能解决fat文件系统的不足,详细参考官方文档http://www.yaffs.net/documents
|
|