fatfs文件系统支持多少文件

fatfs文件系统支持多少文件,第1张

fatfs文件系统支持4GB文件。

disk_initialize()等函数是FATFS底层的几个接口,移植实现后,FATFS的 *** 作跟WINDOWS上的文件 *** 作差不多一样,FATFS源代码里有说明文档自己看,不过设备要先挂载,如果原来的设备没有文件系统,还要格式化一下,才能用。

对于FAT16文件系统,可以保存的文件体积最大值是4 GB - 1 byte (2^32 bytes - 1 byte);卷的最大体积是4GB;每个卷上最多可以保存的文件数量是65,536个 (2^16);根目录下可以保存的文件和文件夹数量最大值是512个(如果使用了长文件名,该数字还会减小)。

FatFs 提供下面的函数:

f_mount - 注册/注销一个工作区域(Work Area)

f_open - 打开/创建一个文件

f_close - 关闭一个文件

f_read - 读文件

f_write - 写文件

f_lseek - 移动文件读/写指针

f_truncate - 截断文件

f_sync - 冲洗缓冲数据 Flush Cached Data

f_opendir - 打开一个目录

f_readdir - 读取目录条目

f_getfree - 获取空闲簇 Get Free Clusters

FatFs是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。 FatFs 的编写遵循ANSI C,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, SH, Z80, H8, ARM 等等,不需要做任何修改。

FAT12, FAT16 与 FAT32.多个卷(物理驱动器与分区).两种分区规则: FDISK 与 Super-floppy.多种配置选项:长文件名支持。可选的编码页,包括DBCS(译者:DBCS为双位元组字元系统 Double Byte Char Systems )多任务支持只读,最小化API,缓冲区配置等等应用程序接口

返回码有很多,最主要的是 FR_OK

当打开一个文件时, *** 作完成后进行关闭,这个很简单

第一个参数

看下面的调用函数

读的文件结构体是fsrc,将数据读入到buffer中,读出的数量为buffer数,而br用于累积已经完成了多少读出

下面的函数可以看出,写入结构体为fdst,将buffer中的内容进行写入,数量为刚刚计算的BR,BW用于累积写入的数量。

也就是是将尺寸压缩到现在的指针位置,也就是说,把后面的全部删除。

功能基本上同f_close ,但是还可以继续进行读写查询的 *** 作,用于那种用于需要长时间打开的 *** 作,用此函数可以避免出错。

f_forward函数从文件中读取数据并将数据转发到输出流,而不使用数据缓冲区。这适用于小存储系统,因为它在应用模块中不需要任何数据缓冲区。比如音频播放就可以用到此功能。

给文件分配一个连续空间,如下:其中malloc的用法为:

以特定格式写入到文件中,如下:

获取一下当前的读写指针

测试是不是文件的最尾端,如果是最尾端,则返回一个值。

获取一个文件的尺寸

测试是否有硬件错误发生,并不执行任何实际 *** 作。

在下面的这个函数中,用到了f_opendir和f_closedir和f_readdir

而f_findfirst为打开一个目录,然后读第一条。

而f_findnext为打开一个目录,读下一条匹配的标题。

上面关于目录管理的函数,在文件数量比较大一点的系统中可以用到,我们控制器的文件目录都比较简单,暂时不要考虑。

最重要的一个函数来了:

挂载一个磁盘或者释放一个磁盘:

比如:

比如在f_mkfs前先创建f_fdisk


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12059706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存