FATFS 文件系统
负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
即在磁盘上组织文件的方法。
常用的文件系统:
-FAT / FATFS
-NTFS: 基于安全性的文件系统,是Windows NT所采用的独特的文件系统结构
-CDFS:CDFS是大部分的光盘的文件系统
-exFAT
2、FATFS 文件系统
位单片机做了优化。
FATFS是可裁剪的文件系统。
3、FATFS文件系统特点
4、FATFS模块的层次结构图
5、FATFS文件系统包:
下载地址:http://elm-chan.org/fsw/ff/00index_e.html
此地址不仅仅包含资料包下载,还包括文件系统一些知 识,包括函数说明,函数调用实例等。
6、FATFS文件系统包结构
|
文件名 |
功能 |
说明 |
|
ffconf.h |
FATFS模块配置文件 |
需要根据需求来配置参数。 |
|
ff.h |
FATFS和应用模块公用的包含文件 |
不需要修改 |
|
ff.c |
FATFS模块源码 |
不需要修改 |
|
diskio.h |
FATFS和disk I/O模块公用的包含文件 |
不需要修改 |
|
diskio.c |
FATFS和disk I/O模块接口层文件 |
与平台相关的代码,需要用户根据存储介质来编写函数。 |
|
interger.h |
数据类型定义 |
与编译器有关。 |
|
option文件夹 |
可选的外部功能(比如支持中文等) |
汉字实验把字库放到SPI FLASH需要修改 |
经验:
大部分的可移植的小系统或者应用,都是采用类似这种将与底层打交道的源码开发给用户编写,然后提供顶层配置文件供配置。
FATFS即可。
④ _USE_MKFS。这个用来定时是否使能格式化,本章需
。
⑤ _USE_FASTSEEK。这个用来使能快速定位,我们设置
,使能快速定位。
,使能,就可以通过相关函数来读取和设置磁盘的名字了。
,即简体中文(GBK码,需要c936.c文件支持,该文件在option文件夹)。
,通过ff_memalloc函数来动态分配长文件名的存储区域。
个设备(磁盘)。
。
8、FATFS移植步骤
9、FATFS开放函数
f_mount -
注册/注销一个工作区域(Work Area)
f_open -
打开/创建一个文件
f_close -
关闭一个文件
f_read -
读文件
f_write -
写文件
f_lseek -
移动文件读/写指针
f_truncate -截断文件
f_sync -
冲洗缓冲数据 FlushCached Data
f_forward -
直接转移文件数据到一个数据流
f_stat -
获取文件状态
f_opendir -
打开一个目录
f_closedir -关闭一个已经打开的目录
f_readdir -
读取目录条目
f_mkdir -
创建一个目录
f_unlink -删除一个文件或目录
f_chmod -
改变属性(Attribute)
f_utime -改变时间戳(Timestamp)
f_rename -
重命名/移动一个文件或文件夹
f_chdir -
改变当前目录
f_chdrive -
改变当前驱动器
f_getcwd -
获取当前工作目录
f_getfree -
获取空闲簇 GetFree
Clusters
f_getlabel - Get volume label
f_setlabel - Set volume label
f_mkfs -
在驱动器上创建一个文件系统
f_fdisk - Divide a physicaldrive
f_gets -
读一个字符串
f_putc -
写一个字符
f_puts -
写一个字符串
f_printf -
写一个格式化的字符串
f_tell -
获取当前读/写指针
f_eof -
测试文件结束
f_size -
获取文件大小
f_error -
测试文件上的错误
FATFS 文件系统的更多相关文章
- 【液晶模块系列基础视频】3.1.fatfs文件系统的移植及接口函数的使用
============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...
- FATFS文件系统
STM32移植文件系统,操作SD卡,对SD卡进行读写 FATFS文件系统与底层介质的驱动分离开来,对底层介质的操作都要交给用户去实现,它仅仅是提供了一个函数接口而已,函数为空,要用户添加代码.然后 F ...
- FatFs文件系统的移植
FatFs 的底层可以写一次命令,读写多个扇区.FatFs的设计的读写的思想就很好,小块的数据,我就经过Buffer来存储,大块的数据,我就直接进行存取,那样速度,效率高了很多,看图: FatFs文件 ...
- 玩转X-CTR100 l STM32F4 l SD卡FatFs文件系统
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] X-CTR100控制器具有SD卡接口,本教程使用免费 ...
- 说说FATFS文件系统(转)
FATFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块.FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开.因此,它独立(不依赖)于硬件 ...
- STM32平台SD卡的FatFS文件系统开发
STM32平台SD卡的FatFS文件系统开发 系统平台: STM32系列的STM32F103ZE SPI方式与SD卡通信 SD上移植FatFS系统 1 FatFS文件系统 1.1 FatFS简介 Fa ...
- 第37章 基于SD卡的FatFs文件系统—零死角玩转STM32-F429系列
第37章 基于SD卡的FatFs文件系统 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...
- Zynq Fatfs文件系统应用笔记
Zynq Fatfs文件系统应用笔 Hello,panda 笔记介绍基于所描写叙述的Zynq Fatfs基于Xilinx xilffsv3.0和Sdpsv2.4,文件系统採用在Bare-Metal和轻 ...
- 移植Fatfs文件系统到工程中
下载Fatfs文件管理系统:http://elm-chan.org/fsw/ff/archives.html 下载最新版本 在工程中新建Fatfs文件夹,把fatfs文件中的全部复制过来 由于Fatf ...
随机推荐
- linux c编程:信号(四) sigaction
signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受到了一定的限制.而 POSIX 标准定义的信号处理接口是 sigaction 函数, ...
- 如何在ubuntun中安装intellij idea 2018并破解
相比eclipse软件,intellij idea的操作更方便.功能更多,几乎集成了所有的java框架. 安装步骤如下: 1 在https://www.jetbrains.com/idea/网站上下载 ...
- centos安装 Falcon+
1:环境 准备 : 安装 go环境 :下载 - Golang中国 参照 :http://www.cnblogs.com/Amos-Turing/p/8494250.html 安装 mysql 安装 r ...
- hdu 3718 Different Division
Different Division Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- Linux与Windows编译器的区别
移植工作開始后的第一步就是在目标平台Linux上进行编译,并链接源码.因为须要移植的软件通常并未在Linux平台上编译过,编译的过程可能会遇到非常大的困难.普通情况下,由类型声明引起的编译错误是比較e ...
- 3.09课·········for穷举和迭代
for循环拥有两类:穷举和迭代穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好 ...
- [原创]java WEB学习笔记29:Cookie Demo 之自动登录
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- python中reduce()函数
reduce()函数也是Python内置的一个高阶函数.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收 ...
- mini2440移植uboot 2011.03(上)
参考博文: <u-boot-2011.03在mini2440/micro2440上的移植> 本来我想移植最新版的uboot,但是移植却不太成功,所以先模仿他人的例子重新执行一遍,对uboo ...
- day4 内置函数 迭代器&生成器 yield总结 三元运算 闭包
内置函数: 内置函数 # abs()返回一个数字的绝对值.如果给出复数,返回值就是该复数的模. b = -100 print(b) print(abs(b)) # all() 所有为真才为真,只要有一 ...