嵌入式开发-FAT32文件系统的存储机制及其在单片机上的实现.pdfVIP

  • 4
  • 0
  • 约2.18万字
  • 约 19页
  • 2018-05-30 发布于广东
  • 举报

嵌入式开发-FAT32文件系统的存储机制及其在单片机上的实现.pdf

FAT32 文件系统的存储机制及其在单片机上的实现 FAT32 文件系统您一定不会陌生,最多看到它是在 windows 操作系统里,但在一些嵌 入式产品(如手机、MP3 、MP4 等)中,也能看到它的身影。从某种意义上来讲,FAT32 文件系统是非常成功的,使我们可以脱离底层储存设备驱动,更为方便高效地组织数据。给 单片机系统中的大容量存储器(如 SD 卡、CF 卡、硬盘等)配以 FAT32 文件系统,将是非 常有意义的(如创建的数据文件可以在 windows 等操作系统中直接读取等)。 FAT32 本身是比较复杂的,对其进行讲解的最好方法就是实际演练。笔者手里持有一张 刚以 FAT32 格式化的 SD 卡,我们就围绕它来讲解 FAT32 的实现机理。 FAT32 分为几个区域,这里将用实例的方法对它们的结构与在文件存储中的功能进行详 细的剖析。 1、实例说明 此实例首先在一张空的 SD 卡(已被格式化为 FAT32 格式)上创建一个文本文 件,并在其中输入 20 个字符。再将它插入到单片机系统中,实现对这个文件的读 取,将文件内容输出在调试终端上。 2 、实现过程 1)格式化与创建文件 Windows 上的磁盘格式化与文件创建就不用多说了。如下图: DOS BOOT RECORD 操作系统引导记录区) 2 )DBR ( DBR 是我们进军 FAT32 的首道防线。其实 DBR 中的 BPB 部分才是这一 区域的核心部分(第12~90 字节为 BPB ),只有深入详实的理解了 BPB 的意义, 才能够更好的实现和操控 FAT32 。关于DBR 在 FAT32 中的地位就不多说了, 以下面实际的DBR 内 图所示: 上面的数据看起来杂乱不堪,无从下手,其实对我们有用的数据只不过 90 个字节(如图中彩色线标记的字节)。仅仅是这90 个字节就可以告诉我们关于 磁盘的很多信息,比如每扇区字节数、每簇扇区数、磁道扇区数等等。对于这 些信息的读取,只要遵循 DBR 中的字段定义即可。(比如图中紫色字段的两个 字节表示这张磁盘的每一个扇区有 512 个字节,具体的计算方法见下文) 字段定义如下表(BPB 后面的 422 个字节对我们的意义不大,表中省略): 字段名称 长度 含义 偏移量 jmpBoot 3 跳转指令 0 OEMName 8 这是一个字符串,标识了格式化该分 3 区的操作系统的名称和版本号 BytesPerSec 2 每扇区字节数 11 SecPerClus 1 每簇扇区数 13 RsvdSecCnt 2 保留扇区数目 14 NumFATs 1 此卷中 FAT 表数 16 RootEntCnt 2 FAT32 为 0 17 TotSec16 2 FAT32 为 0 19 Media 1 存储介质 21 FATSz16 2 FAT32 为 0 22 SecPerTrk 2 磁道扇区数

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档