| The FAT File System |
| =================== |
| |
| Mynewt provides an implementation of the FAT filesystem which is |
| currently supported on MMC/SD cards. |
| |
| Description |
| ~~~~~~~~~~~ |
| |
| File Allocation Table (FAT) is a computer file system architecture |
| and a family of industry-standard file systems utilizing it. The FAT |
| file system is a legacy file system which is simple and robust. It |
| offers good performance even in lightweight implementations, but |
| cannot deliver the same performance, reliability and scalability as |
| some modern file systems. |
| |
| Configuration |
| ~~~~~~~~~~~~~ |
| |
| ``fatfs`` configuration can be tweaked by editing |
| ``fs/fatfs/include/fatfs/ffconf.h``. The current configuraton was chosen |
| to minimize memory use and some options address limitations existing in |
| the OS: |
| |
| - Write support is enabled by default (can be disabled to minimize |
| memory use). |
| - Long filename (up to 255) support is disabled. |
| - When writing files, time/dates are not persisted due to current lack |
| of a standard ``hal_rtc`` interface. |
| - No unicode support. Vanilla config uses standard US codepage 437. |
| - Formatting of new volumes is disabled. |
| - Default number of volumes is configured to 1. |
| |
| API |
| ~~~ |
| |
| To include ``fatfs`` on a project just include it as a dependency in |
| your project: |
| |
| :: |
| |
| pkg.deps: |
| - "@apache-mynewt-core/fs/fatfs" |
| |
| It can now be used through the standard file system abstraction |
| functions as described in `FS API </os/modules/fs/fs/fs#API>`__. |
| |
| Example |
| ^^^^^^^ |
| |
| An example of using ``fatfs`` on a MMC card is provided on the |
| `MMC </os/modules/drivers/mmc#Example>`__ documentation. |