FatFs
FatFs개발자 | 찬 |
---|---|
초기 릴리즈 | 2006년 2월 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-Thread 및 Zephyr 실시간 운영 체제에 [2]내장되어 있습니다.
라이브러리가 RAM과 프로그램 코드의 공간을 거의 차지하지 않기 때문에 메모리가 제한된 저전력 임베디드 시스템에서 FatFs가 사용되는 경우가 많습니다.최소 버전에서는 동작 코드는 2~10kB의 [3]RAM을 사용합니다.
개요
FatFs는 사용하는 플랫폼 및 스토리지 미디어에 구애받지 않는 파일 시스템 계층으로 설계되었습니다.이는 [4]구현자가 제공하는 스토리지 디바이스 제어 모듈과 통신하는 데 사용되는 미디어 액세스 인터페이스를 제공함으로써 실현됩니다.즉, FatFs는 구현자가 제어 모듈인터페이스를 제공하는 경우 플레인 C 코드를 실행할 수 있는 플랫폼 상의 SD 카드나 하드 디스크 등의 모든 물리 디바이스와 연동할 수 있습니다.
아키텍처
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를 사용한 프로젝트
- Arduino (STM32Duino) - STM32 MCU용[7] Arduino 플랫폼 포트
- ChibiOS/RT - 마이크로컨트롤러용 오픈소스 실시간 운영체제(RTOS)
- Dreamshell - Unix와 같은 운영체제.Sega Dreamcast 비디오 게임 콘솔용으로 설계되어 있습니다.
- Flipper Zero - 오픈소스 포터블 멀티툴 디바이스
- Marlin (펌웨어) - 3D 프린터 및 CNC 머신용 오픈 소스 펌웨어
- ESP-IDF - ESP32 시리즈[8] SoC용 공식 IoT 개발 프레임워크
- Prusa Mini - 저비용 3D 프린터용 오픈 소스 펌웨어
- RT-Thread - 임베디드[9] 시스템용 오픈 소스 실시간 운영 체제
- Zephyr - 여러 아키텍처를 지원하는 임베디드 시스템용 실시간 운영 체제
레퍼런스
- ^ Ivan Cibrario Bertolotti (2016). Embedded Software Development; The Open-Source Approach. Tingting Hu. p. 361. ISBN 9781466593930. OCLC 932464067.
- ^ Yi Qiu (2020). The design and implementation of the RT-thread operating system. Xiong Puxiang, Tianlong Zhu. p. 361. ISBN 9780367554866. OCLC 1197810565.
- ^ "FatFs Memory Usage comparison table". elm-chan.org. Retrieved 2022-06-17.
- ^ a b c d "Developing applications on STM32Cube with FatFs" (PDF). STMicroelectronics. Retrieved 22 June 2022.
- ^ Beningo, Jacob (2017). Reusable Firmware Development; A Practical Approach to APIs, HALs and Drivers. p. 255. ISBN 9781484232972. OCLC 1484232976.
- ^ "FatFs License". elm-chan.org. Retrieved 2022-06-17.
- ^ "FatFs Library description on Arduino platform documentation". Arduino Official Website. Retrieved 2022-06-17.
- ^ "FAT Filesystem Support - ESP32 - — ESP-IDF Programming Guide latest documentation". docs.espressif.com. Retrieved 2022-06-27.
- ^ "FatFs File System Configuration in rt-thread operating system". www.rt-thread.io. Retrieved 2022-06-26.