FatFs

FatFs
FatFs
개발자
초기 릴리즈2006년 2월 26일, 17년 전(2006-02-26)
안정된 릴리스
R0.15 / 2022
저장소아카이브 릴리스
기입처ANSI C
플랫폼인텔 8051, PIC, AVR, ARM, Z80
유형임베디드 시스템 소프트웨어
면허증.자체 라이선스(BSD와 유사)
웹 사이트elm-chan.org

FatFs는 FAT/exFAT 파일 시스템 [1]지원을 구현하는 마이크로 컨트롤러 및 임베디드 시스템용 경량 소프트웨어 라이브러리입니다.순수 ANSI C로 작성된 FatFs는 플랫폼에 의존하지 않고 8051, PIC, AVR, ARM, Z80 등의 많은 하드웨어 플랫폼에서 쉽게 포팅할 수 있습니다.FatFs는 스레드 세이프로 설계되어 ChibiOS, RT-ThreadZephyr 실시간 운영 체제에 [2]내장되어 있습니다.

라이브러리가 RAM과 프로그램 코드의 공간을 거의 차지하지 않기 때문에 메모리가 제한된 저전력 임베디드 시스템에서 FatFs가 사용되는 경우가 많습니다.최소 버전에서는 동작 코드는 2~10kB의 [3]RAM을 사용합니다.

개요

FatFs는 사용하는 플랫폼 및 스토리지 미디어에 구애받지 않는 파일 시스템 계층으로 설계되었습니다.이는 [4]구현자가 제공하는 스토리지 디바이스 제어 모듈과 통신하는 데 사용되는 미디어 액세스 인터페이스를 제공함으로써 실현됩니다., FatFs는 구현자가 제어 모듈인터페이스를 제공하는 경우 플레인 C 코드를 실행할 수 있는 플랫폼 상의 SD 카드하드 디스크 등의 모든 물리 디바이스와 연동할 수 있습니다.

아키텍처

FatFs 아키텍처 계층 구성표

FatFs 라이브러리 아키텍처는 사용자 앱의 추상화와 플랫폼 종속 코드를 논리적으로 구분합니다.사용자 애플리케이션과 저레벨 디스크 I/O층(드라이버)은 구현자가 [4]: 11 추가해야 합니다.또, 라이브러리의 아키텍쳐(architecture)에 의해서, 시스템은 다른 드라이버를 가지는 복수의 스토리지 디바이스를 가질 수 있어 라이브러리는 멀티 스레드 operating system으로 동작할 수 있습니다.응용 프로그램 수준에서는 사용되는 물리적 미디어가 숨겨집니다.

최소한의 실장에서는, 드라이버 레이어는 적어도 다음의 3개의 인터페이스를 [4]: 14 서포트할 필요가 있습니다.

  • disk_status- 반환 블록 디바이스 상태(초기화 안 됨, 누락, 보호됨, 준비 완료)
  • disk_initialize: 물리 디스크를 초기화합니다.
  • disk_read- 물리 디스크에서 블록 읽기

이 추상화 수준을 통해 구현자는 애플리케이션을 한 번 작성한 후 다른 플랫폼에 포팅할 수 [5]있으며 드라이버 구현만 변경할 수 있습니다.

면허증.

FatFs는 BSD 라이선스와 유사한 자체 미니멀리즘 라이선스를 가지고 있습니다.소스코드[4]: 12 공개하지 않고 상업용 제품에서 사용할 수 있습니다.단, 소스코드의 재배포에 대비하여 저작권 고지를 보관하는 것입니다.FatFs 라이선스의 조건은 임베디드 코드나 16진수 파일과 같은 바이너리 형식의 재배포에는 적용되지 않습니다.

FatFs를 사용한 프로젝트

레퍼런스

  1. ^ Ivan Cibrario Bertolotti (2016). Embedded Software Development; The Open-Source Approach. Tingting Hu. p. 361. ISBN 9781466593930. OCLC 932464067.
  2. ^ Yi Qiu (2020). The design and implementation of the RT-thread operating system. Xiong Puxiang, Tianlong Zhu. p. 361. ISBN 9780367554866. OCLC 1197810565.
  3. ^ "FatFs Memory Usage comparison table". elm-chan.org. Retrieved 2022-06-17.
  4. ^ a b c d "Developing applications on STM32Cube with FatFs" (PDF). STMicroelectronics. Retrieved 22 June 2022.
  5. ^ Beningo, Jacob (2017). Reusable Firmware Development; A Practical Approach to APIs, HALs and Drivers. p. 255. ISBN 9781484232972. OCLC 1484232976.
  6. ^ "FatFs License". elm-chan.org. Retrieved 2022-06-17.
  7. ^ "FatFs Library description on Arduino platform documentation". Arduino Official Website. Retrieved 2022-06-17.
  8. ^ "FAT Filesystem Support - ESP32 - — ESP-IDF Programming Guide latest documentation". docs.espressif.com. Retrieved 2022-06-27.
  9. ^ "FatFs File System Configuration in rt-thread operating system". www.rt-thread.io. Retrieved 2022-06-26.