Программирование Файловые системы Библиотека FatFS: f_mount Thu, October 10 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Библиотека FatFS: f_mount Печать
Добавил(а) microsin   

f_mount

Функция 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

f_mount

Функция f_mount запускает/останавливает рабочее окружение модуля FatFs.

 

FRESULT f_mount (
  BYTE  Drive,              /* Номер логического диска */
  FATFS*  FileSystemObject  /* Указатель на рабочее окружение */
);

Параметры

Drive
Номер логического диска (0-9) для регистрации/дерегистрации в рабочем окружении.
FileSystemObject
Указатель на рабочую область (work area, объект файловой системы) для регистрации.

Возвращаемые значения

FR_OK, FR_INVALID_DRIVE

Описание

Функция f_mount запускает/останавливает рабочее окружение (область) модуля FatFs. С помощью этой функции рабочее окружение должно быть предоставлено для каждого тома перед использованием любой другой файловой функции. Чтобы дерегистрировать рабочую область, укажите NULL для значения параметра FileSystemObject, и рабочая область будет отменена.

Эта функция всегда завершается успешно, независимо от текущего состояния диска. В этой функции не делается никаких попыток доступа к физическому носителю данных - только инициализируется указанная рабочая область, и регистрируется её адрес во внутренней таблице. Процесс монтирования тома выполняется при первом доступе к файловой системе, после вызова функции f_mount или изменения состояния физического носителя.

Краткая информация (QuickInfo)

Функция доступна всегда, независимо от заданной конфигурации FatFS.

См. также

FATFS

[Ссылки]

1f_mount - Register/Unregister a work area (оригинал статьи на английском языке).

 

Добавить комментарий


Защитный код
Обновить

Top of Page