FATFS

From uGFX Wiki
Jump to: navigation, search

The GFILE module uses the well known elm-chan FatFS library to provide built-in support to access FatFS file systems.

Disk interface

Unless you are using ChibiOS/RT, you have to provide a file called diskio.c which is pretty much like the board files of the GDISP module. It's purpose is to abstract the I/O interface to your disk. You can use the existing ChibiOS/RT file as a template. It can be found under /src/gfile/fatfs/fatfs_chibios_diskio.c.

Configuration

FatFS comes with its own configuration file called ffconf.h. We do provide a default configuration, however, in most cases the users wants to overwrite it with his own parameters. You can copy the existing config (/src/gfile/fatfs/src/ffconf.h). Modify it and place it in your project directory.

Mounting

Before a FatFS volume can be accessed, it needs to be mounted. By default, GFILE does automatically mount the default volume. If you want to do this yourself or mount a different volume, set GFILE_NEED_NOAUTOMOUNT to TRUE in your gfxconf.h and manually use gfileMount().

Multiple volumes

It is currently not possible to have more than one volume mounted at a time. This restriction will be removed in the future.

Licensing

The FatFS library is 3rd party software and does therefore not stand under the uGFX license. However, the FatFS license allows a restriction free use.

/*----------------------------------------------------------------------------/
/  FatFs - FAT file system module  R0.10b                    (C)ChaN, 2014
/-----------------------------------------------------------------------------/
/ FatFs module is a generic FAT file system module for small embedded systems.
/ This is a free software that opened for education, research and commercial
/ developments under license policy of following trems.
/
/  Copyright (C) 2014, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is NO WARRANTY.
/ * No restriction on use. You can use, modify and redistribute it for
/   personal, non-profit or commercial products UNDER YOUR RESPONSIBILITY.
/ * Redistributions of source code must retain the above copyright notice.
/
/----------------------------------------------------------------------------*/