野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4203|回复: 6

FatFs文件系统f_mount函数的作用是啥

[复制链接]
发表于 2022-9-19 19:17:29 | 显示全部楼层 |阅读模式
f_mount函数的作用是挂载文件系统,那挂载文件系统是什么 意思呢?
回复

使用道具 举报

发表于 2022-9-20 09:20:55 | 显示全部楼层
那就要先理解挂载的含义。不挂载的话,文件系统不能被访问到
野火论坛202209200917366449..png
回复 支持 反对

使用道具 举报

发表于 2022-9-20 10:25:59 | 显示全部楼层
根据第二个参数要挂载的编号,对应于diskio.c里面 SPIFLASH、SD等各种介质,或者也可以同一个介质去划分多个地址范围 , 根据介质的驱动接口去访问硬编码划分了的扇区或者页地址部分,找是否有文件系统的数据信息,如果找到了就将一系列的数据填入到第一个参数指向的文件系统结构体,这个结构体还会记录在一个文件系统库定义的一个全局的数组里面,相当于它保存了所有不同编号(挂载点)下找到的文件系统。

如果没有在编号(挂载点)最终对应到的介质地址区域找到有文件系统信息,就要执行格式化,在该区域覆盖写入文件系统的结构信息,然后再重新挂载。

后面f_open函数根据参数填的包含了挂载点的字符串路径,从上面说的全局数组里面找到对应挂载点的文件系统结构体,根据文件系统结构体中的介质、地址等和文件目录结合找到某个文件的信息又填充到一个文件结构体,后面读写过程使用这个文件结构体,具体怎么从文件系统结构体的信息和目录找到文件就是文件系统数据结构的实现细节了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-20 10:33:17 | 显示全部楼层
LF_laffy 发表于 2022-9-20 09:20
那就要先理解挂载的含义。不挂载的话,文件系统不能被访问到

看不懂?这里是STM32挂载文件系统,STM32上还没有操作系统
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-20 10:43:58 | 显示全部楼层
WishWish 发表于 2022-9-20 10:25
根据第二个参数要挂载的编号,对应于diskio.c里面 SPIFLASH、SD等各种介质,或者也可以同一个介质去划分多 ...

能简单说一下挂载文件系统是干了啥吗?上面的文字太专业看不懂
回复 支持 反对

使用道具 举报

发表于 2022-9-20 11:09:35 | 显示全部楼层
华丽的转身 发表于 2022-9-20 10:43
能简单说一下挂载文件系统是干了啥吗?上面的文字太专业看不懂

不太理解先跳过记住流程就行  等看多了深入C语言和计算机原理等方面的东西自然就明白了 反正就是要先找到写在了介质里面的文件系统,找到后记录在当前程序里面的些变量里面 后续流程都要用到变量里的东西
回复 支持 反对

使用道具 举报

发表于 2022-9-27 11:26:16 | 显示全部楼层
f_open等函数参数都是路径的,如"0:";f_mount你可以简单理解为,初始化了一下磁盘,然后把磁盘和"0:"关联了起来
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-20 16:18 , Processed in 0.045149 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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