толстые
![]() Вывод списка файлов на карте Micro SD , подключенной к Arduino Nano, с помощью FatFs | |
Разработчик(и) | ЧаН |
---|---|
Первоначальный выпуск | 26 февраля 2006 г |
Стабильная версия | 0,15 рэнда
/ 2022 г. |
Репозиторий | Архив релизов |
Написано в | АНСИ С |
Платформа | Intel 8051 , ПОС , AVR , ARM , Z80 |
Тип | для встроенных систем Программное обеспечение |
Лицензия | Собственная лицензия, аналогичная BSD. |
Веб-сайт | elm-chan.org |
FatFs — это легкая программная библиотека для микроконтроллеров и встраиваемых систем, реализующая поддержку файловой системы FAT / exFAT . [1] Написанный на чистом ANSI C , FatFs не зависит от платформы и легко портируется на многие аппаратные платформы, такие как 8051, PIC, AVR, ARM, Z80. FatFs спроектирован как потокобезопасный и встроен в ChibiOS , RT-Thread , ErlendOS, [2] и Zephyr операционные системы реального времени . [3]
Чаще всего FatFs используется в маломощных Embedded системах , где память ограничена, так как библиотека занимает мало места в оперативной памяти и программном коде. В минимальной версии рабочий код занимает от 2 до 10 КБ ОЗУ. [4]
Обзор
[ редактировать ]FatFs спроектирован как уровень файловой системы , не зависящий от платформы и носителя, с которыми он используется. Это достигается за счет предоставления интерфейса доступа к среде передачи данных, который используется для связи с модулем управления устройством хранения данных, предоставляемым разработчиком. [5] Это означает, что FatF может работать с любым физическим устройством, таким как SD-карта или жесткий диск , на любой платформе, которая может запускать простой код C , если разработчик предоставляет интерфейс модуля управления.
Архитектура
[ редактировать ]
Архитектура библиотеки FatFs логически разделяет абстракции пользовательского приложения и зависящего от платформы кода. Пользовательское приложение и уровень дискового ввода-вывода низкого уровня ( драйвер ) должны быть добавлены разработчиком. [5] : 11 Также архитектура библиотеки подразумевает, что в системе может быть несколько запоминающих устройств с разными драйверами и библиотека может работать в многопоточной операционной системе. На уровне приложения скрыто, какой физический носитель используется.
В минимальной реализации уровень драйвера должен поддерживать как минимум эти 3 интерфейса: [5] : 14
disk_status
— вернуть статус блочного устройства (не инициализировано, отсутствует, защищено, готово)disk_initialize
— инициализировать физический дискdisk_read
— прочитать блок с физического диска
Этот уровень абстракции позволяет разработчикам написать приложение один раз, а затем портировать его на разные платформы, меняя только реализацию драйвера. [6]
Лицензия
[ редактировать ]FatFs имеет собственную минималистическую лицензию. [7] аналогично лицензии BSD . Это позволяет использовать его в коммерческих продуктах без раскрытия исходного кода . [5] : 12 Единственное условие — сохранить уведомление об авторских правах на случай повторного распространения исходного кода. Условия лицензии FatFs не распространяются на любые дистрибутивы в двоичной форме, такие как встроенный код и шестнадцатеричные файлы.
Проекты с использованием FatFs
[ редактировать ]- Arduino (STM32Duino) — порт платформы Arduino для STM32. микроконтроллеров [8]
- ChibiOS/RT — (RTOS) с открытым исходным кодом операционная система реального времени для микроконтроллеров.
- Dreamshell — Unix-подобная операционная система, разработанная для Sega Dreamcast . игровой консоли
- Flipper Zero — портативное многофункциональное устройство с открытым исходным кодом
- Marlin (прошивка) — прошивка с открытым исходным кодом для 3D-принтеров и станков с ЧПУ.
- ESP-IDF — официальная платформа разработки Интернета вещей для ESP32. SoC серии [9]
- Prusa Mini — прошивка с открытым исходным кодом для недорогого 3D-принтера
- RT-Thread — операционная система реального времени с открытым исходным кодом для встраиваемых систем. [10]
- Zephyr — операционная система реального времени для встраиваемых систем, поддерживающая несколько архитектур.
- ErlendOS — минимальная UNIX-подобная операционная система с открытым исходным кодом для встраиваемых систем.
- EZ-Flash Omega — семейство флеш-карточек для Nintendo Game Boy Advance.
Ссылки
[ редактировать ]- ^ Иван Чибрарио Бертолотти (2016). Разработка встроенного программного обеспечения; Подход с открытым исходным кодом . Тинтин Ху. п. 361. ИСБН 9781466593930 . OCLC 932464067 .
- ^ "erlends-os/kmod/fatfs" . ГитЛаб . Проверено 16 ноября 2023 г.
- ^ И Цю (2020). Проектирование и реализация RT-потоковой операционной системы . Сюн Пусян, Тяньлун Чжу. п. 361. ИСБН 9780367554866 . OCLC 1197810565 .
- ^ «Сравнительная таблица использования памяти FatFs» . elm-chan.org . Проверено 17 июня 2022 г.
- ^ Jump up to: а б с д «Разработка приложений на STM32Cube с помощью FatF» (PDF) . СТМикроэлектроника . Проверено 22 июня 2022 г.
- ^ Бенинго, Джейкоб (2017). Разработка многоразового прошивки; Практический подход к API, HAL и драйверам . п. 255. ИСБН 9781484232972 . OCLC 1484232976 .
- ^ «Лицензия FatFs» . elm-chan.org . Проверено 17 июня 2022 г.
- ^ «Описание библиотеки FatFs в документации платформы Arduino» . Официальный сайт Ардуино . Проверено 17 июня 2022 г.
- ^ «Поддержка файловой системы FAT — ESP32 — — Последняя документация Руководства по программированию ESP-IDF» . docs.espressif.com . Проверено 27 июня 2022 г.
- ^ «Конфигурация файловой системы FatFs в операционной системе rt-thread» . www.rt-thread.io . Проверено 26 июня 2022 г.