小松的STM32教程(19)—— 文件系统

news/2024/7/20 13:12:36 标签: stm32, 内存管理, 文件系统

文件系统

文件系统又称为文件管理系统,也就是在磁盘上管理文件的方法,常用的文件系统有FATFS(用于小型的嵌入式),NTFS(windows NT),CDFS(光盘),exFAT

FATFS

  • FAT是可裁剪的文件系统,可以根据实际情况来选择配置
  • 与windows兼容,支持rtos
  • 层次结构
    层次说明
    底层接口包括存储媒介读写接口和供给文件创建修改时间的实时时钟RTC,需要修改移植
    中间层实现文件读写协议(ff.c和ff.h)不需要修改
    应用层只需要调用API
  • 源码文件
    文件说明
    ffcont.h模块配置文件,需要配置
    ff.h文件系统和应用模块公用包含文件,无需修改
    ff.c文件系统源码模块,无需修改
    diskio.h文件系统和discio模块公共包含文件,无需修改
    diskio.c与平台相关的代码,需要根据存储介质来编写函数
    interger.h数据类型定义
    option可选的外部功能,比如支持汉字
  • conf.h 的参数
    参数说明
    TINY0,使用一般配置
    READONLY0,读写
    STRFUNC1,支持字符串类操作
    MKFS1,使能格式化
    FASTSEEK1,支持快速定位
    LABEL1,支持盘符
    CODEPAGE936,使用GBK编码
    LFN3,支持长文件名
    VOLUMES3,支持逻辑设备数
    MAXSS512,扇区缓冲的最大值
  • 移植步骤
    1. 数据类型
    2. 配置conf函数
    3. 改diskio.c,写底层接口函数:初始化,状态,读,写,io控制等

http://www.niftyadmin.cn/n/1689168.html

相关文章

javaGUI编程

简介 swing和AWT需要jre环境了解MVC架构和监听

顺序存储线性表:创建图书馆

概述 很多数据结构的教程一开始就是介绍大量的概念,数据类型等,并且抽象层次很高,不易理解和学习,我个人认为同学们完全具有举一反三的能力,也就是说,会写图书管理,也就会写酒店管理&#xff0…

链式存储线性表

改变什么就传什么的指针 void change1(int* element){*element980; }void arraymalloc(int** p){(*p)(int*) malloc(10*sizeof (int));(*p)[0]20; }int main(){int a;change1(&a);printf("Now a is %d\n",a);int* p (int*) malloc(10*sizeof (int));p[0]10;prin…

关于指针的若干思考

字节 本文我们操作的最小的数据存储单位是字节 变量和变量名 1.当我们声明一个变量的时候,内存中就为我们开辟了一块空间,用于储存之后赋予变量的值,此时内存要解决两个问题:1. 存在哪里,2.开辟多大的空间&#xff…

C++ 面向对象基础

概述 写C的时候,我们是面向过程的,而在C中,我们则是面向对象,面向对象的思想可谓是一个革新,这也是使得构建缤纷的代码世界变得更加容易。本文中我想联系生活中的实际来说说和面向对象有关的事情。在此感谢阅读。 ne…

C++面向对象核心

类作为类的成员的变量类型 如下,Hair类就是Cat的一个成员的变量类型 class Hair{ public:string color;int length ;bool isSoft; };class Cat{ public:Hair catHair;int lengthOfLegs;string colorEyes; };int main() {Cat cat1;cat1.catHair.length20;cat1.leng…

C++面向对象高级

函数模板 模板的定义和模板的使用 #include "iostream" using namespace std; template <typename T> void myswap(T& a,T& b){T swap;swapa;ab;bswap; } int main(){int a 10;int b90;myswap(a,b);myswap<int>(a,b);cout<<a<<endl;…