[应用相关] _sync解决fatfs文件掉电数据丢失问题

[复制链接]
2441|3
 楼主| wanduzi 发表于 2017-10-11 10:59 | 显示全部楼层 |阅读模式
对于使用实时操作系统的项目,都必须注意临界数据的处理,不管是LWIP,还是FATFS,如果没有使用临界保护,见导致系统崩溃,为此,下面特别说明如何对FATFS进行临界数据的保护。
       当对FAT文件系统的写操作由于默写意外而中断,如突然断电,不正确的磁盘移除或不可恢复的磁盘错误,FAT结构可以被毁坏。下面的图片显示了FatFs的临界段。
6631745064864784350.jpg

红色区域的中断会导致一个交叉链接,结果,正在修改的文件/目录可能会丢失。而黄色区域中断可能导致的效果在下面列出:

正在重写的文件数据被毁坏
正在添加内容的文件回到初始状态
丢失新建的文件
一个新建或覆盖的文件保持长度为0
因为丢失关联,磁盘的使用效率变坏。


 楼主| wanduzi 发表于 2017-10-11 10:59 | 显示全部楼层
在文件不是用写模式打开时,这些情况不会发生。为了最小化磁盘数据的丢失,临界段可以像图表5显示的那样最小化,通过最小化文件处于写模式打开的时间或者适当的使用f_sync函数。
wwppd 发表于 2017-10-11 18:41 | 显示全部楼层
FATFS怎么掉电丢数据?
wwppd 发表于 2017-10-11 18:42 | 显示全部楼层
以前只用过FATFS系统数据读写速度还是可以的,但是不知道掉电丢失是什么原因?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1882

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部