Нашли опечатку?
Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.
|
Библиотека FatFS: модуль файловой системы FAT |
|
Добавил(а) microsin
|
FatFs является модулем простой файловой системы FAT (generic FAT file system), предназначенным для маленьких встраиваемых систем на микроконтроллерах (embedded systems).
FatFs написан на ANSI C и полностью разделен по уровням дискового ввода/вывода диска (disk I/O). Таким образом, модуль полностью не зависит от аппаратной архитектуры подключения носителя данных (карта памяти, жесткий диск, FLASH, SDRAM и т. п.) к микроконтроллеру, и может быть легко портирован на любой микроконтроллер и систему. Модуль хорошо подходит для микроконтроллеров нижней ценовой категории типа AVR, 8051, PIC, ARM, Z80, 68k и т. д., и портируется без всяких изменений. Для того, чтобы модуль заработал, нужно только предоставить низкоуровневый интерфейс ввода вывода (см. далее, Disk I/O Interface). Модуль Petit FatFs(см. [2]) также доступен как пример реализации такого ввода/вывода для 8-битных микроконтроллеров.
Возможности FatFS
- Поддержка файловой системы, совместимой с FAT Windows.
- Не зависит от платформы. Легко портируется на любую архитектуру.
- Очень малые затраты на код и рабочую область.
- Многочисленные опции конфигурации:
- Поддержка нескольких томов (Multiple volumes) - физических дисков и их разделов.
- Поддержка нескольких кодовых страниц ANSI/OEM, включая DBCS.
- Поддержка длинных имен (Long file name, LFN) в кодировке ANSI/OEM или Unicode.
- Поддержка со стороны операционных систем реального времени (RTOS, например FreeRTOS) и популярных библиотек (LUFA).
- Поддержка нескольких размеров сектора.
- Поддержка Read-only (только чтение), минимизация API, настройка буфера I/O и т. д. ...
- Низкоуровневый код доступа к карте поддерживает как карты стандарта SD, так и SDHC (причем одновременно). Правда, это не совсем относится к библиотеке FatFS, так как уровни доступа к носителю памяти разделены, но все равно упомянуть о поддержке SDHC необходимо, так как это очень полезная и востребованная возможность.
Интерфейс приложения (Application Interface)
Модуль FatFs предоставляет набор функций для приложения (API). Другими словами, в этом списке показано, как через модуль FatFs можно получить доступ к томам FAT.
- f_mount - регистрация/дерегистрация рабочей области
- f_open - открытие или создание нового файла (Open/Create)
- f_close - закрытие файла (Close)
- f_read - чтение файла (Read)
- f_write - запись в файл (Write)
- f_lseek - перемещение по файлу позиции чтения/записи, увеличение размера файла (Expand file size)
- f_truncate - обрезка файла (Truncate file size)
- f_sync - сброс кэшированных данных на физический носитель (Flush cached data)
- f_opendir - открыть директорию/папку (Open a directory)
- f_readdir - прочитать информацию об объекте директории
- f_getfree - получить количество свободных кластеров
- f_stat - получить информацию о состоянии файла (Get file status)
- f_mkdir - создать директорию/папку (Create a directory)
- f_unlink - удалить файл или директорию
- f_chmod - поменять атрибуты
- f_utime - поменять время/дату (Change timestamp)
- f_rename - переименовать/переместить файл или директорию (Rename/Move a file or directory)
- f_chdir - поменять текущую директорию (Change current directory)
- f_chdrive - поменять текущий диск (Change current drive)
- f_getcwd - запросить текущую директорию
- f_forward - перенаправить данные файла напрямую в поток
- f_mkfs - создать файловую систему на диске
- f_fdisk - поделить физический диск на разделы (логические диски)
- f_gets - прочитать строку
- f_putc - записать символ
- f_puts - записать строку
- f_printf - записать форматированную строку
- f_tell - получить текущее значение позиции чтения/записи файла
- f_eof - проверить на окончание данных файла (т. е. дошла ли позиция чтения до конца файла EOF, end-of-file)
- f_size - получение размера файла
- f_error - проверка - были ли ошибки при работе с файлом
Низкоуровневый интерфейс ввода/вывода диска (Disk I/O Interface)
Поскольку модуль FatFs спроектирован так, что полностью отделен от ввода/вывода на физический носитель, то для работы он нуждается в нескольких функциях для доступа к физической памяти, где хранятся данные файловой системы FAT (physical media). Если разрешена опция, связанная с операционной системой, то дополнительно нужны функции для работы с процессами/памятью (process/memory functions). Модуль низкоуровневого ввода/вывода не является частью модуля FatFs, и он должен быть предоставлен пользователем (в этом собственно и заключается основной процесс портирования на целевую систему). Примеры таких низкоуровневых модулей/драйверов можно найти в разделе Ссылки. Список функций низкоуровневого ввода/вывода:
Ссылки
Модуль FatFs является свободным программным обеспечением (free software), открытым для целей образования, исследования и разработки. Вы можете его использовать, модифицировать и/или распространять для персональных проектов или коммерческих продуктов под Вашей личной ответственностью и без каких-либо ограничений. Для подробностей обращайтесь к указаниям по применению (application note).
- FatFs User Forum "FatFs User Forum site:elm-chan.org"
- Прочитайте в первую очередь: FatFs module application note 6 сентября 2011
- Загрузка (Download): FatFs R0.09 | Обновления | Исправления 14 ноября 2011
- Загрузка (Download): Примеры проектов, использующих FatFs (AVR, PIC24, LPC2300, LPC1700, V850ES, H8/300H, SH-2A, RX62N, Win32 and Generic uC) 18 декабря 2011
- Загрузка (Download): FatFs R0.08b | R0.08a | R0.08 | R0.07e | R0.07c | R0.07a | R0.07 | R0.06 | < R0.06
- ARM-проекты от Martin THOMAS "Interfacing ARM controllers with Memory-Cards site:siwawi.arubi.uni-kl.de" (примеры для LPC2000, AT91SAM и STM32)
- Спецификация FAT32 от Microsoft: "Microsoft Extensible Firmware Initiative FAT32 File System Specification site:msdn.microsoft.com" (исходная документация на файловую систему FAT)
- Как использовать карты памяти MMC/SDC
- Benchmark 1 (тестирование скорости) (ATmega64/9.2MHz с MMC через SPI, HDD/CFC через GPIO)
- Benchmark 2 (LPC2368/72MHz с MMC через MCI)
- Видеоролик демо-приложения FatFS-demo-lpc23xx.mp4 (этот проект находится в файле ffsample.zip/lpc23xx)
[Ссылки]
1. FatFs Generic FAT File System Module - оригинал статьи на английском языке. 2. Библиотека Petit FatFS: модуль файловой системы FAT. |
Добавить комментарий
|
Комментарии
RSS лента комментариев этой записи