ff_format.h
FF_Error_t FF_Partition( FF_Disk_t *pxDisk, FF_PartitionParameters *pxFormatParameters );
媒体是用于存储文件的物理设备。适用于
嵌入式文件系统的媒体的示例包括 SD 卡,
固态磁盘、NOR 闪存芯片、NAND 闪存芯片和 RAM
芯片。
媒体不能用于保存 FreeRTOS-Plus-FAT 文件系统,直至它
被
分区。
将媒体划分为多个单元,每个单元
被称为一个分区。然后,可以对每个分区进行
格式化
以保存其文件系统。
通过一个
FF_PartitionParameters 类型结构体对媒体分区方法进行描述,如下所示。若要创建用于填充媒体上所有可用空间
的单个分区,只需将
结构体的 xSizes 和 xPrimaryCount 保留为零。
typedef enum _FF_SizeType
{
eSizeIsQuota,
eSizeIsPercent,
FF_Size_Sectors,
} eSizeType_t;
typedef struct _FF_PartitionParameters
{
uint32_t ulSectorCount;
uint32_t ulHiddenSectors;
uint32_t ulInterSpace;
BaseType_t xSizes[ FF_MAX_PARTITIONS ];
BaseType_t xPrimaryCount;
eSizeType_t eSizeType;
} FF_PartitionParameters;
The FF_PartitionParameters and associated types
参数:
pxDisk
|
描述被分区的媒体的 FF_Disk_t 结构体
。 |
FF_FormatParameters
|
指针,指向描述如何对媒体进行分区的
结构体。 |
返回:
如果媒体分区成功,则返回 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.