SD卡实例分析fat32文件系统

目录

环境描述

分析过程

1.SD卡格式化

2.使用winhex打开sd卡

3.MBR分析

4.DBR分析

5.FAT表分析

6.数据区

7.目录项

子目录的管理

问题记录

1. 每次创建时目录项FDT会多出内容

2. 格式化卡之后,会有多余的FFFFFF0F

参考文章:


环境描述

工具:winhex、32G SD卡一张

注:可以使用diskgenius格式化工具,功能更强大

分析过程

1.SD卡格式化

首先使用windows自带的工具将sd卡格式化

注:这里的分配单元大小实际是簇大小

2.使用winhex打开sd卡

使用winhex打开sd卡,我们想要看到MBR,所以这里选择物理驱动器

3.MBR分析

MBR由前512字节(446MBR+64DPT+55AA),这里显示的都是小端序

我们这里主要看DPT的信息, 分区表由4项组成,每项16个字节(Byte).共4×16 = 64字节(Byte)。

本次我们只分了一个分区,可以看出分区表其他都是0

存贮字节位

内容及含义

第1字节

引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。

00

第2、3、4字节

本分区的起始磁头号、扇区号、柱面号。其中:

磁头号——第2字节;

扇区号——第3字节的低6位;

柱面号——为第3字节高2位+第4字节8位。

20 --32磁头

21 --33扇区

00 --0-柱面

第5字节

分区类型符。

00H——表示该分区未用(即没有指定);

06H——FAT16基本分区;

0BH——FAT32基本分区;

05H——扩展分区;

07H——NTFS分区;

0CH --- Win95 FAT32

0FH——(LBA模式)扩展分区(83H为Linux分区等)。

0C --Win95 FAT32

第6、7、8字节

本分区的结束磁头号、扇区号、柱面号。其中:

磁头号——第6字节;

扇区号——第7字节的低6位;

柱面号——第7字节的高2位+第8字节。

FE--磁头号

FF--63扇区号

FF --1023柱面号

结束扇区为(1023柱面,254磁头,63扇区)

第9、10、11、12字节

逻辑起始扇区号 ,本分区之前已用了的扇区数。

00080000,反过来就是00000800即2048

为该分区(起始逻辑扇区号与逻辑0扇区号之差。表示该分区前面已有2048个扇区,这2048个扇区为系统隐藏扇区。

第13、14、15、16字节

本分区的总扇区数。

FF37A403,反过来就是03A437FF,即61093887

表明该分区有61093887个扇区。即(0柱面,1磁头,1扇区)至(1023柱面,254磁头,63扇区)共有61093887个扇区。

1个扇区512字节,所以该分区大小为61093887/2/1024/1024=29G

从winhex分析看出和我们得出的结论一致:

4.DBR分析

给硬盘分区产生MBR→格式化硬盘分区产生DBR,所以先有MBR,然后才有DBR,也就是DBR存在于逻辑分区的位置

FAT32文件系统的DBR与FAT16的DBR很类似,也由5部分组成,分别为跳转指令、OEM代号、BPB、引导程序和结束标志

跳转指令:EB 58 90:本身占2字节它将程序执行流程跳转到引导程序处

OEM代号:这部分占8字节,其内容由创建该文件系统的OEM厂商具体安排。 当前DBR中的OEM代号为“MSDOS5.0”,说明这个FAT32分区是由微软的Windows 2000以上的操作系统格式化创建的

BPB: FAT32的BPB从第DBR的第12(0BH偏移处)个字节开始,占用79字节,记录了有关该文件系统的重要信息,其中各个参数的含义见下表

这些信息太杂乱,我们借助winhex的(查看==》模板管理器)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103C8T6是一款常用的32位微控制器芯片,它具有强大的性能和丰富的功能,并且可广泛应用于各种嵌入式系统中。SD是一种常见的存储介质,它具有小巧、便携和容量大等优点。FAT文件系统是一种常用的文件系统,广泛应用于各种嵌入式设备中,包括SD。 在STM32F103C8T6中使用SDFAT文件系统可以实现嵌入式设备的数据存储和读取功能。首先,我们需要将SD与STM32F103C8T6进行连接,通过SPI或SDIO总线接口进行数据通信。然后,我们需要在嵌入式系统中添加FAT文件系统的支持,以便能够对SD进行格式化和文件读写操作。 在使用SD之前,我们需要初始化SD接口,并进行SD的识别和初始化。然后,我们可以对SD进行格式化操作,以便在SD中创建FAT文件系统。格式化完成后,我们可以使用文件系统的操作函数对SD中的文件进行读写操作。例如,我们可以使用文件操作函数创建、打开、读取和写入文件,并可以进行文件的复制、删除和重命名等操作。 在使用STM32F103C8T6和SD+FAT文件系统时,需要注意以下几点。首先,SD的连接要正确可靠,并确保SD的供电电压和信号电平与STM32F103C8T6兼容。其次,需要合理管理SD的存储空间,避免溢出和数据丢失。此外,还需要正确处理SD的插入和拔出事件,以免对SD造成损坏。 总之,通过在STM32F103C8T6上使用SDFAT文件系统,我们可以实现嵌入式设备的数据存储和读取功能,从而提高设备的可扩展性和实用性。这种组合应用在物联网、工业控制和智能家居等领域有着广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值