updated chan_fatfs

Dependents:   HARP2 HARP3

Fork of chan_fatfs by Eli Hughes

Committer:
tylerjw
Date:
Fri Dec 28 17:12:02 2012 +0000
Revision:
8:1f9748c6b865
Parent:
6:d770e6821de6
Added f_size() macro, not tested!!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emh203 1:68378811b1e2 1 /*---------------------------------------------------------------------------/
emh203 1:68378811b1e2 2 / FatFs - FAT file system module configuration file R0.07e (C)ChaN, 2009
emh203 1:68378811b1e2 3 /----------------------------------------------------------------------------/
emh203 1:68378811b1e2 4 /
emh203 1:68378811b1e2 5 / CAUTION! Do not forget to make clean the project after any changes to
emh203 1:68378811b1e2 6 / the configuration options.
emh203 1:68378811b1e2 7 /
emh203 1:68378811b1e2 8 /----------------------------------------------------------------------------*/
emh203 1:68378811b1e2 9 #ifndef _FFCONFIG
emh203 1:68378811b1e2 10 #define _FFCONFIG 0x007E
emh203 1:68378811b1e2 11
emh203 1:68378811b1e2 12
emh203 1:68378811b1e2 13 /*---------------------------------------------------------------------------/
emh203 1:68378811b1e2 14 / Function and Buffer Configurations
emh203 1:68378811b1e2 15 /----------------------------------------------------------------------------*/
emh203 1:68378811b1e2 16
emh203 1:68378811b1e2 17 #define _FS_TINY 0 /* 0 or 1 */
emh203 1:68378811b1e2 18 /* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
emh203 1:68378811b1e2 19 / object instead of the sector buffer in the individual file object for file
emh203 1:68378811b1e2 20 / data transfer. This reduces memory consumption 512 bytes each file object. */
emh203 1:68378811b1e2 21
emh203 1:68378811b1e2 22
emh203 1:68378811b1e2 23 #define _FS_READONLY 0 /* 0 or 1 */
emh203 1:68378811b1e2 24 /* Setting _FS_READONLY to 1 defines read only configuration. This removes
emh203 1:68378811b1e2 25 / writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
emh203 1:68378811b1e2 26 / f_truncate and useless f_getfree. */
emh203 1:68378811b1e2 27
emh203 1:68378811b1e2 28
emh203 1:68378811b1e2 29 #define _FS_MINIMIZE 0 /* 0, 1, 2 or 3 */
emh203 1:68378811b1e2 30 /* The _FS_MINIMIZE option defines minimization level to remove some functions.
emh203 1:68378811b1e2 31 /
emh203 1:68378811b1e2 32 / 0: Full function.
emh203 1:68378811b1e2 33 / 1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
emh203 1:68378811b1e2 34 / are removed.
emh203 1:68378811b1e2 35 / 2: f_opendir and f_readdir are removed in addition to level 1.
emh203 1:68378811b1e2 36 / 3: f_lseek is removed in addition to level 2. */
emh203 1:68378811b1e2 37
emh203 1:68378811b1e2 38
emh203 1:68378811b1e2 39 #define _USE_STRFUNC 1 /* 0, 1 or 2 */
emh203 1:68378811b1e2 40 /* To enable string functions, set _USE_STRFUNC to 1 or 2. */
emh203 1:68378811b1e2 41
emh203 1:68378811b1e2 42
emh203 1:68378811b1e2 43 #define _USE_MKFS 0 /* 0 or 1 */
emh203 1:68378811b1e2 44 /* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
emh203 1:68378811b1e2 45
emh203 1:68378811b1e2 46
emh203 1:68378811b1e2 47 #define _USE_FORWARD 0 /* 0 or 1 */
emh203 1:68378811b1e2 48 /* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
emh203 1:68378811b1e2 49
emh203 1:68378811b1e2 50
emh203 1:68378811b1e2 51
emh203 1:68378811b1e2 52 /*---------------------------------------------------------------------------/
emh203 1:68378811b1e2 53 / Locale and Namespace Configurations
emh203 1:68378811b1e2 54 /----------------------------------------------------------------------------*/
emh203 1:68378811b1e2 55
emh203 1:68378811b1e2 56 #define _CODE_PAGE 437
emh203 1:68378811b1e2 57 /* The _CODE_PAGE specifies the OEM code page to be used on the target system.
emh203 1:68378811b1e2 58 / Incorrect setting of the code page can cause a file open failure.
emh203 1:68378811b1e2 59 /
emh203 1:68378811b1e2 60 / 932 - Japanese Shift-JIS (DBCS, OEM, Windows)
emh203 1:68378811b1e2 61 / 936 - Simplified Chinese GBK (DBCS, OEM, Windows)
emh203 1:68378811b1e2 62 / 949 - Korean (DBCS, OEM, Windows)
emh203 1:68378811b1e2 63 / 950 - Traditional Chinese Big5 (DBCS, OEM, Windows)
emh203 1:68378811b1e2 64 / 1250 - Central Europe (Windows)
emh203 1:68378811b1e2 65 / 1251 - Cyrillic (Windows)
emh203 1:68378811b1e2 66 / 1252 - Latin 1 (Windows)
emh203 1:68378811b1e2 67 / 1253 - Greek (Windows)
emh203 1:68378811b1e2 68 / 1254 - Turkish (Windows)
emh203 1:68378811b1e2 69 / 1255 - Hebrew (Windows)
emh203 1:68378811b1e2 70 / 1256 - Arabic (Windows)
emh203 1:68378811b1e2 71 / 1257 - Baltic (Windows)
emh203 1:68378811b1e2 72 / 1258 - Vietnam (OEM, Windows)
emh203 1:68378811b1e2 73 / 437 - U.S. (OEM)
emh203 1:68378811b1e2 74 / 720 - Arabic (OEM)
emh203 1:68378811b1e2 75 / 737 - Greek (OEM)
emh203 1:68378811b1e2 76 / 775 - Baltic (OEM)
emh203 1:68378811b1e2 77 / 850 - Multilingual Latin 1 (OEM)
emh203 1:68378811b1e2 78 / 858 - Multilingual Latin 1 + Euro (OEM)
emh203 1:68378811b1e2 79 / 852 - Latin 2 (OEM)
emh203 1:68378811b1e2 80 / 855 - Cyrillic (OEM)
emh203 1:68378811b1e2 81 / 866 - Russian (OEM)
emh203 1:68378811b1e2 82 / 857 - Turkish (OEM)
emh203 1:68378811b1e2 83 / 862 - Hebrew (OEM)
emh203 1:68378811b1e2 84 / 874 - Thai (OEM, Windows)
emh203 1:68378811b1e2 85 / 1 - ASCII only (Valid for non LFN cfg.)
emh203 1:68378811b1e2 86 */
emh203 1:68378811b1e2 87
emh203 1:68378811b1e2 88
tylerjw 4:f88948891a05 89 #define _USE_LFN 0 /* 0, 1 or 2 */
emh203 1:68378811b1e2 90 #define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
emh203 1:68378811b1e2 91 /* The _USE_LFN option switches the LFN support.
emh203 1:68378811b1e2 92 /
emh203 1:68378811b1e2 93 / 0: Disable LFN. _MAX_LFN and _LFN_UNICODE have no effect.
emh203 1:68378811b1e2 94 / 1: Enable LFN with static working buffer on the bss. NOT REENTRANT.
emh203 1:68378811b1e2 95 / 2: Enable LFN with dynamic working buffer on the STACK.
emh203 1:68378811b1e2 96 /
emh203 1:68378811b1e2 97 / The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. When enable LFN,
emh203 1:68378811b1e2 98 / two Unicode handling functions ff_convert() and ff_wtoupper() must be added
emh203 1:68378811b1e2 99 / to the project. */
emh203 1:68378811b1e2 100
emh203 1:68378811b1e2 101
emh203 1:68378811b1e2 102 #define _LFN_UNICODE 0 /* 0 or 1 */
emh203 1:68378811b1e2 103 /* To switch the character code set on FatFs API to Unicode,
emh203 1:68378811b1e2 104 / enable LFN feature and set _LFN_UNICODE to 1.
emh203 1:68378811b1e2 105 */
emh203 1:68378811b1e2 106
emh203 1:68378811b1e2 107
emh203 1:68378811b1e2 108 #define _FS_RPATH 0 /* 0 or 1 */
emh203 1:68378811b1e2 109 /* When _FS_RPATH is set to 1, relative path feature is enabled and f_chdir,
emh203 1:68378811b1e2 110 / f_chdrive function are available.
emh203 1:68378811b1e2 111 / Note that output of the f_readdir fnction is affected by this option. */
emh203 1:68378811b1e2 112
emh203 1:68378811b1e2 113
emh203 1:68378811b1e2 114
emh203 1:68378811b1e2 115 /*---------------------------------------------------------------------------/
emh203 1:68378811b1e2 116 / Physical Drive Configurations
emh203 1:68378811b1e2 117 /----------------------------------------------------------------------------*/
emh203 1:68378811b1e2 118
emh203 1:68378811b1e2 119 #define _DRIVES 1
emh203 1:68378811b1e2 120 /* Number of volumes (logical drives) to be used. */
emh203 1:68378811b1e2 121
emh203 1:68378811b1e2 122
tylerjw 2:e8cd708f09ff 123 #define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
emh203 1:68378811b1e2 124 /* Maximum sector size to be handled.
emh203 1:68378811b1e2 125 / Always set 512 for memory card and hard disk but a larger value may be
emh203 1:68378811b1e2 126 / required for floppy disk (512/1024) and optical disk (512/2048).
emh203 1:68378811b1e2 127 / When _MAX_SS is larger than 512, GET_SECTOR_SIZE command must be implememted
emh203 1:68378811b1e2 128 / to the disk_ioctl function. */
emh203 1:68378811b1e2 129
emh203 1:68378811b1e2 130
emh203 1:68378811b1e2 131 #define _MULTI_PARTITION 0 /* 0 or 1 */
emh203 1:68378811b1e2 132 /* When _MULTI_PARTITION is set to 0, each volume is bound to the same physical
emh203 1:68378811b1e2 133 / drive number and can mount only first primaly partition. When it is set to 1,
emh203 1:68378811b1e2 134 / each volume is tied to the partitions listed in Drives[]. */
emh203 1:68378811b1e2 135
emh203 1:68378811b1e2 136
emh203 1:68378811b1e2 137
emh203 1:68378811b1e2 138 /*---------------------------------------------------------------------------/
emh203 1:68378811b1e2 139 / System Configurations
emh203 1:68378811b1e2 140 /----------------------------------------------------------------------------*/
emh203 1:68378811b1e2 141
emh203 1:68378811b1e2 142 #define _WORD_ACCESS 0 /* 0 or 1 */
emh203 1:68378811b1e2 143 /* The _WORD_ACCESS option defines which access method is used to the word
emh203 1:68378811b1e2 144 / data on the FAT volume.
emh203 1:68378811b1e2 145 /
emh203 1:68378811b1e2 146 / 0: Byte-by-byte access. Always compatible with all platforms.
emh203 1:68378811b1e2 147 / 1: Word access. Do not choose this unless following condition is met.
emh203 1:68378811b1e2 148 /
emh203 1:68378811b1e2 149 / When the byte order on the memory is big-endian or address miss-aligned
emh203 1:68378811b1e2 150 / word access results incorrect behavior, the _WORD_ACCESS must be set to 0.
emh203 1:68378811b1e2 151 / If it is not the case, the value can also be set to 1 to improve the
emh203 1:68378811b1e2 152 / performance and code size. */
emh203 1:68378811b1e2 153
emh203 1:68378811b1e2 154
tylerjw 6:d770e6821de6 155 #define _FS_REENTRANT 1 /* 0 or 1 */
tylerjw 4:f88948891a05 156 #define _FS_TIMEOUT 1000 /* Timeout period in unit of time ticks */
tylerjw 4:f88948891a05 157 #define _SYNC_t Semaphore* /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
emh203 1:68378811b1e2 158 /* The _FS_REENTRANT option switches the reentrancy of the FatFs module.
emh203 1:68378811b1e2 159 /
emh203 1:68378811b1e2 160 / 0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
emh203 1:68378811b1e2 161 / 1: Enable reentrancy. Also user provided synchronization handlers,
emh203 1:68378811b1e2 162 / ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
emh203 1:68378811b1e2 163 / function must be added to the project. */
emh203 1:68378811b1e2 164
emh203 1:68378811b1e2 165
emh203 1:68378811b1e2 166 #endif /* _FFCONFIG */