Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of FATFileSystem by
ffconf.h
00001 /*---------------------------------------------------------------------------/ 00002 / FatFs - FAT file system module configuration file R0.11a (C)ChaN, 2015 00003 /---------------------------------------------------------------------------*/ 00004 00005 #define _FFCONF 64180 /* Revision ID */ 00006 00007 #define FFS_DBG 0 00008 00009 /*---------------------------------------------------------------------------/ 00010 / Function Configurations 00011 /---------------------------------------------------------------------------*/ 00012 00013 #define _FS_READONLY 0 00014 /* This option switches read-only configuration. (0:Read/Write or 1:Read-only) 00015 / Read-only configuration removes writing API functions, f_write(), f_sync(), 00016 / f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree() 00017 / and optional writing functions as well. */ 00018 00019 00020 #define _FS_MINIMIZE 0 00021 /* This option defines minimization level to remove some basic API functions. 00022 / 00023 / 0: All basic functions are enabled. 00024 / 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_chmod(), f_utime(), 00025 / f_truncate() and f_rename() function are removed. 00026 / 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1. 00027 / 3: f_lseek() function is removed in addition to 2. */ 00028 00029 00030 #define _USE_STRFUNC 0 00031 /* This option switches string functions, f_gets(), f_putc(), f_puts() and 00032 / f_printf(). 00033 / 00034 / 0: Disable string functions. 00035 / 1: Enable without LF-CRLF conversion. 00036 / 2: Enable with LF-CRLF conversion. */ 00037 00038 00039 #define _USE_FIND 0 00040 /* This option switches filtered directory read feature and related functions, 00041 / f_findfirst() and f_findnext(). (0:Disable or 1:Enable) */ 00042 00043 00044 #define _USE_MKFS 1 00045 /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */ 00046 00047 00048 #define _USE_FASTSEEK 0 00049 /* This option switches fast seek feature. (0:Disable or 1:Enable) */ 00050 00051 00052 #define _USE_LABEL 0 00053 /* This option switches volume label functions, f_getlabel() and f_setlabel(). 00054 / (0:Disable or 1:Enable) */ 00055 00056 00057 #define _USE_FORWARD 0 00058 /* This option switches f_forward() function. (0:Disable or 1:Enable) 00059 / To enable it, also _FS_TINY need to be set to 1. */ 00060 00061 00062 /*---------------------------------------------------------------------------/ 00063 / Locale and Namespace Configurations 00064 /---------------------------------------------------------------------------*/ 00065 00066 #define _CODE_PAGE 850 00067 /* This option specifies the OEM code page to be used on the target system. 00068 / Incorrect setting of the code page can cause a file open failure. 00069 / 00070 / 1 - ASCII (No extended character. Non-LFN cfg. only) 00071 / 437 - U.S. 00072 / 720 - Arabic 00073 / 737 - Greek 00074 / 771 - KBL 00075 / 775 - Baltic 00076 / 850 - Latin 1 00077 / 852 - Latin 2 00078 / 855 - Cyrillic 00079 / 857 - Turkish 00080 / 860 - Portuguese 00081 / 861 - Icelandic 00082 / 862 - Hebrew 00083 / 863 - Canadian French 00084 / 864 - Arabic 00085 / 865 - Nordic 00086 / 866 - Russian 00087 / 869 - Greek 2 00088 / 932 - Japanese (DBCS) 00089 / 936 - Simplified Chinese (DBCS) 00090 / 949 - Korean (DBCS) 00091 / 950 - Traditional Chinese (DBCS) 00092 */ 00093 00094 00095 #define _USE_LFN 1 00096 #define _MAX_LFN 255 00097 /* The _USE_LFN option switches the LFN feature. 00098 / 00099 / 0: Disable LFN feature. _MAX_LFN has no effect. 00100 / 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe. 00101 / 2: Enable LFN with dynamic working buffer on the STACK. 00102 / 3: Enable LFN with dynamic working buffer on the HEAP. 00103 / 00104 / When enable the LFN feature, Unicode handling functions (option/unicode.c) must 00105 / be added to the project. The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. 00106 / When use stack for the working buffer, take care on stack overflow. When use heap 00107 / memory for the working buffer, memory management functions, ff_memalloc() and 00108 / ff_memfree(), must be added to the project. */ 00109 00110 00111 #define _LFN_UNICODE 0 00112 /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode) 00113 / To use Unicode string for the path name, enable LFN feature and set _LFN_UNICODE 00114 / to 1. This option also affects behavior of string I/O functions. */ 00115 00116 00117 #define _STRF_ENCODE 3 00118 /* When _LFN_UNICODE is 1, this option selects the character encoding on the file to 00119 / be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf(). 00120 / 00121 / 0: ANSI/OEM 00122 / 1: UTF-16LE 00123 / 2: UTF-16BE 00124 / 3: UTF-8 00125 / 00126 / When _LFN_UNICODE is 0, this option has no effect. */ 00127 00128 00129 #define _FS_RPATH 0 00130 /* This option configures relative path feature. 00131 / 00132 / 0: Disable relative path feature and remove related functions. 00133 / 1: Enable relative path feature. f_chdir() and f_chdrive() are available. 00134 / 2: f_getcwd() function is available in addition to 1. 00135 / 00136 / Note that directory items read via f_readdir() are affected by this option. */ 00137 00138 00139 /*---------------------------------------------------------------------------/ 00140 / Drive/Volume Configurations 00141 /---------------------------------------------------------------------------*/ 00142 00143 #define _VOLUMES 1 00144 /* Number of volumes (logical drives) to be used. */ 00145 00146 00147 #define _STR_VOLUME_ID 0 00148 #define _VOLUME_STRS "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3" 00149 /* _STR_VOLUME_ID option switches string volume ID feature. 00150 / When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive 00151 / number in the path name. _VOLUME_STRS defines the drive ID strings for each 00152 / logical drives. Number of items must be equal to _VOLUMES. Valid characters for 00153 / the drive ID strings are: A-Z and 0-9. */ 00154 00155 00156 #define _MULTI_PARTITION 0 00157 /* This option switches multi-partition feature. By default (0), each logical drive 00158 / number is bound to the same physical drive number and only an FAT volume found on 00159 / the physical drive will be mounted. When multi-partition feature is enabled (1), 00160 / each logical drive number is bound to arbitrary physical drive and partition 00161 / listed in the VolToPart[]. Also f_fdisk() funciton will be available. */ 00162 00163 00164 #define _MIN_SS 512 00165 #define _MAX_SS 512 00166 /* These options configure the range of sector size to be supported. (512, 1024, 00167 / 2048 or 4096) Always set both 512 for most systems, all type of memory cards and 00168 / harddisk. But a larger value may be required for on-board flash memory and some 00169 / type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured 00170 / to variable sector size and GET_SECTOR_SIZE command must be implemented to the 00171 / disk_ioctl() function. */ 00172 00173 00174 #define _USE_TRIM 0 00175 /* This option switches ATA-TRIM feature. (0:Disable or 1:Enable) 00176 / To enable Trim feature, also CTRL_TRIM command should be implemented to the 00177 / disk_ioctl() function. */ 00178 00179 00180 #define _FS_NOFSINFO 0 00181 /* If you need to know correct free space on the FAT32 volume, set bit 0 of this 00182 / option, and f_getfree() function at first time after volume mount will force 00183 / a full FAT scan. Bit 1 controls the use of last allocated cluster number. 00184 / 00185 / bit0=0: Use free cluster count in the FSINFO if available. 00186 / bit0=1: Do not trust free cluster count in the FSINFO. 00187 / bit1=0: Use last allocated cluster number in the FSINFO if available. 00188 / bit1=1: Do not trust last allocated cluster number in the FSINFO. 00189 */ 00190 00191 00192 00193 /*---------------------------------------------------------------------------/ 00194 / System Configurations 00195 /---------------------------------------------------------------------------*/ 00196 00197 #define _FS_TINY 0 00198 /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny) 00199 / At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS 00200 / bytes. Instead of private sector buffer eliminated from the file object, 00201 / common sector buffer in the file system object (FATFS) is used for the file 00202 / data transfer. */ 00203 00204 00205 #define _FS_NORTC 0 00206 #define _NORTC_MON 1 00207 #define _NORTC_MDAY 1 00208 #define _NORTC_YEAR 2015 00209 /* The _FS_NORTC option switches timestamp feature. If the system does not have 00210 / an RTC function or valid timestamp is not needed, set _FS_NORTC to 1 to disable 00211 / the timestamp feature. All objects modified by FatFs will have a fixed timestamp 00212 / defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR. 00213 / When timestamp feature is enabled (_FS_NORTC == 0), get_fattime() function need 00214 / to be added to the project to read current time form RTC. _NORTC_MON, 00215 / _NORTC_MDAY and _NORTC_YEAR have no effect. 00216 / These options have no effect at read-only configuration (_FS_READONLY == 1). */ 00217 00218 00219 #define _FS_LOCK 0 00220 /* The _FS_LOCK option switches file lock feature to control duplicated file open 00221 / and illegal operation to open objects. This option must be 0 when _FS_READONLY 00222 / is 1. 00223 / 00224 / 0: Disable file lock feature. To avoid volume corruption, application program 00225 / should avoid illegal open, remove and rename to the open objects. 00226 / >0: Enable file lock feature. The value defines how many files/sub-directories 00227 / can be opened simultaneously under file lock control. Note that the file 00228 / lock feature is independent of re-entrancy. */ 00229 00230 00231 #define _FS_REENTRANT 0 00232 #define _FS_TIMEOUT 1000 00233 #define _SYNC_t HANDLE 00234 /* The _FS_REENTRANT option switches the re-entrancy (thread safe) of the FatFs 00235 / module itself. Note that regardless of this option, file access to different 00236 / volume is always re-entrant and volume control functions, f_mount(), f_mkfs() 00237 / and f_fdisk() function, are always not re-entrant. Only file/directory access 00238 / to the same volume is under control of this feature. 00239 / 00240 / 0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect. 00241 / 1: Enable re-entrancy. Also user provided synchronization handlers, 00242 / ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj() 00243 / function, must be added to the project. Samples are available in 00244 / option/syscall.c. 00245 / 00246 / The _FS_TIMEOUT defines timeout period in unit of time tick. 00247 / The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*, 00248 / SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be 00249 / included somewhere in the scope of ff.c. */ 00250 00251 00252 #define _WORD_ACCESS 0 00253 /* The _WORD_ACCESS option is an only platform dependent option. It defines 00254 / which access method is used to the word data on the FAT volume. 00255 / 00256 / 0: Byte-by-byte access. Always compatible with all platforms. 00257 / 1: Word access. Do not choose this unless under both the following conditions. 00258 / 00259 / * Address misaligned memory access is always allowed to ALL instructions. 00260 / * Byte order on the memory is little-endian. 00261 / 00262 / If it is the case, _WORD_ACCESS can also be set to 1 to reduce code size. 00263 / Following table shows allowable settings of some type of processors. 00264 / 00265 / ARM7TDMI 0 *2 ColdFire 0 *1 V850E 0 *2 00266 / Cortex-M3 0 *3 Z80 0/1 V850ES 0/1 00267 / Cortex-M0 0 *2 x86 0/1 TLCS-870 0/1 00268 / AVR 0/1 RX600(LE) 0/1 TLCS-900 0/1 00269 / AVR32 0 *1 RL78 0 *2 R32C 0 *2 00270 / PIC18 0/1 SH-2 0 *1 M16C 0/1 00271 / PIC24 0 *2 H8S 0 *1 MSP430 0 *2 00272 / PIC32 0 *1 H8/300H 0 *1 8051 0/1 00273 / 00274 / *1:Big-endian. 00275 / *2:Unaligned memory access is not supported. 00276 / *3:Some compilers generate LDM/STM for mem_cpy function. 00277 */ 00278 00279 #define FLUSH_ON_NEW_CLUSTER 0 /* Sync the file on every new cluster */ 00280 #define FLUSH_ON_NEW_SECTOR 1 /* Sync the file on every new sector */ 00281 /* Only one of these two defines needs to be set to 1. If both are set to 0 00282 the file is only sync when closed. 00283 Clusters are group of sectors (eg: 8 sectors). Flushing on new cluster means 00284 it would be less often than flushing on new sector. Sectors are generally 00285 512 Bytes long. */
Generated on Thu Jul 28 2022 16:31:07 by
