33----------------------------------------------------------------------------
44
55R0.00 (February 26, 2006)
6+
67 Prototype.
78
89
10+
911R0.01 (April 29, 2006)
10- First stable version.
12+
13+ The first release.
14+
1115
1216
1317R0.02 (June 01, 2006)
18+
1419 Added FAT12 support.
1520 Removed unbuffered mode.
1621 Fixed a problem on small (<32M) partition.
1722
1823
24+
1925R0.02a (June 10, 2006)
26+
2027 Added a configuration option (_FS_MINIMUM).
2128
2229
30+
2331R0.03 (September 22, 2006)
32+
2433 Added f_rename().
2534 Changed option _FS_MINIMUM to _FS_MINIMIZE.
2635
2736
37+
2838R0.03a (December 11, 2006)
39+
2940 Improved cluster scan algorithm to write files fast.
3041 Fixed f_mkdir() creates incorrect directory on FAT32.
3142
3243
44+
3345R0.04 (February 04, 2007)
46+
3447 Added f_mkfs().
3548 Supported multiple drive system.
3649 Changed some interfaces for multiple drive system.
3750 Changed f_mountdrv() to f_mount().
3851
3952
53+
4054R0.04a (April 01, 2007)
55+
4156 Supported multiple partitions on a physical drive.
4257 Added a capability of extending file size to f_lseek().
4358 Added minimization level 3.
4459 Fixed an endian sensitive code in f_mkfs().
4560
4661
62+
4763R0.04b (May 05, 2007)
64+
4865 Added a configuration option _USE_NTFLAG.
4966 Added FSINFO support.
5067 Fixed DBCS name can result FR_INVALID_NAME.
5168 Fixed short seek (<= csize) collapses the file object.
5269
5370
71+
5472R0.05 (August 25, 2007)
73+
5574 Changed arguments of f_read(), f_write() and f_mkfs().
5675 Fixed f_mkfs() on FAT32 creates incorrect FSINFO.
5776 Fixed f_mkdir() on FAT32 creates incorrect directory.
5877
5978
79+
6080R0.05a (February 03, 2008)
81+
6182 Added f_truncate() and f_utime().
6283 Fixed off by one error at FAT sub-type determination.
6384 Fixed btr in f_read() can be mistruncated.
6485 Fixed cached sector is not flushed when create and close without write.
6586
6687
88+
6789R0.06 (April 01, 2008)
90+
6891 Added fputc(), fputs(), fprintf() and fgets().
6992 Improved performance of f_lseek() on moving to the same or following cluster.
7093
7194
95+
7296R0.07 (April 01, 2009)
97+
7398 Merged Tiny-FatFs as a configuration option. (_FS_TINY)
7499 Added long file name feature. (_USE_LFN)
75100 Added multiple code page feature. (_CODE_PAGE)
@@ -80,28 +105,36 @@ R0.07 (April 01, 2009)
80105 Renamed string functions to avoid name collision.
81106
82107
108+
83109R0.07a (April 14, 2009)
110+
84111 Septemberarated out OS dependent code on reentrant cfg.
85112 Added multiple sector size feature.
86113
87114
115+
88116R0.07c (June 21, 2009)
117+
89118 Fixed f_unlink() can return FR_OK on error.
90119 Fixed wrong cache control in f_lseek().
91120 Added relative path feature.
92121 Added f_chdir() and f_chdrive().
93122 Added proper case conversion to extended character.
94123
95124
125+
96126R0.07e (November 03, 2009)
127+
97128 Septemberarated out configuration options from ff.h to ffconf.h.
98129 Fixed f_unlink() fails to remove a sub-directory on _FS_RPATH.
99130 Fixed name matching error on the 13 character boundary.
100131 Added a configuration option, _LFN_UNICODE.
101132 Changed f_readdir() to return the SFN with always upper case on non-LFN cfg.
102133
103134
135+
104136R0.08 (May 15, 2010)
137+
105138 Added a memory configuration option. (_USE_LFN = 3)
106139 Added file lock feature. (_FS_SHARE)
107140 Added fast seek feature. (_USE_FASTSEEK)
@@ -110,36 +143,48 @@ R0.08 (May 15, 2010)
110143 String functions support UTF-8 encoding files on Unicode cfg.
111144
112145
146+
113147R0.08a (August 16, 2010)
148+
114149 Added f_getcwd(). (_FS_RPATH = 2)
115150 Added sector erase feature. (_USE_ERASE)
116151 Moved file lock semaphore table from fs object to the bss.
117152 Fixed f_mkfs() creates wrong FAT32 volume.
118153
119154
155+
120156R0.08b (January 15, 2011)
157+
121158 Fast seek feature is also applied to f_read() and f_write().
122159 f_lseek() reports required table size on creating CLMP.
123160 Extended format syntax of f_printf().
124161 Ignores duplicated directory separators in given path name.
125162
126163
164+
127165R0.09 (September 06, 2011)
166+
128167 f_mkfs() supports multiple partition to complete the multiple partition feature.
129168 Added f_fdisk().
130169
131170
171+
132172R0.09a (August 27, 2012)
173+
133174 Changed f_open() and f_opendir() reject null object pointer to avoid crash.
134175 Changed option name _FS_SHARE to _FS_LOCK.
135176 Fixed assertion failure due to OS/2 EA on FAT12/16 volume.
136177
137178
179+
138180R0.09b (January 24, 2013)
181+
139182 Added f_setlabel() and f_getlabel().
140183
141184
185+
142186R0.10 (October 02, 2013)
187+
143188 Added selection of character encoding on the file. (_STRF_ENCODE)
144189 Added f_closedir().
145190 Added forced full FAT scan for f_getfree(). (_FS_NOFSINFO)
@@ -148,10 +193,12 @@ R0.10 (October 02, 2013)
148193 Improved write throughput of f_puts() and f_printf().
149194 Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write().
150195 Fixed f_write() can be truncated when the file size is close to 4GB.
151- Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect error code.
196+ Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect value on error.
197+
152198
153199
154200R0.10a (January 15, 2014)
201+
155202 Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID)
156203 Added a configuration option of minimum sector size. (_MIN_SS)
157204 2nd argument of f_rename() can have a drive number and it will be ignored.
@@ -161,20 +208,81 @@ R0.10a (January 15, 2014)
161208 Fixed creation of an entry with LFN fails on too many SFN collisions. (appeared at R0.07)
162209
163210
211+
164212R0.10b (May 19, 2014)
213+
165214 Fixed a hard error in the disk I/O layer can collapse the directory entry.
166- Fixed LFN entry is not deleted on delete/rename an object with lossy converted SFN. (appeared at R0.07)
215+ Fixed LFN entry is not deleted when delete/rename an object with lossy converted SFN. (appeared at R0.07)
216+
167217
168218
169219R0.10c (November 09, 2014)
220+
170221 Added a configuration option for the platforms without RTC. (_FS_NORTC)
171222 Changed option name _USE_ERASE to _USE_TRIM.
172223 Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). (appeared at R0.09b)
173224 Fixed a potential problem of FAT access that can appear on disk error.
174225 Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08)
175226
176227
228+
177229R0.11 (February 09, 2015)
230+
178231 Added f_findfirst(), f_findnext() and f_findclose(). (_USE_FIND)
179232 Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c)
180233 Fixed _FS_NORTC option does not work properly. (appeared at R0.10c)
234+
235+
236+
237+ R0.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+
247+ R0.12 (April 12, 2016)
248+
249+ Added support for exFAT file system. (_FS_EXFAT)
250+ Added f_expand(). (_USE_EXPAND)
251+ Changed some members in FINFO structure and behavior of f_readdir().
252+ Added an option _USE_CHMOD.
253+ Removed an option _WORD_ACCESS.
254+ Fixed errors in the case conversion table of Unicode (cc*.c).
255+
256+
257+
258+ R0.12a (July 10, 2016)
259+
260+ Added support for creating exFAT volume with some changes of f_mkfs().
261+ Added a file open method FA_OPEN_APPEND. An f_lseek() following f_open() is no longer needed.
262+ f_forward() is available regardless of _FS_TINY.
263+ Fixed f_mkfs() creates wrong volume. (appeared at R0.12)
264+ Fixed wrong memory read in create_name(). (appeared at R0.12)
265+ Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD.
266+
267+
268+
269+ R0.12b (September 04, 2016)
270+
271+ Made f_rename() be able to rename objects with the same name but case.
272+ Fixed an error in the case conversion teble of code page 866. (ff.c)
273+ Fixed writing data is truncated at the file offset 4GiB on the exFAT volume. (appeared at R0.12)
274+ Fixed creating a file in the root directory of exFAT volume can fail. (appeared at R0.12)
275+ Fixed f_mkfs() creating exFAT volume with too small cluster size can collapse unallocated memory. (appeared at R0.12)
276+ Fixed wrong object name can be returned when read directory at Unicode cfg. (appeared at R0.12)
277+ Fixed large file allocation/removing on the exFAT volume collapses allocation bitmap. (appeared at R0.12)
278+ Fixed some internal errors in f_expand() and f_lseek(). (appeared at R0.12)
279+
280+
281+
282+ R0.12c (March 04, 2017)
283+
284+ Improved write throughput at the fragmented file on the exFAT volume.
285+ Made memory usage for exFAT be able to be reduced as decreasing _MAX_LFN.
286+ Fixed successive f_getfree() can return wrong count on the FAT12/16 volume. (appeared at R0.12)
287+ Fixed configuration option _VOLUMES cannot be set 10. (appeared at R0.10c)
288+
0 commit comments