Функция f_mount запускает/останавливает файловую систему (file system object) модуля FatFs.
FRESULT f_mount (
FATFS* fs, /* [IN] указатель на объект файловой системы */
const TCHAR* path, /* [IN] Номер логического диска */
BYTE opt /* [IN] Опция инициализации */
);
Параметры
- fs
- Указатель на рабочую область (file system object, объект файловой системы), которая должна быть зарегистрирована или очищена (очистка произойдет, если указать здесь NULL).
- path
- Номер логического диска (0-9) для регистрации/дерегистрации в рабочем окружении как ASCIIZ-строка (null-terminated строка). Строка без указанного номера означает диск по умолчанию (default drive).
- opt
- Опция инициализации. Если указать 0, то это отложенное монтирование, если 1 то это немедленное монтирование и проверка на доступность тома FAT.
Возвращаемые значения
FR_OK, FR_INVALID_DRIVE, FR_DISK_ERR, FR_NOT_READY, FR_NO_FILESYSTEM
Описание
Функция f_mount регистрирует/отменяет регистрацию объекта файловой системы (или рабочей области диска), используемого для обслуживания логического диска модуля FatFS. При этом выполняется следующее:
1. Определяется логический диск (logical drive), на который указывает path.
2. Очищает и отменяет регистрацию рабочей области диска.
3. Очищает и регистрирует новую рабочую область диска.
4. Немедленно выполняет процедуру монтирования диска, если это указано опцией opt ==1.
Объект файловой системы (file system object) это специальная рабочая область данных (набор неких переменных), которая нужна для обслуживания каждого логического диска. Каждому логическому диску обязательно должен быть предоставлен такой объект ДО вызова любой функции FatFS для этого диска, за исключением функции f_fdisk. Чтобы отменить регистрацию рабочей области, укажите для параметра fs значение NULL, после чего рабочая область может быть отброшена за ненадобностью.
Если в параметрах не указано немедленное принудительное монтирование (opt ==0), то эта функция в любом случае вернет успешный результат (FR_OK) независимо от состояния физического диска: работает специальная функция отложенного монтирования (delayed mount feature). В этом случае произойдет только очистка (деинициализация) указанной рабочей области, и регистрация её адреса во внутренней таблице, и не произойдет никакой физической активности, связанной с диском (к нему не будет обращений по шине). Функция отложенного монтирования может быть также использована для принудительной отмены инициализации рабочей области логического диска. Реальное обращение к физическому диску, связанное с монтированием (поиск тома FAT и инициализация его рабочей области), произойдет позже, когда будет вызвана какая-либо функция доступа к файлу, либо когда будут выполнены одно или оба условия:
• Объект файловой системы не инициализирован. Он очищен вызовом функции f_mount.
• Физический диск не инициализирован. Его инициализация была отменена системным сбросом или извлечением носителя данных.
Если при принудительном монтировании (opt ==1) произошла ошибка, то это означает, что был успешно регистрирован объект файловой системы, однако том в настоящий момент не готов для использования. Попытка монтирования будет произведена также позже, если будут вызваны функции для доступа к файлу.
Если на слое доступа к диску низкого уровня (disk I/O) не реализовано детектирование смены носителя данных, то программа приложения нуждается в выполнении функции f_mount всякий раз после каждого извлечения носителя - чтобы принудительно очищать file system object.
Краткая информация (QuickInfo)
Функция доступна всегда, независимо от заданной конфигурации FatFS.
См. также
f_open, FATFS