ff_format.h
FF_Error_t FF_Format( FF_Disk_t *pxDisk,
BaseType_t xPartitionNumber,
BaseType_t xPreferFAT16,
BaseType_t xSmallClusters );
媒体是用于存储文件的物理设备。 适用于
嵌入式文件系统的媒体的示例包括 SD 卡,
固态磁盘、NOR 闪存芯片、NAND 闪存芯片和 RAM
芯片。
媒体不能用于保存 FreeRTOS-Plus-FAT 文件系统,直至它
被分区。
将媒体划分为多个单元,每个单元
被称为一个分区。 然后,可以对每个分区进行格式化
以保存自己的文件系统。 分区可以从外部进行格式化
(例如,Windows 可以格式化 SD 卡),或使用 FF_Format()
函数。
FF_Format() 将动态确定要使用的 FAT 类型和
簇大小。 簇大小将与簇计数相关,而簇
计算和 FAT 类型相关。 xPreferFAT16 和 xSmallClusters 参数
允许指定首选项。 例如,对于小 RAM 磁盘
将两个参数都设置为 true 以使用 FAT16 与小簇,对于
大 SD 卡,则将两个参数都设置为 false 以使用 FAT32 和
大簇。 较大的簇可以更快被访问,而较小的簇
浪费更少的空间,因为它们在文件末尾会有较少的
未使用块。
参数:
pxDisk
|
描述媒体的 FF_Disk_t 结构体,
该媒体包含要格式化的分区。
|
xPartitionNumber
|
要格式化的媒体上的分区数。
分区编号从 0 开始。
|
xPreferFAT16
|
如果可能,设置为 pdTRUE 以使用 FAT16,否则
使用 FAT32。
|
xSmallClusters
|
如果可能,设置为 pdTRUE 以使用小簇,
否则使用大簇。 当设置为 pdFALSE 时,
将尽可能选择最大的簇大小。 实际
尺寸将取决于所使用的 FAT 类型。
|
返回:
如果媒体格式化成功,则返回 FF_ERR_NONE。
如果媒体无法格式化,则返回错误代码。
FF_GetErrMessage() 将错误代码转换为错误描述。
用法示例:
#define HIDDEN_SECTOR_COUNT 8
#define PRIMARY_PARTITIONS 1
#define PARTITION_NUMBER 0
static FF_Error_t prvPartitionAndFormatDisk( FF_Disk_t *pxDisk )
{
FF_PartitionParameters xPartition;
FF_Error_t xError;
memset( &xPartition, 0x00, sizeof( xPartition ) );
xPartition.ulSectorCount = pxDisk->ulNumberOfSectors;
xPartition.ulHiddenSectors = HIDDEN_SECTOR_COUNT;
xPartition.xPrimaryCount = PRIMARY_PARTITIONS;
xPartition.eSizeType = eSizeIsQuota;
xError = FF_Partition( pxDisk, &xPartition );
FF_PRINTF( "FF_Partition: FF_Format: %sn", FF_GetErrMessage( xError ) );
if( FF_isERR( xError ) == pdFALSE )
{
xError = FF_Format( pxDisk, ramPARTITION_NUMBER, pdTRUE, pdTRUE );
FF_PRINTF( "FF_RAMDiskInit: FF_Format: %sn", FF_GetErrMessage( xError ) );
}
return xError;
}
Using the FF_Partition() and FF_Format() functions to partition the disk, then format a partition
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.