[stm32][FATFS]正在写文件时掉电,导致文件系统错误

Posted mraaron

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[stm32][FATFS]正在写文件时掉电,导致文件系统错误相关的知识,希望对你有一定的参考价值。

阅读官网文档:http://elm-chan.org/fsw/ff/doc/sync.html

 

Case 1. Normal write sequence

                                Time -->                                     ↓Normal shutdown
OwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwC <Power off>


Case 2. Without using f_sync()

                                Time -->                             ↓System crush
Owwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
 |<--------------- All data written will be lost ------------------>|


Case 3. Using f_sync()
                                Time -->                             ↓System crush
OwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwwwwwwSwwwww
                            Data after last f_sync will be lost |<->| 
O - f_open()
C - f_close()
w - f_write()
S - f_sync()

我们要在写之前添加好f_sync函数,将缓存的数据存储下去,有效防止写的数据全部被丢失

以上是关于[stm32][FATFS]正在写文件时掉电,导致文件系统错误的主要内容,如果未能解决你的问题,请参考以下文章

STM32CubeMX学习笔记(27)——FatFs文件系统使用(操作SD卡)

STM32 USB OTG HOST 库挂起尝试使用 FatFs 创建文件

无法使用 STM32F407 上的 Chan FatFs 库通过 SPI 写入 SD 卡文件

STM32移植FATFS文件系统最新版R0.14b

stm32 fatfs 文件系统分析和代码解析

STM32- 串行FLASH文件系统FatFs