嵌入式FAT文件系统
FAT文件系统

如需购买,请联系销售:sales@
更多信息请访问专题网站:/fat-file-system/
1
©2011 Zeeis 版权所有
FAT 文件系统 - 嵌入式 FAT12, FAT16 & FAT32 文件系统
PCMCIA NAND Flash NOR Flash DataFlash
FATDriver_deinit
FS_STATUS FATDriver_deinit(void) 释放 FAT 文件系统的存储设备驱动程序占用的资源。
返回值
当返回 FS_SUCCESS 表示成功。否则则表示失败。
FATDriver_getStatus
FS_STATUS FATDriver_getStatus(void) 检查可移动存储卡 FAT 文件系统当前状态。
date_time 授权
存储当前日期和时间信息。
有任何技术问题或需要帮助,请联系技术支持:support@ 如需购买,请联系销售:sales@ 更多信息请访问专题网站:/fat-file-system/ ©2011 Zeeis 版权所有
有任何技术问题或需要帮助,请联系技术支持:support@ 如需购买,请联系销售:sales@ 更多信息请访问专题网站:/fat-file-system/ ©2011 Zeeis 版权所有
之士
2
FAT 文件系统 - 嵌入式 FAT12, FAT16 & FAT32 文件系统
FAT 文件系统 - 嵌入式 FAT12, FAT16 & FAT32 文件系统 FAT 文件系统 - 嵌入式 FAT12, FAT16 & FAT32 文件系统
之士
FAT 文件系统概述
fatfs filinfo解析

fatfs filinfo解析(FAT File System)是一种用于小型嵌入式系统的文件系统。
它基于FAT (File Allocation Table)文件系统,并对其进行了一些改进和优化,以适应小型嵌入式系统的需求。
在FATFS中,FILINFO结构是用于获取文件信息的结构体。
它包含了关于文件的各种信息,如文件名、大小、时间戳等。
以下是FILINFO结构的定义:struct FILINFO {DWORD fsize; // 文件大小(以字节为单位)DWORD fdate; // 文件创建日期(以日期格式表示)DWORD ftime; // 文件创建时间(以时间格式表示)DWORD fattrib; // 文件属性(如只读、隐藏等)char fname[13]; // 文件名(以ASCII码表示)char fctdiag[26]; // 文件控制诊断信息(可选)};下面是对每个字段的简要说明:1、fsize:文件的大小,以字节为单位。
2、fdate:文件的创建日期,以日期格式表示。
3、ftime:文件的创建时间,以时间格式表示。
4、fattrib:文件的属性,包括只读、隐藏等。
这些属性通常使用位掩码来表示。
5、fname:文件名,以ASCII码表示。
最多可以包含13个字符。
6、fctdiag:文件控制诊断信息,用于存储与文件相关的诊断信息。
这个字段是可选的,可以留空。
要解析FILINFO结构,你可以按照以下步骤进行:1、从结构体中获取文件大小(fsize)。
2、从结构体中获取文件的创建日期(fdate),并将其转换为日期格式(年月日)。
3、从结构体中获取文件的创建时间(ftime),并将其转换为时间格式(时分秒)。
4、从结构体中获取文件属性(fattrib),并根据需要检查各个属性标志位的状态。
5、从结构体中获取文件名(fname),并将其转换为字符串形式。
6、如果fctdiag字段不为空,则从结构体中获取文件控制诊断信息。
嵌入式FAT文件系统

嵌入式FAT文件系统嵌入式FAT文件系统1.总则本文件是嵌入式FAT文件系统技术资料,嵌入式FA T文件系统开发,应用人员均可通过阅读本文件,以掌握文件系统的原理,和应用。
2.参考文件1)Microsoft Hardware White Paper FAT: General Overview of On-Disk Format2)Microsoft Hardware White Paper Long Filename Specification3.命名规范1)盘符命名规范a)盘符以物理磁盘分区的先后次序分配,从C开始到Z结束2)文件命名规范(支持长文件名)a)文件名由文件名和扩展名两部分组成,其中1)短文件名长度不超过8个字符,长文件名长度不超过255个字符2)文件扩展名不超过3个字符b)文件名统一使用英文字母、数字和下划线的组合c)文件名称必须由字母开始d)文件名不区分大小写4.文件寻址路径规范1)文件寻址路径规范采用与Windows/DOS兼容的规范,其中a)在路径的开始在“:\”前面用一个英文字母表示寻址盘符,盘符从C开始到Z结束;路径以字符“\”开始,则表示从当前打开盘符根目录开始寻址;路径以字符“A”“Z”开始,第二个字符不是“:”,为相对路径,表示从文件系统的当前目录开始寻址;b)父目录与子目录之间用“\”分符,“\”后面的目录是子目录,其父目录在“\”之前。
c)文件名应放在文件寻址路径之后,相对路径文件寻址路径默认为文件系统的当前目录d)使用进入目录函数char cd_folder(char * foldername,char mode)可改变文件系统的当前目录e)路径实例--“c:\dos\program files\arv.c”表示寻址c盘根目录,dos子目录,programfiles子目录的文件avr.cf)路径最大长度占用字节数不超过260,如路径”c:\programfiles\system32\.....\Jsmart Memory Stick AVR”占用字节数不能超过260;相对路径如” system32\.....\Jsmart Memory Stick A VR”加上当前目录之和占用字节数不超过260g)文件寻址路径不区分大小写5.源程序文件规范1)fat.c—file system 源代码2)fat.h—file system include文件3)Fat_cfg.h—file system 配置文件*.h4)Types.h—数据类型重定义文件5)Flash_management_sys.h—Sector读写include文件6.其它1)兼容FAT16文件系统,长文件名,最大路径长度260个字节,符合Microsoft Longfilenamespecification。
了解计算机文件系统的不同类型和特点

了解计算机文件系统的不同类型和特点计算机文件系统是计算机操作系统中的一部分,用于管理存储设备上数据的组织和访问。
不同类型的文件系统具有不同的特点和功能。
在本文中,我们将探讨几种常见的计算机文件系统类型,并介绍它们各自的特点。
一、FAT文件系统(FAT)FAT文件系统是一种较早的文件系统类型,被广泛应用于早期的Windows操作系统和一些嵌入式设备中。
FAT文件系统通常有三个主要版本:FAT12、FAT16和FAT32。
FAT文件系统的主要特点如下:1. 简单易用:FAT文件系统采用了简单的文件组织方式,使得其在存储设备上的数据管理变得相对简单。
它使用文件描述符表来记录文件的位置和相关信息,这使得文件的读取与写入操作比较高效。
2. 兼容性强:FAT文件系统具有很强的兼容性,几乎可以在所有常见的操作系统中进行访问和操作。
这使得FAT文件系统成为移动存储介质(如USB闪存驱动器)的首选文件格式。
二、NTFS文件系统(NTFS)NTFS文件系统是Windows操作系统中较新的文件系统类型,它在安全性、可靠性和性能方面有着明显的优势。
NTFS文件系统的主要特点如下:1. 安全性强:NTFS文件系统支持对文件和文件夹进行高级的安全设置,如访问控制列表(ACL)和加密功能。
这使得用户能够为不同的文件或文件夹设置不同的权限,增强了数据的安全性。
2. 支持大容量存储:NTFS文件系统支持大容量存储,可以处理超过2TB的存储设备。
它还具有更好的磁盘空间管理能力,可以更有效地利用存储空间。
三、Ext文件系统(Ext)Ext文件系统是一种主要用于Linux操作系统的文件系统类型,它有几个不同的版本,如Ext2、Ext3和Ext4。
Ext文件系统的主要特点如下:1. 高性能:Ext文件系统采用了一些高效的技术和策略,如日志系统和索引节点(Inode)结构等,提供了较高的文件系统性能和效率。
2. 兼容性较强:虽然Ext文件系统主要用于Linux操作系统,但它也具有一定的兼容性,可以在其他操作系统中进行读取和访问。
fatfs 读写模式解析

fatfs 读写模式解析摘要:1.FATFS 简介2.FATFS 的读写模式3.FATFS 读写模式的解析4.FATFS 读写模式的应用正文:【1.FATFS 简介】FATFS,全称File Allocation Table File System,是一种适用于嵌入式系统的文件系统。
它主要用于管理闪存存储设备上的文件和数据,为开发者提供了简单易用的文件操作接口。
FATFS 文件系统是基于FAT(File Allocation Table)文件分配表的,具有较好的容错性和可靠性。
【2.FATFS 的读写模式】FATFS 的读写模式主要包括两种:顺序读写和随机读写。
(1)顺序读写:顺序读写是一种按照文件的物理存储顺序进行读写的方式。
这种读写模式适用于对数据顺序要求较高的场景,如音频、视频播放等。
(2)随机读写:随机读写是一种根据文件的逻辑地址进行读写的方式。
这种读写模式允许开发者直接定位到文件的某个位置进行读写,提高了数据访问的效率。
【3.FATFS 读写模式的解析】(1)顺序读写模式的解析:在顺序读写模式下,FATFS 会按照文件的物理存储顺序进行读写操作。
这种模式的优点在于顺序读写时,闪存设备的写入性能较高,且不容易产生碎片。
缺点是读写效率受到物理存储顺序的限制,可能会降低数据访问速度。
(2)随机读写模式的解析:在随机读写模式下,FATFS 会根据文件的逻辑地址进行读写操作。
这种模式的优点在于可以提高数据访问速度,尤其是在随机访问频繁的场景下。
缺点是可能会导致闪存设备产生碎片,降低写入性能。
【4.FATFS 读写模式的应用】FATFS 的读写模式在嵌入式系统中具有广泛的应用。
根据不同的应用场景,开发者可以选择合适的读写模式以满足性能和存储需求的平衡。
fatfs copy files

fatfs copy files(原创实用版)目录1.FATFS 文件系统的概述2.FATFS 文件系统的特点3.FATFS 文件系统的应用领域4.使用 fatfs 库实现文件拷贝功能5.fatfs copy files 的注意事项正文1.FATFS 文件系统的概述FATFS(File Allocation Table File System)是一种适用于嵌入式系统的文件系统,主要用于管理存储设备上的文件和目录。
FATFS 文件系统是 FAT 文件系统的一个变种,它采用了更小的簇大小和更多的目录入口,以适应嵌入式设备的存储需求。
2.FATFS 文件系统的特点FATFS 文件系统具有以下特点:- 支持多种存储设备,如硬盘、闪存等。
- 支持多种文件类型,如文本文件、二进制文件、图片等。
- 支持长文件名和多级目录结构。
- 支持多种存储介质的容量,从小于 1MB 到大于 4GB。
- 支持多种操作系统,如 Windows、Linux 等。
3.FATFS 文件系统的应用领域FATFS 文件系统广泛应用于嵌入式系统、移动存储设备、数字相机等领域。
例如,许多便携式媒体播放器和 U 盘都采用了 FATFS 文件系统,以便在各种操作系统上都能方便地读取和写入数据。
4.使用 fatfs 库实现文件拷贝功能在嵌入式系统中,可以使用 fatfs 库实现文件拷贝功能。
以下是一个简单的示例:```c#include <stdio.h>#include <fatfs.h>void copy_file(const char *src_path, const char *dest_path) { FATFS *fs;FATFS_DIR *dir;FATFS_FILE *file;const char *filename;FRESULT res;fs = fatfs_open("0:/", "r"); // 打开根目录if (fs == NULL) {printf("Error: Cannot open root directory.");return;}dir = fatfs_opendir(fs, "0:/"); // 打开目录if (dir == NULL) {printf("Error: Cannot open directory.return;}filename = fatfs_getdir(dir); // 获取目录中的文件名while (filename!= NULL) {file = fatfs_fopen(fs, filename, "r"); // 打开文件 if (file == NULL) {printf("Error: Cannot open file "%s".", filename);continue;}res = fatfs_fwrite(file, dest_path); // 将文件内容写入目标路径if (res!= FR_OK) {printf("Error: Cannot copy file "%s".", filename);fatfs_fclose(file);continue;}fatfs_fclose(file); // 关闭文件printf("Successfully copied file "%s".", filename);fatfs_closedir(dir); // 关闭目录fatfs_close(fs); // 关闭根目录}```5.fatfs copy files 的注意事项在使用 fatfs 库进行文件拷贝时,需要注意以下几点:- 确保目标存储设备具有足够的空间。
fatfs使用流程

fatfs使用流程一、引言FAT文件系统(File Allocation Table,文件分配表)是一种常用的文件系统,广泛应用于嵌入式系统和移动存储设备中。
在使用FAT 文件系统之前,我们需要了解其使用流程,以便正确地操作和管理文件。
二、初始化FAT文件系统在开始使用FAT文件系统之前,我们需要对其进行初始化。
初始化的步骤如下:1. 创建一个FAT文件系统对象,通常命名为fs。
2. 调用初始化函数来初始化文件系统对象,例如:f_mount(&fs, "0:", 1)。
其中,第一个参数是文件系统对象,第二个参数是逻辑驱动器号,第三个参数表示是否格式化磁盘。
三、创建文件在FAT文件系统中,创建文件的步骤如下:1. 定义一个文件对象,通常命名为file。
2. 调用打开函数来创建文件,例如:f_open(&file, "test.txt", FA_CREATE_ALWAYS)。
其中,第一个参数是文件对象,第二个参数是文件名,第三个参数表示创建文件时如果文件已存在是否覆盖。
四、写入文件在FAT文件系统中,写入文件的步骤如下:1. 定义一个缓冲区用于存储待写入的数据。
2. 调用写入函数来写入数据到文件中,例如:f_write(&file, buffer, sizeof(buffer), &bytes_written)。
其中,第一个参数是文件对象,第二个参数是待写入的数据缓冲区,第三个参数是待写入的数据大小,第四个参数是实际写入的字节数。
五、读取文件在FAT文件系统中,读取文件的步骤如下:1. 定义一个缓冲区用于存储读取的数据。
2. 调用读取函数来从文件中读取数据,例如:f_read(&file, buffer, sizeof(buffer), &bytes_read)。
其中,第一个参数是文件对象,第二个参数是用于存储读取数据的缓冲区,第三个参数是待读取的数据大小,第四个参数是实际读取的字节数。
fatfs f_open creat_new解析 -回复

fatfs f_open creat_new解析-回复在写这篇文章之前,我们先解释一下主题中的关键词。
首先,“fatfs”是一个开源的嵌入式文件系统库,用于嵌入式设备中的存储管理。
其全称为FAT File System,即“FAT文件系统”。
其次,“f_open”是fatfs中的一个函数,用于打开文件。
最后,“creat_new”是一个参数,用于指定打开文件的模式,表示要创建一个新的文件。
在接下来的文章中,我们将深入探讨fatfs中的f_open函数和creat_new 参数的工作原理和使用方法。
我们会一步一步回答问题,帮助读者更好地理解。
第一部分:了解fatfs和FAT文件系统(大约500字)首先,让我们了解一下fatfs和FAT文件系统。
FAT文件系统是一种常见的存储文件系统,在许多嵌入式设备中广泛使用。
它最初由微软开发,用于DOS操作系统和FAT12、FAT16和FAT32文件系统。
后来,FAT文件系统被广泛应用于其他操作系统和设备中,包括嵌入式系统。
fatfs是一个轻量级的FAT文件系统库,适用于小型嵌入式设备。
它具有快速、简单和可移植的特点,因此受到了广大嵌入式设备开发者的喜爱。
fatfs提供了一组API函数,用于管理文件和目录,包括创建、打开、读取、写入和关闭文件等操作。
第二部分:了解f_open函数(大约500字)f_open是fatfs库中的一个函数,用于打开文件。
它的原型如下:FRESULT f_open (FIL* fp, const TCHAR* path, BYTE mode)参数说明:- fp:指向FIL结构的指针,用于保存打开的文件信息。
- path:要打开的文件的路径。
路径可以是相对路径或绝对路径。
- mode:打开文件的模式。
常见的模式包括读取、写入、创建和追加等。
creat_new是在创建一个新的文件。
f_open函数的返回值是一个FRESULT类型的枚举值,表示操作的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式FAT文件系统嵌入式FAT文件系统1.总则本文件是嵌入式FAT文件系统技术资料,嵌入式FA T文件系统开发,应用人员均可通过阅读本文件,以掌握文件系统的原理,和应用。
2.参考文件1)Microsoft Hardware White Paper FAT: General Overview of On-Disk Format2)Microsoft Hardware White Paper Long Filename Specification3.命名规范1)盘符命名规范a)盘符以物理磁盘分区的先后次序分配,从C开始到Z结束2)文件命名规范(支持长文件名)a)文件名由文件名和扩展名两部分组成,其中1)短文件名长度不超过8个字符,长文件名长度不超过255个字符2)文件扩展名不超过3个字符b)文件名统一使用英文字母、数字和下划线的组合c)文件名称必须由字母开始d)文件名不区分大小写4.文件寻址路径规范1)文件寻址路径规范采用与Windows/DOS兼容的规范,其中a)在路径的开始在“:\”前面用一个英文字母表示寻址盘符,盘符从C开始到Z结束;路径以字符“\”开始,则表示从当前打开盘符根目录开始寻址;路径以字符“A”“Z”开始,第二个字符不是“:”,为相对路径,表示从文件系统的当前目录开始寻址;b)父目录与子目录之间用“\”分符,“\”后面的目录是子目录,其父目录在“\”之前。
c)文件名应放在文件寻址路径之后,相对路径文件寻址路径默认为文件系统的当前目录d)使用进入目录函数char cd_folder(char * foldername,char mode)可改变文件系统的当前目录e)路径实例--“c:\dos\program files\arv.c”表示寻址c盘根目录,dos子目录,programfiles子目录的文件avr.cf)路径最大长度占用字节数不超过260,如路径”c:\programfiles\system32\.....\Jsmart Memory Stick AVR”占用字节数不能超过260;相对路径如” system32\.....\Jsmart Memory Stick A VR”加上当前目录之和占用字节数不超过260g)文件寻址路径不区分大小写5.源程序文件规范1)fat.c—file system 源代码2)fat.h—file system include文件3)Fat_cfg.h—file system 配置文件*.h4)Types.h—数据类型重定义文件5)Flash_management_sys.h—Sector读写include文件6.其它1)兼容FAT16文件系统,长文件名,最大路径长度260个字节,符合Microsoft Longfilenamespecification。
2)可移植于各种平台,只需编写sector驱动驱动,共计两个函数:1)read_flash_sector() 2)write_flash_sector()。
3)文件缓冲功能:1)读文件时,读位置在文件缓冲区内,则可直接读文件缓冲区,不需要读物理磁盘;文件缓冲区大小可使用编译宏EnableFileBuf,TotalFileBUFsQTYeachFCB,FileBUFSize来控制。
4)可同时打开多个文件;最大打开文件数可使用编译宏MaximumFCB设定,MaximumFCB最大值限定为254。
5)文件保护功能:文件可同时打开多个FCB,而只有其中一个FCB可以得到文件RD/WR权限。
该功能完全由文件系统代码来完成,上层应用无需编写额外代码6)所有编译宏存放于文件fat_cfg.h7.核心文件系统数据结构(仅供参考,实际定义于配置文件fat_cfg.h)1)分区数据结构—支持FAT16struct partition_BPB{char partition_id; //从C开始到Z结束char system_id; //分区类型0C-FAT32,06-FAT16 ect..long relative_sector; //分区起始扇区号long total_sector; //分区总扇区数int bytes_per_sector;//每扇区字节数char sector_per_cluster; //每簇扇区数int reserved_sector; //保留扇区数char numbers_of_FAT;//FAT副本数int boot_entries;//根目录项数,供FAT12/16使用int small_sector; //小扇区簇char media_descriptor; //媒体描述符int sectors_per_FAT; //每FAT扇区数,供FAT12/16使用int sectors_per_track; //每道扇区数int number_of_head; //磁头数long hidden_sectors; //隐藏扇区数long large_sector;//总扇区数,包含FAT32总扇区数long sector_per_FAT32;//每FAT扇区数,供FAT32使用int externded flag;// 扩展标志,供FAT32使用int file_system_version; //文件系统版本long root_cluster_number;//根目录簇号int file_system_information_sectornumber; //文件系统信息扇区号int copy_of_boot_sector;//备份引导扇区char reserved[12];//保留,,供FAT32使用};2)文件数据结构—支持FAT16struct file_{char filename[256];//支持长文件名char file_extention[3]; //文件扩展名char file_attribute;//属性char reserved;char create_time_10ms;//创建时间的10毫秒位int file_created_time;//文件创建时间int file_created_date;//文件创建日期int last_access_date;//文件最后访问日期int first_cluster_number_high2bytes; //文件首簇号高16位int recent_modified_time;//文件最近修改时间int recent_modified_data;//文件最近修改日期int first_cluster_number_low2bytes; //文件首簇号低16位long file_length;//文件长度3)Core数据结构struct core_{current_folder[256];//存放当前目录char file_openned_flag;//标记struct file_已打开}8.文件读写类函数1)自动格式化FAT16文件系统函数FAT16_filesystem_autoformat()—该函数在U盘启动时运行,它首先会读取Flash 0扇区的MBR,判断MBR有效标记0x55aa,如果MBR 有效标记不是0x55aa,该函数将把Flash自动格式化成FAT16文件系统;可以看出,一旦起用了自动格式化处理,Flash上原有的数据将全部丢失,因此出于安全的考虑,建议慎用该函数。
2)FAT文件系统初始化函数char FAT_filesystem_initialiation()—该函数是在U盘启动时运行的,完成的功能是将Flash中默认的第一个分区的信息读入struct partition_BPB中,和初始化struct CORE,为下面的文件类读写函数运行做准备,该函数的原型定义如下:3)建立文件函数u8 create_file(u8 * filename)—该函数在文件系统中建立一个文件,文件名及其路径通过形式参数char *filename传递;4)建立目录函数u8 create_floder(u8 * foldername)—该函数功能在当前目录下建立一个子目录,目录名通过形式参数char *foldername传递;5)重命名文件函数u8 rename_file(u8 * oldfilename,u8 * newfilename)—该函数的功能是将文件系统中的一个文件进行重命名,原文件名通过参数char * oldfilename传递,新文件名通过参数char * newfilename传递;6)打开文件函数u8 open_file(u8 * filename)—该函数用于打开文件系统中的一个文件,文件名通过参考char * filename传递,文件打开成功,返回文件系统为当前文件分配的FCBsn(FCB sequential number),或0xff—文件打开错误,这种情况下,建议使用close_file关闭一个已打开的文件后再尝试打开文件。
7)关闭文件函数u8 close_file(u8 FCBsn)—该文件用于关闭一个已打开的文件,并释放文件当前占用的FCB,FCB的sequential number由FCBsn指定。
8)进入目录函数u8 cd_folder(u8 * foldername)—该函数用于改变文件系统的当前目录,同时它将修改Core数据结构current_folder[256];进入目录名由参数char * foldername 传递。
函数有两种操作模式由参数char mode传递,其中:1)参数mode= 0:为进入子目录模式;2)参考mode=1返回上一层父目录模式;9)设定文件当前位置函数u8 f_seek(u8 FCBsn, s32 offset, u8 origin)—该函数用于设定文件读写函数的当前位置;FCBsn -文件句柄由打开文件时即使用open_file函数得到;offset--相对于origin规定的偏移位置量;origin 指针移动的起始位置,可设置为以下三种情况:SEEK_SET(0) 文件开始位置SEEK_CUR(1) 文件当前位置SEEK_END(2) 文件结束位置;10)读文件函数u16 read_file(u8 FCBsn,8* buffer, u16 length)—该函数可以完成从已打开文件(FCBsn --文件句柄由调用open_file函数得到)当前位置读取指定长度的数据,放入指定缓冲区buffer中,读取文件offset由函数fseek首先设置,读取长度由参数u16 length传递,缓冲区首地址由参数u8 * buffer传递,该函数的返回值是成功读取的字节数;11)写文件函数u16 write_file(u8 FCBsn,u8* buffer, u16 length)- 该函数将指定缓冲区buffer指定长度的数据写入已一个打开文件的当前位置,写文件的位置由函数fseek 首先设置,写长度由参数int length指定,缓冲区首地址由参数char* buffer指定,该函数的返回值为成功读取的字节数;12)目录枚举函数u8 folder_enumeration(u8 *return_string,u8 mode,u8 *ATTR)—该函数可以枚举当前目录下所有的文件与目录,调用一次将返回一个文件项或目录项,同时定义有二种枚举模式,mode(0)-复位至第一个文件项或目录项开始枚举,mode(1)-继续上一枚举后的目录项,所有与模式相关的信息由文件系统的core来维护,对于基于文件系统的上层软件完全透明;枚举模式由参数char mode传递,缓冲区首地址由参数u8 *return_string指定,return_string返回的是文件或目录的绝对路径名,例如“c:\long file name\test.img”;返回文件目录的类型由u8 *ATTR传递,其值即为当前返回的文件或目录directory entry的attribute字段;另外目录枚举采用逐个枚举的原因是一般单片机的内存有限,如果一次性枚举目录下所有的文件的话,可能会造成RAM溢出的情况;13)DISK枚举函数u8 disk_enumeration(u8 *return_string,u8 mode,u8* ATTR)—该函数可以枚举DISK下所有的文件与目录,调用一次将返回一个文件项或目录项,同时定义有二种枚举模式,mode(0)-复位至第一个文件项或目录项开始枚举,mode(1)-继续上一枚举后的目录项,所有与模式相关的信息由文件系统的core来维护,对于基于文件系统的上层软件完全透明;枚举模式由参数char mode传递,缓冲区首地址由参数u8 *return_strin传递,,return_string返回的是文件或目录的绝对路径名与目录枚举函数folder_enumeration一致。