硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7698|回复: 10
收起左侧

[FatFs] 关于FatFS在SPI FLASH上无擦写均衡导致问题的疑问

[复制链接]

65

主题

432

回帖

632

积分

金牌会员

积分
632
发表于 2018-2-16 22:52:28 | 显示全部楼层 |阅读模式
把 FatFs 分论坛上的帖子整个看了一遍,感觉有不少问题集中在原来是裸写FLASH保存数据,后来想升级到上 FatFs 系统,用文件系统的方式保存数据,其中 云琴箫龙 网友提出的问题我现在也正在遇到,原来使用裸写FLASH的方法保存系统参数和周期性的数据,这种方式需要加上一些算法,比如每次开机的时候,读取系统参数要加校验,还要读取之前周期性保存数据的尾巴指针在哪里,以继续从上次的尾巴位置开始保存数据,等周期性数据存到最后一个空间的时候要从头开始保存,周期性写的时候,如果一个扇区写完了,写下一个扇区前要擦数该扇区。。。表达不太完整,外加的算法还有不少,这是不用文件系统保存数据带来的附加代价,但是目前运行很稳定,如果有文件系统了,直接往文件的末端继续写数据就行了,但是想法挺好,深入的思考之后,发现有一个巨大的隐患不得不搞清楚,就是在 FatFs 下,往文件末端写数据的时候,因为每次写入的数据不多,也就十几个几十个字节,这样每次的写行为很有可能发生在同一个扇区里,关键是 FatFs 系统的 f_write() 函数内部机制不太清楚,是不是这个函数先把要写入数据涉及到的扇区内容先读出来到内存里,直接在这个内存后面加上要写入的数据,然后擦除目标扇区,然后再把之前备份的数据写入?如果这样的话,那即使每次写入1个字节,也要进行擦除扇区的行为,这样对FLASH的伤害太大了吧,这是不允许的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-2-17 00:49:02 | 显示全部楼层
操作SPI Flash建议使用嵌入式文件系统,他们支持掉电保护和擦写均衡。可以选择的有
1. RL-FlashFS,这个有给我们的V4板子配套SPI Flash的例子。

2. ARM mbed搞的littleFS。   
   http://www.armbbs.cn/forum.ph ... &highlight=littleFS

3. 还有个SPI FFS。
    https://github.com/pellepl/spiffs
回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
 楼主| 发表于 2018-2-17 11:13:04 | 显示全部楼层
硬汉的意思是不建议在SPI FLASH上用FatFs?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-2-18 01:25:37 | 显示全部楼层
taobaofarmer 发表于 2018-2-17 11:13
硬汉的意思是不建议在SPI FLASH上用FatFs?

是的,FatFS仅仅是FAT类的文件系统,掉电点保护,擦写均衡都不支持。
回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
 楼主| 发表于 2018-2-18 09:00:15 | 显示全部楼层
估计chan君早晚会给FatFS升级到支持掉电保护和擦写均衡,另外我修改头像提示已经成功了,为何头像一点儿不变呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-2-18 09:42:46 | 显示全部楼层
taobaofarmer 发表于 2018-2-18 09:00
估计chan君早晚会给FatFS升级到支持掉电保护和擦写均衡,另外我修改头像提示已经成功了,为何头像一点儿不 ...

1. 你的头像昨天就更新了,我这里可以看到效果,你清除下你浏览器的Cookie看看。
2. FatFS是FAT类的文件系统,已经决定了它的出身。与嵌入式文件系统的对比,可以看此贴:
http://www.armbbs.cn/forum.php?m ... ;highlight=littleFS
回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
 楼主| 发表于 2018-2-18 22:55:16 | 显示全部楼层
果然是Cookie的问题,硬汉太敬业了
回复

使用道具 举报

38

主题

82

回帖

196

积分

初级会员

积分
196
发表于 2018-3-18 12:05:15 | 显示全部楼层
为什么SD卡不需要在意擦写均衡呢?
回复

使用道具 举报

58

主题

118

回帖

292

积分

高级会员

积分
292
发表于 2018-3-26 10:57:09 | 显示全部楼层
本帖最后由 yuanfp 于 2018-3-26 10:59 编辑
yip_1991 发表于 2018-3-18 12:05
为什么SD卡不需要在意擦写均衡呢?

回复

使用道具 举报

6

主题

122

回帖

140

积分

初级会员

积分
140
发表于 2018-3-29 13:18:10 | 显示全部楼层
yip_1991 发表于 2018-3-18 12:05
为什么SD卡不需要在意擦写均衡呢?

SD卡,自带FTL(闪存转译层)。
回复

使用道具 举报

38

主题

82

回帖

196

积分

初级会员

积分
196
发表于 2018-4-2 14:49:04 | 显示全部楼层
dy84082666 发表于 2018-3-29 13:18
SD卡,自带FTL(闪存转译层)。

没玩过NAND Flash,这是NAND Flash自带的特性是吧
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 01:52 , Processed in 0.318667 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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