打印
[MCU]

fatfs(文件系统)执行f_sync之前数据保存在什么地方(stm32)

[复制链接]
3259|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
赵超杰|  楼主 | 2016-11-16 15:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
赵超杰|  楼主 | 2016-11-16 16:53 | 只看该作者
其实在执行f_write时,数据为512字节时,直接写入到SD卡上,数据少于512字节时,则先保存在用户缓冲区,待执行f_sync与f_close时,将缓冲区的数据写入到SD卡上,并将文件目录项对应的扇区内容进行更新,这样就将数据与文件链接起来了,在windows上就可以看到文件,且文件里是有内容的,如果不执行f_sync与f_close,则没有更新文件目录项的扇区,因此,即使SD卡有数据,但打开文件时,是看不到相应内容的。执行过程可以看以下的图片,图片来源http://www.openedv.com/posts/list/27427.htm

写.jpg (291.27 KB )

写数据流程

写数据流程

同步.jpg (268.22 KB )

同步数据流程

同步数据流程

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

96

帖子

0

粉丝