导航:首页 > 文件目录 > 单片机fat32文件系统

单片机fat32文件系统

发布时间:2023-01-20 11:28:49

❶ FAT32格式是什么意思

FAT32格式指的是文件分配表是采用32位二进制数记录管理的磁盘文件管理格式,因FAT类文件系统的核心是文件分配表,命名由此得来。FAT32格式优点是稳定性和兼容性好,能充分兼容Win 9X及以前版本,且维护方便。

对于使用FAT32文件系统的每个逻辑盘内部空间又可划分为三部分,依次是引导区、文件分配表区、数据区。引导区和文件分配表区又合称为系统区,占据整个逻辑盘前端很小的空间,存放有关管理信息。数据区才是逻辑盘用来存放文件内容的区域,该区域以簇未分配单位来使用。



相关信息

文件分配表区(FAT区)是FAT文件系统管理磁盘空间和文件的最重要区域,它保存逻辑盘数据区各簇使用情况信息,采用位示图法来表示,文件所占用的存储空间及空闲空间的管理都是通过FAT实现的。FAT区共保存了两个相同的文件分配表,便于第一个损坏时,还有第二个可用。

FAT表的大小由该逻辑盘数据区共有多少簇所决定,取整数个扇区。数据区中每簇的使用情况通过查找其在FAT表中相应位置的填充值可知晓。FAT32表中每簇占用四个字节(32位)表示,开头的8个字节(0H-07H字节)用来存放该盘介质类型编号了,因此有效簇号从02H开始使用。

❷ 硬盘格式FAT和FAT32的区别

FAT和FAT32是两种分区格式。
FAT主要征对是DOS系统和单片机系统。
FAT32主要征对的是windows系统,它是FAT的一个升级。其支持图形界面。
很多朋友都了解,FAT32分区格式有32G容量限制,但在实际应用中,很多朋友发现,使用FAT32分区格式分了大于32G的分区,却一点问题没有,这究竟是怎么一回事呢?
经过仔细了解,原来WINDOWS对FAT32的支持最大可以达到单个分区2T,最小512M,但为什么很多资料却明白的写明WINDOWS最大只支持32G的FAT32,这原来是由簇的大小确定的,使用越小的簇,存储效率越高,更能有效的管理硬盘空间!举个例,同样2G的硬盘分区,FAT和FAT32的簇大小分别是32KB和4KB,所以FAT32要优于FAT,而簇大于32KB的话,硬盘的效率会非常低,浪费也很大,对文件的安全性也不好,所以FAT最大只支持2G的硬盘空间(WIN2K和WINXP可以分4G的FAT分区)!
FAT和FAT32主分区与簇的大小汇整如下,我们可仔细做个比较:

分区大小 FAT16簇大小FAT32簇大小
16MB-32MB 2KB 不支持
32MB-127MB 2KB 512bytes
128MB-255MB 4KB 512bytes
256MB-259MB 8KB 512bytes
260MB-511MB 8KB 4KB
512MB-1023MB 16KB 4KB
1024MB-2047MB32KB 4KB
2048MB-8GB 不支持 4KB
8GB-16GB 不支持 8KB
16GB-32GB 不支持 16KB
32GB以上 不支持 32KB

从上表可以看出,FAT32分区超过32G过后,簇的大小也超过了32KB,和FAT超过2G时一样,效率和管理也大打折扣,所以尽量不要使用超过32G以上的FAT32分区,虽然不支持超过4GB的单个文件也是一个原因!

而Win 2000的NTFS文件系统,当分区的大小在2G以下时,簇的大小都比相应的FAT32簇小。当分区的大小在2G以上时(2G~2T),簇的大小都为4KB。相比之下,NTFS可以比FAT32更有效地管理磁盘空间,最大限度地避免了磁盘空间的浪费。

❸ 基于单片机FAT32文件系统实现MP3功能。

你听声音判断有无退出? 看来是不能在线调试,也没有示波器!这样弄起来难度比较高哟!

如果一直跳不出znFAT_ReadDataX()那么可以肯定play也没有被更新到,那么你那个外部中断也就没有被触发罗!查查为什么不能触发吧?

❹ FAT32 文件系统 目录 如何 存储

你用NTFS
能分小写的卷标吗
?
如果不能那也就是一样的道理
fat32这个文件系统

一簇

多少我忘了
但LINUX的类似于簇的单位是4K
如果你有一个5K的文件那么那一K就会又占一簇
而那个簇
就不能被别人别的文件用了

❺ 读写FAT32文件系统的单片机程序

由于单片机种类不一,代码也不同,我建议你了解、认识FAT32文件系统,把它烂在心里,只有这样才能完成各种任务。

❻ 文件系统:FAT32,是什么意思

FAT32

WINDOWS
系统中分区格式的一种。该格式采用
32
位的文件分配表(FILE
ALLOCATION
TABLE),突破了
FAT16
对每一个分区的容量只有2
GB的限制。由于FAT32分区内不能够存放大于
4GB
的单个文件,目前已被性能更好的NTFS格式分区所代替。

❼ 一、嵌入式之FAT32文件系统(1)

参考文件

FAT32文件系统有几个基本的几个概念:

先拿一个真实的4G SD卡分析数据:

使用winhex物理方式查看,截一部分图:

全称Master Boot Record,即主引导记录。
主引导记录分为两个部分,一个部分是前446字节,另外一个部分是后64字节。

前446个字节,一般取值为0,不过有的时候也会有其他的设置值。

这部分也叫DPT,全称Disk Partition Table,即磁盘分区表。
磁盘分区表有4个区,每个区有16字节,总体是64字节。因此,MBR字节数为512字节,刚好是一个扇区的数量。

DPT的4个部分,每一个部分的16字节含义如下表:

00 82 03 00 0B E6 DC CA 00 20 00 00 00 E0 ED 00(16进制)

这里,就贴出来上面截图的数据内容。(我们使用的是小字节序)
0x00 :
通常的取值。

0x82 :
开始磁头。

0x03 0x00 :
实际为0x0003,按照2进制编码为0000 0000 0000 0011。
那么开始扇区为:0。
开始柱面为:3。

0x0B :
分区类型,为Win95 FAT32类型。

0xE6 :
结束磁头为230。

0xDC 0xCA:
实际为0xCADC,按照2进制编码为1101 1100 1100 1010。
那么结束扇区为:55。
结束柱面为:220。

0x00 0x20 0x00 0x00 :
实际为:0x00002000,也就是8192,为分区的开始扇区地址。那么我们后面就可以从这里去找DBR。

0x00 0xE0 0xED 0x00 :
实际为:0x00EDE000,也就是15589376,为分区的总扇区数。
从这里其实可以算出SD卡的容量。
也就是:
分区大小:15589376x512 = 7981760512。这个值大约是7.612G。
从物理0地址到起始地址:8192*512 = 4194304
那么总容量为:7981760512+4194304 = 7985954816。

该部分包括一个叫BPB的内容。

先截出DBR部分的实际SD卡上的内容:

在WinHex下使用逻辑磁盘打开FAT32文件系统的存储介质来看,偏移位置与表示的含义有如下表所示:

25字节的分区块(BPB):

扩展分区BPB:

按照定义,将实际的图 MBR.png分析如下:
从偏移为0x0BH地址开始:
00 02 10 96 04 02 00 00 00 00 F8 00 00 3F 00 FF 00 00 20 00 00 00 E0 ED 00 B5 1D 00 00

00 02 :
即0x0200,表示扇区字节数,也就是512字节。

10:
即0x10,每簇扇区数为16。也就是16 512=8 1024=8K。

96 04:
即0x0496,保留扇区数为1174。

02:
即0x02,FAT表份数为2。

00 00:
即0x0000,为保留。

00 00:
即0x0000,为保留。

F8:
即为本地硬盘。

00 00:
即0x0000,为保留。

3F 00:
即0x003F,即每磁道扇区数为63。

FF 00:
即0x00FF,即磁头数为255。

00 20 00 00:
即0x00002000,即隐藏扇区数为8192。

00 E0 ED 00:
即0x00EDE000,即磁盘总扇区数为15589376。

B5 1D 00 00 :
即0x001DB5,即FAT表占用扇区数为7605。

好了,根据这些内容,可以计算出两个参数:

FAT1的开始扇区 = 分区开始扇区+ 保留扇区=8192+1174 = 9366。
FAT2的开始扇区 = FAT1的开始扇区+FAT表占用的大小 = 9366 + 7605 = 16971。
首目录簇 = FAT1的开始扇区+FAT的表份数 x FAT表占用的大小=9366+2*7605 = 24576。

继续追踪,找到首目录簇中的已经新建的文件。

现在,先解析粘贴出来的每个部分的内容的含义。

具体内容下面的FAT中会说。

a.txt部分的解析:
41 20 20 20 20 20 20 20 54 58 54 20 18 8B 2A 90
96 4A A1 4A 00 00 0F 8C A1 4A 03 00 10 00 00 00

41 20 20 20 20 20 20 20:
表示文件名:“A TXT”

20 :
表示的是文件的属性。归档。

18:
为系统保留。

8B:
创建时间的10ms位。也就是1390ms。

2A 90:
也就是0x902A,换成2进制为1001 0000 0010 1010 。表示的是创建时间。
细分如下:

则时间值为:
时:0x12 = 18,
分:0x1 = 1,
秒:0xAx 2s + 1390ms= 10x 2s + (1390ms) = 21s,
所以创建时间为18:01:21。

96 4A:
也就是0x4A96,换成2进制为0100 1010 1001 0110,表示的是创建日期。
细分如下:

则日期值为:
年:1980+0x25 = 2017,
月:0x4 = 4,
日:0x16= 22,

所以,创建日期为2017年4月22日。

A1 4A:
也就是0x4AA1,换成2进制为0100 1010 1010 0001,表示的是最后访问日期。
则日期为:
年:1980+0x25 = 2017,
月:0x5 = 5,
日:0x1= 1,
所以,最后访问日期为2017年5月1日。

00 00:
起始簇高16位。

0F 8C:
也就是0x8C0F,换成2进制为1000 1100 0000 1111,表示的是最近修改时间。

时:0x11 = 17,
分:0x20 = 32,
秒:0xf x 2 = 30s,
所以最近修改时间为17:32:30。

A1 4A:
也就是0x4AA1,换成2进制为0100 1010 1010 0001,表示的是最近修改日期。
则日期为:
年:1980+0x25 = 2017,
月:0x5 = 5,
日:0x1= 1,
所以,最近修改日期为2017年5月1日。

03 00:
即0x0003,表示起始簇低16位,也就是说,起始簇高位与起始簇低位相或,得到0x00000003,起始簇为3。

10 00 00 00:
即0x00000010,表示文件数据长度,也就是16字节。

分析完a.txt,b.txt也一样分析即可。

从而可以得到的是,a.txt的内容位置在:(3-2)*16+24576 = 24592上。
后使用winhex进行验证,确认是正确的。

文件分配表(FAT),是FAT文件系统中用于磁盘数据索引和定位而引进的一种链式结构。在FAT文件系统中,文件的存储依照FAT表制定的簇链式数据结构来进行。同时,FAT文件系统将组织数据时使用的目录也抽象为文件,以简化对数据的管理。

如DBR所述,偏移0EH处存储了保留扇区的个数,而保留扇区数指的就是当前分区内DBR到FAT表之间的所有扇区的个数(包括DBR但不包括FAT表)。据此,可以定位FAT表所在的起始偏移位置了。

如DBR所述,偏移24H处存储了保留扇区的个数,知道FAT2是紧邻FAT1的。那么FAT2表的位置为:FAT1的起始偏移地址+FAT1的大小。

FAT表由一系列大小相等的FAT表项组成,它有如下特性:

在FAT32文件系统中,根目录的位置不再硬性地固定,可以存储在分区内可寻址的任意簇内,不过通常根目录是最早建立的(格式化就生成了)目录表。所以,我们看到的情况基本上都是根目录首簇紧邻FAT2,占簇区顺序上的第1个簇(即2号簇)。同时,FAT32文件系统将根目录当做普通的数据文件来看,所有没有了目录项数的限制,在需要的时候可以分配空簇,存储更多的目录项。

对于短文件名格式的目录项:

注意:*表示此字段在段文件目录项中,不可取值0FH。若取值为0FH,目录段为长文件名目录段。

0BH字段取值如下:

FAT32的一个重要的特点是完全支持长文件名。长文件名依然是记录在目录项中的。为了低版本的OS或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文件名寻址,也可以用短文件名寻址。不支持长文件名的OS或程序会忽略它认为不合法的长文件名字段,而支持长文件名的OS或程序则会以长文件名为显式项来记录和编辑,并隐藏起短文件名。

长文件名的实现有赖于目录项第12字节属性字节,当此字节的值为0FH时,支持长文件名的系统会将其当做长文件名的依据,而只支持短文件名的系统会认为是异常而忽略掉。系统将长文件名以13个字符为单位进行切割,每一组占据一个目录项。所以可能一个文件需要多个目录项,这时长文件名的各个目录项按倒序排列在目录表中,以防与其他文件名混淆。
长文件名中的字符采用unicode形式编码,每个字符占据2字节的空间。其目录项定义如:

阅读全文

与单片机fat32文件系统相关的资料

热点内容
照片文件名中的数字代表什么 浏览:44
cs6裁切工具 浏览:235
数据库超过多少数据会卡 浏览:858
CAD落图文件 浏览:125
怎样翻译文件内容 浏览:679
戴尔r910安装linux 浏览:69
有线电视升级失败 浏览:560
火绒安全把文件删掉了在哪里找 浏览:503
手机qq网络状态方框 浏览:225
哪里有文件纸袋 浏览:873
复制的东西能不能粘贴到空文件夹 浏览:876
酒店没有网络如何缴费 浏览:380
win10开机滚动很久 浏览:520
可对元数据实例进行的操作有什么 浏览:934
什么后缀的文件kit 浏览:295
word行书字体库下载 浏览:579
iosuc版本历史版本 浏览:14
电影字幕文件制作软件 浏览:723
windows10免密码登录 浏览:762
iphone5s跑步记步 浏览:978

友情链接