http://elm-chan.org/fsw/ff/00index_e.html

(一)FatFS简介

FatFs是用于小型嵌入式系统的通用FAT / exFAT文件系统模块。 FatFs模块是按照ANSI C(C89)编写的,并且与磁盘I / O层完全分开。 因此,它独立于平台。 可以将其合并到资源有限的小型微控制器中,例如8051,PIC,AVR,ARM,Z80,RX等。此处还提供了适用于小型微控制器的Petit FatFs模块,结构拓扑如下:

(二)FatFS的特性
1、与DOS / Windows兼容的FAT / exFAT文件系统。
2、平台无关。 易于移植。
3、程序代码和工作区的占用空间非常小。
4、支持以下各种配置选项:
(1)ANSI / OEM或Unicode中的长文件名。
(2)exFAT文件系统,64位LBA和GPT可存储大量数据。
(3)RTOS的线程安全。
(4)多个卷(物理驱动器和分区)。
(5)可变扇区大小。
(6)多个代码页,包括DBCS。
(7)只读,可选API,I / O缓冲区等

(三)应用接口(FatFs为应用程序提供各种文件系统功能,如下所示)

文件访问

f_open-打开/创建文件
f_close-关闭打开的文件
f_read-从文件读取数据
f_write-将数据写入文件
f_lseek-移动读/写指针,扩展大小
f_truncate-截断文件大小
f_sync-刷新缓存的数据
f_forward-将数据转发到流
f_expand-将连续块分配给文件
f_gets-读取字符串
f_putc-写一个字符
f_puts-写一个字符串
f_printf-编写格式化的字符串
f_tell-获取当前的读/写指针
f_eof-测试文件结尾
f_size-获取大小
f_error-测试错误
目录访问
f_opendir-打开目录
f_closedir-关闭打开的目录
f_readdir-读取目录项
f_findfirst-打开目录并读取匹配的第一项
f_findnext-阅读下一个匹配的项目
文件和目录管理
f_stat-检查文件或子目录是否存在
f_unlink-删除文件或子目录
f_rename-重命名/移动文件或子目录
f_chmod-更改文件或子目录的属性
f_utime-更改文件或子目录的时间戳
f_mkdir-创建一个子目录
f_chdir-更改当前目录
f_chdrive-更改当前驱动器
f_getcwd-检索当前目录和驱动器
卷管理和系统配置
f_mount-注册/注销卷的工作区
f_mkfs-在逻辑驱动器上创建FAT卷
f_fdisk-在物理驱动器上创建分区
f_getfree-获取卷上的可用空间
f_getlabel-获取卷标
f_setlabel-设置卷标
f_setcp-设置活动代码页

(四)介质访问接口

由于FatFs模块是独立于平台和存储介质的文件系统层,因此它与物理设备(例如存储卡,硬盘和任何类型的存储设备)完全分开。 低级设备控制模块不是FatFs模块的任何部分,需要由实施者提供。 FatFs通过如下所示的简单媒体访问界面访问存储设备。 下载中还提供了某些平台的示例实现。 此处提供了用于低级磁盘I / O模块的功能检查器。

disk_status-获取设备状态
disk_initialize-初始化设备
disk_read-读取扇区
disk_write-写入扇区
disk_ioctl-控制设备相关的功能
get_fattime-获取当前时间

FatFS-通用FAT文件系统详解相关推荐

  1. FATFS文件系统详解

    一.文件系统 负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统.即在磁盘上组织文件的方法. 常用的文件系统: FAT / FATFS NTFS: 基于安全性的文件系统,是Windows ...

  2. fatfs文件系统详解之f_mount函数分析

    前序 上一篇分析了格式化一个磁盘的时候发生了什么,在格式化一个磁盘之后,就要将磁盘进行挂载,"挂载"这个词听起来很抽象,但是在软件代码上,到底发生了什么? 分析假设 (1)假设一个 ...

  3. FastDFS 分布式文件系统详解

    FastDFS 分布式文件系统详解 什么是文件系统 文件系统是操作系统用于在磁盘或分区上组织文件的方法和数据结构.磁盘空间是什么样的我们并不清楚,但文件系统可以给我们呈现一个非常清晰的表象,我们可以创 ...

  4. NTFS文件系统详解(三)NTFS元文件解析

    NTFS文件系统详解(三)NTFS元文件解析 一. 分析$Boot文件 二.分析文件记录 1. MFT偏移地址计算 2. 文件记录的结构 3. 属性的属性头分析 4. 属性的属性体分析 NTFS文件系 ...

  5. iservice list方法_MyBatis-Plus 通用IService使用详解

    一.引言 MP除了通用的Mapper还是通用的Servcie层,这也减少了相对应的代码工作量,把通用的接口提取到公共.其实按照MP的这种思想,可以自己也实现一些通用的Controller. 今天是周天 ...

  6. linux根文件系统配置,Linux学习笔记__ Linux根文件系统详解

    Linux根文件系统详解 文件系统: rootfs:根文件系统 FHS:Linux boot:系统启动相关的文件,如内核.initrd.以及grub(bootloader) /dev: 设备文件 块 ...

  7. 【2016年第4期】《欧盟数据保护通用条例》详解

    王融 中国信息通信研究院互联网法律中心,北京 100191 摘要:<欧盟数据保护通用条例>于2018年5月25日正式生效.为踏上数字时代新秩序的起跑线,全球企业都在积极准备合规工作.全面梳 ...

  8. NTFS文件系统详解(二)MBR\EBR基本信息

    NTFS文件系统详解(二)MBR\EBR基本信息 一.MBR结构分析 1. 第一个分区表项 2. 第二个分区表项 3. 第三个分区表项 4. 第四个分区表项 二.EBR结构分析 1. 第一个分区表项 ...

  9. NTFS文件系统详解(一)硬盘基本信息

    NTFS文件系统详解(一)硬盘基本信息 一.硬盘的内部结构 1. 盘面号 2. 磁道 3. 柱面 4. 扇区 二.硬盘的分区结构 NTFS文件系统详解系列 一般硬盘正面贴有产品标签,主要包括厂家信息和 ...

  10. [自制操作系统] JOS文件系统详解支持工作路径MSH

    本文分为两部分: 第一部分将详细分析JOS的文件系统及文件描述符的实现方法. 第二部分将实现工作路径,提供新的系统调用,完善用户空间工具. 本文中支持的新特性: 支持进程工作目录 提供getcwd与c ...

最新文章

  1. 如果你铁了心要好好搞科研,我强烈建议你看一下这个帖子
  2. 华为应用锁退出立即锁_面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景...
  3. 将森林转换为对应的二叉树,若在二叉树中,结点u时结点v的父结点的父结点,则在原来的森林中,u和v可能具有的关系是( )
  4. 给lnmp一键包中的nginx安装openresty的lua扩展
  5. urllib.request.urlopen(req).read().decode解析http报文报“‘utf-8‘ codec can‘t decode”错处理
  6. C++中 #define的用法
  7. 华为修改优先级命令_华为配置命令大全
  8. Linux学习总结(58)——生产环境运维故障处理指南
  9. Android ListView 获取Item的值和得到每一个Item的view对象以及得到他们所对应的控件值
  10. php网上阅卷源码,翰林金榜网上阅卷
  11. 鸿蒙开发板hi3861硬件SPI通信arduinoUNO
  12. c语言画实心坐标点,c-绘制实心圆的快速算法?
  13. Cortex-M3概述
  14. 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第5章 TWen-ASR-ONE 串口使用
  15. 程序员怎样才能写出一篇好的博客或者技术文章
  16. 大连交大c语言题库,大连理工大学C语言题库(共12套) .pdf
  17. 取得高等学校教师资格证应当具备什么学历要求
  18. Hello my friend
  19. 航嘉电源的通病维修方法!!
  20. 我的新概念英语第四册

热门文章

  1. LS1012ARDB - How to reflash u-boot / RCW via built in Kinetis CMSIS-DAP
  2. caxa 拉伸命令的使用(一次拉伸很多线)
  3. time模块时间格式转换及faker库数据伪造
  4. 如何把win7官方补丁集成到win7iso镜像中
  5. 打开本地计算机策略,win7本地组策略打开方法介绍
  6. bandicom录屏音画不同步_bandicam录屏工具
  7. 2020中青杯A题集成电路通道布线数学建模全过程论文及程序
  8. android 远程桌面软件,安卓上的远程桌面软件:Xtralogic Remote Desktop Client
  9. 傅里叶变换【1】:傅里叶变换及逆变换
  10. 体育教学硕士毕业论文题目