Библиотека FatFS: FATFS |
![]() |
Добавил(а) 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 - оригинал статьи на английском языке. |