OpenEdv-开源电子网

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

各位大神,请问一个关于FatFs文件系统 f_mkfs 的问题

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-8-17
在线时间
8 小时
发表于 2017-4-21 09:04:11 | 显示全部楼层 |阅读模式
2金钱
FatFs文件系统里有一个函数f_mkfs,作用是在在驱动器上创建一个文件系统,
我想问一下,我第一用使用后在FLASH上建立了文件系统,也存了文件进去,
设备重新启动后,我是怎么判断需不需要执行f_mkfs,还是直接再执行一次
f_mkfs,这样会把我上次建立的文件系统和存的文件删除吗?

新手,点数不多



最佳答案

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

FatFs文件系统是软件初始化出来的。重新启动以后,本身没有文件系统,需要 创建FatFs文件系统,如果文件系统已经创建出来,再次创建会失败,创建失败不会影响文件系统里面的文件。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2016-12-30
在线时间
37 小时
发表于 2017-4-21 09:04:12 | 显示全部楼层

FatFs文件系统是软件初始化出来的。重新启动以后,本身没有文件系统,需要
创建FatFs文件系统,如果文件系统已经创建出来,再次创建会失败,创建失败不会影响文件系统里面的文件。
回复

使用道具 举报

8

主题

156

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
金钱
1553
注册时间
2016-11-21
在线时间
411 小时
发表于 2017-4-21 13:42:50 | 显示全部楼层
你随便在哪个断电不丢数据的地方置一个标志位,每次上电重启后先读那个标志位,然后在执行相应的程序。
回复

使用道具 举报

1

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2012-11-8
在线时间
44 小时
发表于 2017-4-21 14:17:54 | 显示全部楼层
个人观点可以参照这个流程:
1. 磁盘硬件初始化
2. 调用f_mount() 挂载磁盘
3. 调用f_getfree() 获取磁盘剩余空间(非必须)
4. 调用f_open() 尝试打开你所创建的某个文件(如果有这个文件,而且假如打开成功不要忘记调用f_close()关闭)
以上流程中每一步都成功则不用调用f_mkfs,有任何一步函数返回FR_NO_FILESYSTEM或者FR_MKFS_ABORTED,则需要再次调用f_mkfs格式化磁盘
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-8-17
在线时间
8 小时
 楼主| 发表于 2017-4-21 15:33:24 | 显示全部楼层
明白了,谢谢!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-21 23:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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