1 R0.12b (September 4, 2016)
2 Improved f_rename() to be able to rename objects with the same name but case.
3 Fixed an error in the case conversion teble of code page 866. (ff.c)
4 Fixed writing data is truncated at the file offset 4GiB on the exFAT volume. (appeared at R0.12)
5 Fixed creating a file in the root directory of exFAT volume can fail. (appeared at R0.12)
6 Fixed f_mkfs() creating exFAT volume with too small cluster size can collapse unallocated memory. (appeared at R0.12)
7 Fixed wrong object name can be returned when read directory at Unicode cfg. (appeared at R0.12)
8 Fixed large file allocation/removing on the exFAT volume collapses allocation bitmap. (appeared at R0.12)
9 Fixed some internal errors in f_expand() and f_lseek(). (appeared at R0.12)
11 R0.12a (July 10, 2016)
12 Added support for creating exFAT volume with some changes of f_mkfs().
13 Added a file open method FA_OPEN_APPEND. An f_lseek() following f_open() is no longer needed.
14 f_forward() is available regardless of _FS_TINY.
15 Fixed f_mkfs() creates wrong volume. (appeared at R0.12)
16 Fixed wrong memory read in create_name(). (appeared at R0.12)
17 Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD.
19 R0.12 (April 12, 2016)
20 Added support for exFAT file system. (_FS_EXFAT)
21 Added f_expand(). (_USE_EXPAND)
22 Changed some members in FINFO structure and behavior of f_readdir().
23 Added an option _USE_CHMOD and removed an option _WORD_ACCESS.
24 Fixed errors in the case conversion teble of Unicode (cc*.c).
26 R0.11a (September 5, 2015)
27 Fixed wrong media change can lead a deadlock at thread-safe configuration.
28 Added code page 771, 860, 861, 863, 864, 865 and 869. (_CODE_PAGE)
29 Removed some code pages actually not exist on the standard systems. (_CODE_PAGE)
30 Fixed errors in the case conversion teble of code page 437 and 850 (ff.c).
31 Fixed errors in the case conversion teble of Unicode (cc*.c).
33 R0.11 (February 9, 2015)
34 Added f_findfirst() and f_findnext(). (_USE_FIND)
35 Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c)
36 Fixed _FS_NORTC option does not work properly. (appeared at R0.10c)
38 R0.10c (November 9, 2014)
39 Added a configuration option for the platforms without RTC. (_FS_NORTC)
40 Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). (appeared at R0.09b)
41 Fixed a potential problem of FAT access that can appear on disk error.
42 Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08)
45 Fixed a hard error in the disk I/O layer can collapse the directory entry.
46 Fixed LFN entry is not deleted on delete/rename an object with its lossy converted SFN. (appeared at R0.07)
48 R0.10a (January 15, 2014)
49 Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID)
50 Added an option for minimum sector size. (_MIN_SS)
51 2nd argument of f_rename() can have a drive number and it will be ignored.
52 Fixed f_mount() with forced mount fails when drive number is larger than 0. (appeared at R0.10)
53 Fixed f_close() invalidates the file object without volume lock.
54 Fixed volume lock is left acquired after return from f_closedir(). (appeared at R0.10)
55 Fixed creation of a directory entry with LFN fails on too many SFN collisions. (appeared at R0.07)
57 R0.10 (October 2, 2013)
58 Added an option for character encoding on the file. (_STRF_ENCODE)
60 Added forced full FAT scan option for f_getfree(). (_FS_NOFSINFO)
61 Added forced mount option with changes of f_mount().
62 Improved behavior of volume auto detection.
63 Improved write throughput of f_puts() and f_printf().
64 Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write().
65 Fixed f_write() can be truncated when the file size is close to 4GB.
66 Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect result code on error.
68 R0.09b (January 24, 2013)
69 Added f_getlabel() and f_setlabel(). (_USE_LABEL = 1)
71 R0.09a (August 27, 2012)
72 Fixed assertion failure due to OS/2 EA on FAT12/16 volume.
73 Changed file functions reject null object pointer to avoid crash.
74 Changed option name _FS_SHARE to _FS_LOCK.
76 R0.09 (September 6, 2011)
77 f_mkfs() supports multiple partition on a physical drive.
78 Added f_fdisk(). (_MULTI_PARTITION = 2)
80 R0.08b (January 15, 2011)
81 Fast seek function is also applied to f_read() and f_write().
82 f_lseek() reports required table size on creating CLMP.
83 Extended format syntax of f_printf().
84 Ignores duplicated directory separators in given path names.
86 R0.08a (August 16, 2010)
87 Added f_getcwd(). (_FS_RPATH = 2)
88 Added sector erase function. (_USE_ERASE)
89 Moved file lock semaphore table from fs object to the bss.
90 Fixed a wrong directory entry is created on non-LFN cfg when the given name contains ';'.
91 Fixed f_mkfs() creates wrong FAT32 volume.
94 Added a memory configuration option. (_USE_LFN)
95 Added support of file lock. (_FS_SHARE)
96 Added fast seek function. (_USE_FASTSEEK)
97 Changed some types on the API, XCHAR->TCHAR.
98 Changed fname member in the FILINFO structure on Unicode cfg.
99 String functions support UTF-8 encoding files on Unicode cfg.
101 R0.07e (November 3, 2009)
102 Separated out configuration options from ff.h to ffconf.h.
103 Added a configuration option, _LFN_UNICODE.
104 Fixed f_unlink() fails to remove a sub-dir on _FS_RPATH.
105 Fixed name matching error on the 13 char boundary.
106 Changed f_readdir() to return the SFN with always upper case on non-LFN cfg.
108 R0.07c (Junuary 21, 2009)
109 Fixed f_unlink() may return FR_OK on error.
110 Fixed wrong cache control in f_lseek().
111 Added support of relative path.
114 Added proper case conversion to extended characters.
116 R0.07a (April 14, 2009)
117 Separated out OS dependent code on re-entrant configuration.
118 Added multiple sector size support.
120 R0.07 (April 1, 2009)
121 Merged Tiny-FatFs into FatFs as a buffer configuration option.
122 Added long file name support.
123 Added multiple code page support.
124 Added re-entrancy for multitask operation.
125 Added auto cluster size selection to f_mkfs().
126 Added rewind option to f_readdir().
127 Changed result code of critical errors.
128 Renamed string functions to avoid name collision.
130 R0.06 (April 1, 2008)
131 Added f_forward. (Tiny-FatFs)
132 Added string functions: fgets, fputc, fputs and fprintf.
133 Improved performance of f_lseek on moving to the same or following cluster.
135 R0.05a (February 3, 2008)
138 Fixed off by one error at FAT sub-type determination.
139 Fixed btr in f_read can be mistruncated.
140 Fixed cached sector is left not flushed when create and close without write.
142 R0.05 (August 26, 2007)
143 Changed arguments of f_read, f_write.
144 Changed arguments of f_mkfs. (FatFs)
145 Fixed f_mkfs on FAT32 creates incorrect FSInfo. (FatFs)
146 Fixed f_mkdir on FAT32 creates incorrect directory. (FatFs)
149 Added _USE_NTFLAG option.
150 Added FSInfo support.
151 Fixed some problems corresponds to FAT32. (Tiny-FatFs)
152 Fixed DBCS name can result FR_INVALID_NAME.
153 Fixed short seek (<= csize) collapses the file object.
155 R0.04a (April 1, 2007)
156 Supported multiple partitions on a plysical drive. (FatFs)
157 Added minimization level 3.
158 Added a capability of extending file size to f_lseek.
159 Fixed an endian sensitive code in f_mkfs. (FatFs)
160 Fixed a problem corresponds to FAT32 support. (Tiny-FatFs)
162 R0.04 (February 4, 2007)
163 Supported multiple drive system. (FatFs)
164 Changed some APIs for multiple drive system.
165 Added f_mkfs. (FatFs)
166 Added _USE_FAT32 option. (Tiny-FatFs)
168 R0.03a (December 11, 2006)
169 Improved cluster scan algolithm to write files fast.
170 Fixed f_mkdir creates incorrect directory on FAT32.
172 R0.03 (September 22, 2006)
174 Changed option _FS_MINIMUM to _FS_MINIMIZE.
176 R0.02a (June 10, 2006)
177 Added a configuration option _FS_MINIMUM.
181 Removed unbuffered mode.
182 Fixed a problem on small (<32M) patition.
184 R0.01 (April 29, 2006)
187 R0.00 (February 26, 2006)
188 Prototype (not released)