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