OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7190|回复: 4

关于 STM32F4 的NandFlash搭载文件系统的一些问题。

[复制链接]

5

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-6-5
在线时间
44 小时
发表于 2016-6-5 21:03:27 | 显示全部楼层 |阅读模式
1金钱
事情是这样的,LZ 有一块STM32F407的开发板,上面有一个 1G 的 NandFlash ,本来  LZ 打算使用 FATFS 文件系统,用电脑拷贝文件进去,然后用LCD 显示,再放放音乐之类的,然后查资料,然后就发现
很多人说 FATFS 文件系统不是用于NandFlash 缺少 FTL 层之类的,然后查了查要使用 YAFFS2 文件系统,那就换吧,于是又是找资料又是移植,然后就发现没办法拷贝文件进去,windows 又不识别,
莫不是只有 CPU 才能访问这个 Nand了,那LZ 这些工夫岂不是白干了,我就想问问,YAFFS2这个文件系统到底什么用?FATFS 真的不是用于 Nand 吗?还是说 STM32 不太适合搭载 YAFFS2?

最佳答案

查看完整内容[请看2#楼]

STM32确实不太适合挂YAFFS,因为YAFFS是以页为单位分配空间的,所以要在内存里创建文件结构的树,你想挂1G的NAND,必须要外挂一片至少1M的SRAM. 当然如果系统本来就有外部SRAM,还是可以用YAFFS的,需要将整片SRAM设置为动态分配的内存,因为YAFFS内部是用malloc来分配内存的. windows当然只能识别FAT文件系统,所以如果你想直接让windows识别你的NAND为U盘,你就需要再挂载一个FATFS,用yaffs的文件IO来实现fatfs的文件IO,也就是说你要用y ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
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


回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-6-5 22:19:10 来自手机 | 显示全部楼层
等我们的429开发板吧
回复

使用道具 举报

5

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-6-5
在线时间
44 小时
 楼主| 发表于 2016-6-6 09:17:59 | 显示全部楼层
zmingwang 发表于 2016-6-5 21:03
STM32确实不太适合挂YAFFS,因为YAFFS是以页为单位分配空间的,所以要在内存里创建文件结构的树,你想挂1G的NA ...

板子上是有一个64M 的 PSRAM 的,我打算挣扎一下,看看能不能完成,那个自己写中间IO层有点困难,我在研究研究,谢了
回复

使用道具 举报

5

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
240
金钱
240
注册时间
2016-6-5
在线时间
44 小时
 楼主| 发表于 2016-6-6 09:55:26 | 显示全部楼层
正点原子 发表于 2016-6-5 22:19
等我们的429开发板吧

原子哥,就算用429的芯片,好像也不能解决RAM 不够的问题,还是要外挂,这样的话429和407好像也没太大的区别吧。。。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 11:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表