1---------------------------------------------------------------------------- 2 Revision history of FatFs module 3---------------------------------------------------------------------------- 4 5R0.00 (February 26, 2006) 6 7 Prototype. 8 9 10 11R0.01 (April 29, 2006) 12 13 First stable version. 14 15 16 17R0.02 (June 01, 2006) 18 19 Added FAT12 support. 20 Removed unbuffered mode. 21 Fixed a problem on small (<32M) partition. 22 23 24 25R0.02a (June 10, 2006) 26 27 Added a configuration option (_FS_MINIMUM). 28 29 30 31R0.03 (September 22, 2006) 32 33 Added f_rename(). 34 Changed option _FS_MINIMUM to _FS_MINIMIZE. 35 36 37 38R0.03a (December 11, 2006) 39 40 Improved cluster scan algorithm to write files fast. 41 Fixed f_mkdir() creates incorrect directory on FAT32. 42 43 44 45R0.04 (February 04, 2007) 46 47 Added f_mkfs(). 48 Supported multiple drive system. 49 Changed some interfaces for multiple drive system. 50 Changed f_mountdrv() to f_mount(). 51 52 53 54R0.04a (April 01, 2007) 55 56 Supported multiple partitions on a physical drive. 57 Added a capability of extending file size to f_lseek(). 58 Added minimization level 3. 59 Fixed an endian sensitive code in f_mkfs(). 60 61 62 63R0.04b (May 05, 2007) 64 65 Added a configuration option _USE_NTFLAG. 66 Added FSINFO support. 67 Fixed DBCS name can result FR_INVALID_NAME. 68 Fixed short seek (<= csize) collapses the file object. 69 70 71 72R0.05 (August 25, 2007) 73 74 Changed arguments of f_read(), f_write() and f_mkfs(). 75 Fixed f_mkfs() on FAT32 creates incorrect FSINFO. 76 Fixed f_mkdir() on FAT32 creates incorrect directory. 77 78 79 80R0.05a (February 03, 2008) 81 82 Added f_truncate() and f_utime(). 83 Fixed off by one error at FAT sub-type determination. 84 Fixed btr in f_read() can be mistruncated. 85 Fixed cached sector is not flushed when create and close without write. 86 87 88 89R0.06 (April 01, 2008) 90 91 Added fputc(), fputs(), fprintf() and fgets(). 92 Improved performance of f_lseek() on moving to the same or following cluster. 93 94 95 96R0.07 (April 01, 2009) 97 98 Merged Tiny-FatFs as a configuration option. (_FS_TINY) 99 Added long file name feature. (_USE_LFN) 100 Added multiple code page feature. (_CODE_PAGE) 101 Added re-entrancy for multitask operation. (_FS_REENTRANT) 102 Added auto cluster size selection to f_mkfs(). 103 Added rewind option to f_readdir(). 104 Changed result code of critical errors. 105 Renamed string functions to avoid name collision. 106 107 108 109R0.07a (April 14, 2009) 110 111 Septemberarated out OS dependent code on reentrant cfg. 112 Added multiple sector size feature. 113 114 115 116R0.07c (June 21, 2009) 117 118 Fixed f_unlink() can return FR_OK on error. 119 Fixed wrong cache control in f_lseek(). 120 Added relative path feature. 121 Added f_chdir() and f_chdrive(). 122 Added proper case conversion to extended character. 123 124 125 126R0.07e (November 03, 2009) 127 128 Septemberarated out configuration options from ff.h to ffconf.h. 129 Fixed f_unlink() fails to remove a sub-directory on _FS_RPATH. 130 Fixed name matching error on the 13 character boundary. 131 Added a configuration option, _LFN_UNICODE. 132 Changed f_readdir() to return the SFN with always upper case on non-LFN cfg. 133 134 135 136R0.08 (May 15, 2010) 137 138 Added a memory configuration option. (_USE_LFN = 3) 139 Added file lock feature. (_FS_SHARE) 140 Added fast seek feature. (_USE_FASTSEEK) 141 Changed some types on the API, XCHAR->TCHAR. 142 Changed .fname in the FILINFO structure on Unicode cfg. 143 String functions support UTF-8 encoding files on Unicode cfg. 144 145 146 147R0.08a (August 16, 2010) 148 149 Added f_getcwd(). (_FS_RPATH = 2) 150 Added sector erase feature. (_USE_ERASE) 151 Moved file lock semaphore table from fs object to the bss. 152 Fixed f_mkfs() creates wrong FAT32 volume. 153 154 155 156R0.08b (January 15, 2011) 157 158 Fast seek feature is also applied to f_read() and f_write(). 159 f_lseek() reports required table size on creating CLMP. 160 Extended format syntax of f_printf(). 161 Ignores duplicated directory separators in given path name. 162 163 164 165R0.09 (September 06, 2011) 166 167 f_mkfs() supports multiple partition to complete the multiple partition feature. 168 Added f_fdisk(). 169 170 171 172R0.09a (August 27, 2012) 173 174 Changed f_open() and f_opendir() reject null object pointer to avoid crash. 175 Changed option name _FS_SHARE to _FS_LOCK. 176 Fixed assertion failure due to OS/2 EA on FAT12/16 volume. 177 178 179 180R0.09b (January 24, 2013) 181 182 Added f_setlabel() and f_getlabel(). 183 184 185 186R0.10 (October 02, 2013) 187 188 Added selection of character encoding on the file. (_STRF_ENCODE) 189 Added f_closedir(). 190 Added forced full FAT scan for f_getfree(). (_FS_NOFSINFO) 191 Added forced mount feature with changes of f_mount(). 192 Improved behavior of volume auto detection. 193 Improved write throughput of f_puts() and f_printf(). 194 Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write(). 195 Fixed f_write() can be truncated when the file size is close to 4GB. 196 Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect error code. 197 198 199 200R0.10a (January 15, 2014) 201 202 Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID) 203 Added a configuration option of minimum sector size. (_MIN_SS) 204 2nd argument of f_rename() can have a drive number and it will be ignored. 205 Fixed f_mount() with forced mount fails when drive number is >= 1. (appeared at R0.10) 206 Fixed f_close() invalidates the file object without volume lock. 207 Fixed f_closedir() returns but the volume lock is left acquired. (appeared at R0.10) 208 Fixed creation of an entry with LFN fails on too many SFN collisions. (appeared at R0.07) 209 210 211 212R0.10b (May 19, 2014) 213 214 Fixed a hard error in the disk I/O layer can collapse the directory entry. 215 Fixed LFN entry is not deleted on delete/rename an object with lossy converted SFN. (appeared at R0.07) 216 217 218 219R0.10c (November 09, 2014) 220 221 Added a configuration option for the platforms without RTC. (_FS_NORTC) 222 Changed option name _USE_ERASE to _USE_TRIM. 223 Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). (appeared at R0.09b) 224 Fixed a potential problem of FAT access that can appear on disk error. 225 Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08) 226 227 228 229R0.11 (February 09, 2015) 230 231 Added f_findfirst(), f_findnext() and f_findclose(). (_USE_FIND) 232 Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c) 233 Fixed _FS_NORTC option does not work properly. (appeared at R0.10c) 234 235 236 237R0.11a (September 05, 2015) 238 239 Fixed wrong media change can lead a deadlock at thread-safe configuration. 240 Added code page 771, 860, 861, 863, 864, 865 and 869. (_CODE_PAGE) 241 Removed some code pages actually not exist on the standard systems. (_CODE_PAGE) 242 Fixed errors in the case conversion teble of code page 437 and 850 (ff.c). 243 Fixed errors in the case conversion teble of Unicode (cc*.c). 244 245 246