SdFat

- Main Page
- Classes
- Files

- File List
- File Members

Macros
FatLibConfig.h File Reference

configuration definitions More...

`#include <stdint.h>`
`#include "SdFatConfig.h"`
`#include <Arduino.h>`
Include dependency graph for FatLibConfig.h:
This graph shows which files directly or indirectly include this file:

## Macros
#define | DESTRUCTOR_CLOSES_FILE 0
#define | ENABLE_ARDUINO_FEATURES 1
#define | ENDL_CALLS_FLUSH 0
#define | FAT12_SUPPORT 0
#define | MAINTAIN_FREE_CLUSTER_COUNT 0
#define | USE_LONG_FILE_NAMES 1
#define | USE_MULTI_BLOCK_IO 1
#define | USE_SEPARATE_FAT_CACHE 0

## Detailed Description

configuration definitions

## Macro Definition Documentation

#define DESTRUCTOR_CLOSES_FILE 0

Set DESTRUCTOR_CLOSES_FILE non-zero to close a file in its destructor.

Causes use of lots of heap in ARM.

#define ENABLE_ARDUINO_FEATURES 1

Enable Extra features for Arduino.

#define ENDL_CALLS_FLUSH 0

Call flush for endl if ENDL_CALLS_FLUSH is non-zero

The standard for iostreams is to call flush. This is very costly for SdFat. Each call to flush causes 2048 bytes of I/O to the SD.

SdFat has a single 512 byte buffer for I/O so it must write the current data block to the SD, read the directory block from the SD, update the directory entry, write the directory block to the SD and read the data block back into the buffer.

The SD flash memory controller is not designed for this many rewrites so performance may be reduced by more than a factor of 100.

If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force all data to be written to the SD.

#define FAT12_SUPPORT 0

Allow FAT12 volumes if FAT12_SUPPORT is non-zero. FAT12 has not been well tested.

#define MAINTAIN_FREE_CLUSTER_COUNT 0

Set MAINTAIN_FREE_CLUSTER_COUNT nonzero to keep the count of free clusters updated. This will increase the speed of the freeClusterCount() call after the first call. Extra flash will be required.

#define USE_LONG_FILE_NAMES 1

Set USE_LONG_FILE_NAMES nonzero to use long file names (LFN). Long File Name are limited to a maximum length of 255 characters.

This implementation allows 7-bit characters in the range 0X20 to 0X7E. The following characters are not allowed:

< (less than)

> (greater than)

: (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark)

- (asterisk)

#define USE_MULTI_BLOCK_IO 1

Set USE_MULTI_BLOCK_IO non-zero to use multi-block SD read/write.

Don't use mult-block read/write on small AVR boards.

#define USE_SEPARATE_FAT_CACHE 0

Set USE_SEPARATE_FAT_CACHE non-zero to use a second 512 byte cache for FAT table entries. Improves performance for large writes that are not a multiple of 512 bytes.