xref: /nrf52832-nimble/rt-thread/components/dfs/filesystems/elmfat/00history.txt (revision 104654410c56c573564690304ae786df310c91fc)
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