Добавил(а) microsin
|
FATFS
Структура FATFS (file system object, FSO, объект файловой системы) удерживает в себе динамическую рабочую область отдельных логических дисков. Программа приложения регистрирует/дерегистрирует FSO для модуль FatFs вызовом функции f_mount. Инициализация диска осуществляется при первом доступе к файловой системе после f_mount или смены носителя (media change). Программа приложения не может менять ни одно из полей структуры FATFS.
typedef struct {
BYTE fs_type; /* Подтип FAT (0: не смонтировано) */
BYTE drv; /* Физический номер диска */
BYTE csize; /* Секторов на кластер (1, 2, 4 ... 128) */
BYTE n_fats; /* Количество копий FAT (1, 2) */
BYTE wflag; /* win[] dirty flag */
BYTE fsi_flag; /* fsinfo dirty flag */
WORD id; /* ID монтирования файловой системы */
WORD n_rootdir; /* Количество элементов директории root (FAT12/16) */
#if _MAX_SS != 512
WORD ssize; /* Размер сектора (512, 1024, 2048, 4096) */
#endif
#if _FS_REENTRANT
_SYNC_t sobj; /* Идентификатор объекта синхронизации */
#endif
#if !_FS_READONLY
DWORD last_clust; /* Последний выделенный кластер */
DWORD free_clust; /* Количество свободных кластеров */
DWORD fsi_sector; /* сектор fsinfo (FAT32) */
#endif
#if _FS_RPATH
DWORD cdir; /* Кластер текущей директории (0: root) */
#endif
DWORD n_fatent; /* Количество записей FAT (= количество кластеров + 2) */
DWORD fsize; /* Секторов на FAT */
DWORD fatbase; /* Начальный сектор области FAT */
DWORD dirbase; /* Начальный сектор области корневой директории (FAT32: номер кластера) */
DWORD database; /* Начальный сектор области данных */
DWORD winsect; /* Текущий сектор, появляющийся в win[] */
BYTE win[_MAX_SS]; /* Окно доступа к диску для Directory, FAT (и для Data в конфигурации tiny) */
} FATFS;
[Ссылки]
1. FATFS - оригинал статьи на английском языке. |