FatFs

FatFs
Deweloperzy ChaN
Pierwsze wydanie 26 lutego 2006 ; 16 lat temu ( 2006-02-26 )
Wersja stabilna
R0,15 / 2022
Magazyn Archiwum wydań
Napisane w ANSI C
Platforma Intel 8051 , PIC , AVR , ARM , Z80
Typ Oprogramowanie systemów wbudowanych
Licencja Własna licencja, podobna do BSD
Strona internetowa elm-chan.org

FatFs to lekka biblioteka oprogramowania dla mikrokontrolerów i systemów wbudowanych, która implementuje obsługę systemu plików FAT / exFAT . Napisany w czystym ANSI C , FatFs jest niezależny od platformy i łatwy do przenoszenia na wiele platform sprzętowych, takich jak 8051, PIC, AVR, ARM, Z80. FatFs został zaprojektowany jako bezpieczny dla wątków i jest wbudowany w systemy operacyjne czasu rzeczywistego ChibiOS , RT-Thread i Zephyr .

Najczęściej FatFs jest używany w systemach wbudowanych o niskim poborze mocy , w których pamięć jest ograniczona, ponieważ biblioteka zajmuje mało miejsca w pamięci RAM i kodzie programu. W wersji minimalnej działający kod zajmuje od 2 do 10 kB pamięci RAM.

Przegląd

FatFs został zaprojektowany jako warstwa systemu plików , która jest niezależna od platformy i nośnika pamięci , z którym jest używana. Osiąga się to poprzez zapewnienie interfejsu dostępu do nośnika, który jest używany do komunikacji z modułem sterującym urządzenia pamięciowego, który jest dostarczany przez wykonawcę. Oznacza to, że FatF mogą współpracować z dowolnym urządzeniem fizycznym, takim jak karta SD lub dysk twardy, na dowolnej platformie, która może uruchamiać zwykły kod C, jeśli wykonawca zapewni interfejs modułu sterującego.

Architektura

Schemat warstw architektury FatFs

Architektura biblioteki FatFs logicznie oddziela abstrakcje aplikacji użytkownika i kod zależny od platformy. Aplikacja użytkownika i niskopoziomowa warstwa we/wy dysku ( sterownik ) musi zostać dodana przez implementatora. Również architektura biblioteki oznacza, że ​​system może mieć kilka urządzeń pamięci masowej z różnymi sterownikami, a biblioteka może pracować w wielowątkowym systemie operacyjnym. Na poziomie aplikacji ukrywa się, który nośnik fizyczny jest używany.

W minimalnej implementacji warstwa sterownika musi obsługiwać co najmniej te 3 interfejsy:

  • disk_status — zwróć status urządzenia blokowego (nie zainicjowane, brakujące, chronione, gotowe)
  • disk_initialize — zainicjuj dysk fizyczny
  • disk_read — odczyt bloku z dysku fizycznego

Ten poziom abstrakcji pozwala realizatorom napisać aplikację raz, a następnie przenieść ją na różne platformy, zmieniając jedynie implementację sterownika.

Licencja

FatFs ma własną minimalistyczną licencję podobną do licencji BSD . Pozwala na wykorzystanie w produktach komercyjnych bez ujawniania kodu źródłowego . Jedynym warunkiem jest zachowanie o prawach autorskich w przypadku redystrybucji kodu źródłowego. Warunki licencji FatFs nie obejmują żadnej redystrybucji w formie binarnej, takiej jak osadzony kod i pliki heksadecymalne.

Projekty wykorzystujące FatF