在 STM32Cube 上开发 FatFs 相关应用
前言
STMCubeTM 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品组合。
STM32Cube 1.x 版包括:
• 图形软件配置工具 STM32CubeMX,可通过图形向导生成 IAR/KEIL 工程。
• 针对每个系列提供综合的嵌入式软件平台 (即 STM32CubeF4 用于 STM32F4 系列)
– STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性
– 一套一致的中间件,比如 RTOS、 USB、 TCP/IP、图形
– 所有嵌入式软件实用工具均配备一套完整的示例。
文件系统是指文件命名的方式,以及文件的逻辑存储位置,以便进行保存和检索。它的主要目标是管理文件数据的访问,以及管理包含这些文件的设备的可用空间。文件系统可帮助用户确保可靠性并以高效的方式来组织数据。
本用户手册的目标读者为在 STM32 微控制器上使用 STM32Cube 固件的开发者。它完整描述了如何使用具有通用 FAT 文件系统 (FatFs)的 STM32Cube 固件组件;本用户手册还提供了一组示例说,它们基于通用 FatFs 所提供的 API。
关于所使用的 FatFs 固件组件版本,请参考 STM32Cube 固件包的发布文档。
本文档适用于所有 STM32 器件;然而为了简洁起见,以 STM32F4xx 器件和 STM32CubeF4作为参考平台。如需了解更多关于 STM32 器件所支持的物理介质盘和实现示例,请参考相关STM32Cube 固件包中所提供的 readme 文件。
缩略语与定义
1 FAT 文件系统概述
1.1 FAT 概述
文件分配表 (FAT)文件系统是由比尔盖茨与麦克唐纳所开发。它是一种格式,某种程度上也算是软件,它用于在存储设备 (比如磁盘驱动或内存)上保存和组织文件。它用于方便文件与目录的访问。
FAT 文件系统提供一种途径来记录文件被创建或更改时的时间标记,并且提供了识别文件大小的方法。这套系统提供了保存文件其它属性的一套机制,比如文件是否只读,是否应在目录显示中隐藏,或者是否应在下一次磁盘备份中归档。
FAT 文件系统特别适合消费电子产品中的移动闪存介质,比如数码相机、媒体播放器和闪存盘等。
FAT 文件系统可以在以下场合中带来帮助:
• 由于 FAT 文件系统具备向后兼容性,用户可以利用记忆棒或软盘在消费电子设备和采用过时操作系统的计算机之间传输文件。
• FAT 文件系统让用户能够快速删除电子设备上的文件,就像在专业广播媒介中那样。
• FAT16 或 FAT32 的文件系统版本均适用于硬盘卷。
另外,如果用户想要通过软盘访问硬盘卷上的数据 (往往指系统恢复工具)来引导计算机的话,这些版本也很有用处。
1.1.1 主引导记录
主引导记录 (MBR)位于设备物理起始位置上的一个或多个扇区。MBR 的引导区包含 DOS引导加载程序代码,该代码会在设备格式化后被写入 (否则不会被动态 C FAT 文件系统所使用)。引导区之后是分区表。分区表中含有四个 16 字节的条目,允许设备划分多达四个分区。
分区表条目中含有一些关键信息:分区类型 (动态 C FAT 可识别 FAT12 和 FAT16 的分区类型)以及分区的起始与结束扇区号。另外还有一个字段指明分区中的扇区总数。如果该数字为零,则对应的分区是空的可用分区。
|