]>
Commit | Line | Data |
---|---|---|
70702af1 L |
1 | ----------------------------------------------------------------------------\r |
2 | Revision history of FatFs module\r | |
3 | ----------------------------------------------------------------------------\r | |
4 | \r | |
5 | R0.00 (February 26, 2006)\r | |
6 | \r | |
7 | Prototype.\r | |
8 | \r | |
9 | \r | |
10 | \r | |
11 | R0.01 (April 29, 2006)\r | |
12 | \r | |
13 | The first release.\r | |
14 | \r | |
15 | \r | |
16 | \r | |
17 | R0.02 (June 01, 2006)\r | |
18 | \r | |
19 | Added FAT12 support.\r | |
20 | Removed unbuffered mode.\r | |
21 | Fixed a problem on small (<32M) partition.\r | |
22 | \r | |
23 | \r | |
24 | \r | |
25 | R0.02a (June 10, 2006)\r | |
26 | \r | |
27 | Added a configuration option (_FS_MINIMUM).\r | |
28 | \r | |
29 | \r | |
30 | \r | |
31 | R0.03 (September 22, 2006)\r | |
32 | \r | |
33 | Added f_rename().\r | |
34 | Changed option _FS_MINIMUM to _FS_MINIMIZE.\r | |
35 | \r | |
36 | \r | |
37 | \r | |
38 | R0.03a (December 11, 2006)\r | |
39 | \r | |
40 | Improved cluster scan algorithm to write files fast.\r | |
41 | Fixed f_mkdir() creates incorrect directory on FAT32.\r | |
42 | \r | |
43 | \r | |
44 | \r | |
45 | R0.04 (February 04, 2007)\r | |
46 | \r | |
47 | Added f_mkfs().\r | |
48 | Supported multiple drive system.\r | |
49 | Changed some interfaces for multiple drive system.\r | |
50 | Changed f_mountdrv() to f_mount().\r | |
51 | \r | |
52 | \r | |
53 | \r | |
54 | R0.04a (April 01, 2007)\r | |
55 | \r | |
56 | Supported multiple partitions on a physical drive.\r | |
57 | Added a capability of extending file size to f_lseek().\r | |
58 | Added minimization level 3.\r | |
59 | Fixed an endian sensitive code in f_mkfs().\r | |
60 | \r | |
61 | \r | |
62 | \r | |
63 | R0.04b (May 05, 2007)\r | |
64 | \r | |
65 | Added a configuration option _USE_NTFLAG.\r | |
66 | Added FSINFO support.\r | |
67 | Fixed DBCS name can result FR_INVALID_NAME.\r | |
68 | Fixed short seek (<= csize) collapses the file object.\r | |
69 | \r | |
70 | \r | |
71 | \r | |
72 | R0.05 (August 25, 2007)\r | |
73 | \r | |
74 | Changed arguments of f_read(), f_write() and f_mkfs().\r | |
75 | Fixed f_mkfs() on FAT32 creates incorrect FSINFO.\r | |
76 | Fixed f_mkdir() on FAT32 creates incorrect directory.\r | |
77 | \r | |
78 | \r | |
79 | \r | |
80 | R0.05a (February 03, 2008)\r | |
81 | \r | |
82 | Added f_truncate() and f_utime().\r | |
83 | Fixed off by one error at FAT sub-type determination.\r | |
84 | Fixed btr in f_read() can be mistruncated.\r | |
85 | Fixed cached sector is not flushed when create and close without write.\r | |
86 | \r | |
87 | \r | |
88 | \r | |
89 | R0.06 (April 01, 2008)\r | |
90 | \r | |
91 | Added fputc(), fputs(), fprintf() and fgets().\r | |
92 | Improved performance of f_lseek() on moving to the same or following cluster.\r | |
93 | \r | |
94 | \r | |
95 | \r | |
96 | R0.07 (April 01, 2009)\r | |
97 | \r | |
98 | Merged Tiny-FatFs as a configuration option. (_FS_TINY)\r | |
99 | Added long file name feature. (_USE_LFN)\r | |
100 | Added multiple code page feature. (_CODE_PAGE)\r | |
101 | Added re-entrancy for multitask operation. (_FS_REENTRANT)\r | |
102 | Added auto cluster size selection to f_mkfs().\r | |
103 | Added rewind option to f_readdir().\r | |
104 | Changed result code of critical errors.\r | |
105 | Renamed string functions to avoid name collision.\r | |
106 | \r | |
107 | \r | |
108 | \r | |
109 | R0.07a (April 14, 2009)\r | |
110 | \r | |
111 | Septemberarated out OS dependent code on reentrant cfg.\r | |
112 | Added multiple sector size feature.\r | |
113 | \r | |
114 | \r | |
115 | \r | |
116 | R0.07c (June 21, 2009)\r | |
117 | \r | |
118 | Fixed f_unlink() can return FR_OK on error.\r | |
119 | Fixed wrong cache control in f_lseek().\r | |
120 | Added relative path feature.\r | |
121 | Added f_chdir() and f_chdrive().\r | |
122 | Added proper case conversion to extended character.\r | |
123 | \r | |
124 | \r | |
125 | \r | |
126 | R0.07e (November 03, 2009)\r | |
127 | \r | |
128 | Septemberarated out configuration options from ff.h to ffconf.h.\r | |
129 | Fixed f_unlink() fails to remove a sub-directory on _FS_RPATH.\r | |
130 | Fixed name matching error on the 13 character boundary.\r | |
131 | Added a configuration option, _LFN_UNICODE.\r | |
132 | Changed f_readdir() to return the SFN with always upper case on non-LFN cfg.\r | |
133 | \r | |
134 | \r | |
135 | \r | |
136 | R0.08 (May 15, 2010)\r | |
137 | \r | |
138 | Added a memory configuration option. (_USE_LFN = 3)\r | |
139 | Added file lock feature. (_FS_SHARE)\r | |
140 | Added fast seek feature. (_USE_FASTSEEK)\r | |
141 | Changed some types on the API, XCHAR->TCHAR.\r | |
142 | Changed .fname in the FILINFO structure on Unicode cfg.\r | |
143 | String functions support UTF-8 encoding files on Unicode cfg.\r | |
144 | \r | |
145 | \r | |
146 | \r | |
147 | R0.08a (August 16, 2010)\r | |
148 | \r | |
149 | Added f_getcwd(). (_FS_RPATH = 2)\r | |
150 | Added sector erase feature. (_USE_ERASE)\r | |
151 | Moved file lock semaphore table from fs object to the bss.\r | |
152 | Fixed f_mkfs() creates wrong FAT32 volume.\r | |
153 | \r | |
154 | \r | |
155 | \r | |
156 | R0.08b (January 15, 2011)\r | |
157 | \r | |
158 | Fast seek feature is also applied to f_read() and f_write().\r | |
159 | f_lseek() reports required table size on creating CLMP.\r | |
160 | Extended format syntax of f_printf().\r | |
161 | Ignores duplicated directory separators in given path name.\r | |
162 | \r | |
163 | \r | |
164 | \r | |
165 | R0.09 (September 06, 2011)\r | |
166 | \r | |
167 | f_mkfs() supports multiple partition to complete the multiple partition feature.\r | |
168 | Added f_fdisk().\r | |
169 | \r | |
170 | \r | |
171 | \r | |
172 | R0.09a (August 27, 2012)\r | |
173 | \r | |
174 | Changed f_open() and f_opendir() reject null object pointer to avoid crash.\r | |
175 | Changed option name _FS_SHARE to _FS_LOCK.\r | |
176 | Fixed assertion failure due to OS/2 EA on FAT12/16 volume.\r | |
177 | \r | |
178 | \r | |
179 | \r | |
180 | R0.09b (January 24, 2013)\r | |
181 | \r | |
182 | Added f_setlabel() and f_getlabel().\r | |
183 | \r | |
184 | \r | |
185 | \r | |
186 | R0.10 (October 02, 2013)\r | |
187 | \r | |
188 | Added selection of character encoding on the file. (_STRF_ENCODE)\r | |
189 | Added f_closedir().\r | |
190 | Added forced full FAT scan for f_getfree(). (_FS_NOFSINFO)\r | |
191 | Added forced mount feature with changes of f_mount().\r | |
192 | Improved behavior of volume auto detection.\r | |
193 | Improved write throughput of f_puts() and f_printf().\r | |
194 | Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write().\r | |
195 | Fixed f_write() can be truncated when the file size is close to 4GB.\r | |
196 | Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect value on error.\r | |
197 | \r | |
198 | \r | |
199 | \r | |
200 | R0.10a (January 15, 2014)\r | |
201 | \r | |
202 | Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID)\r | |
203 | Added a configuration option of minimum sector size. (_MIN_SS)\r | |
204 | 2nd argument of f_rename() can have a drive number and it will be ignored.\r | |
205 | Fixed f_mount() with forced mount fails when drive number is >= 1. (appeared at R0.10)\r | |
206 | Fixed f_close() invalidates the file object without volume lock.\r | |
207 | Fixed f_closedir() returns but the volume lock is left acquired. (appeared at R0.10)\r | |
208 | Fixed creation of an entry with LFN fails on too many SFN collisions. (appeared at R0.07)\r | |
209 | \r | |
210 | \r | |
211 | \r | |
212 | R0.10b (May 19, 2014)\r | |
213 | \r | |
214 | Fixed a hard error in the disk I/O layer can collapse the directory entry.\r | |
289f6a14 | 215 | Fixed LFN entry is not deleted when delete/rename an object with lossy converted SFN. (appeared at R0.07)\r |
70702af1 L |
216 | \r |
217 | \r | |
218 | \r | |
219 | R0.10c (November 09, 2014)\r | |
220 | \r | |
221 | Added a configuration option for the platforms without RTC. (_FS_NORTC)\r | |
222 | Changed option name _USE_ERASE to _USE_TRIM.\r | |
223 | Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). (appeared at R0.09b)\r | |
224 | Fixed a potential problem of FAT access that can appear on disk error.\r | |
225 | Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08)\r | |
226 | \r | |
227 | \r | |
228 | \r | |
229 | R0.11 (February 09, 2015)\r | |
230 | \r | |
231 | Added f_findfirst(), f_findnext() and f_findclose(). (_USE_FIND)\r | |
232 | Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c)\r | |
233 | Fixed _FS_NORTC option does not work properly. (appeared at R0.10c)\r | |
234 | \r | |
235 | \r | |
236 | \r | |
237 | R0.11a (September 05, 2015)\r | |
238 | \r | |
239 | Fixed wrong media change can lead a deadlock at thread-safe configuration.\r | |
240 | Added code page 771, 860, 861, 863, 864, 865 and 869. (_CODE_PAGE)\r | |
241 | Removed some code pages actually not exist on the standard systems. (_CODE_PAGE)\r | |
242 | Fixed errors in the case conversion teble of code page 437 and 850 (ff.c).\r | |
243 | Fixed errors in the case conversion teble of Unicode (cc*.c).\r | |
244 | \r | |
245 | \r | |
246 | \r | |
247 | R0.12 (April 12, 2016)\r | |
248 | \r | |
249 | Added support for exFAT file system. (_FS_EXFAT)\r | |
250 | Added f_expand(). (_USE_EXPAND)\r | |
251 | Changed some members in FINFO structure and behavior of f_readdir().\r | |
252 | Added an option _USE_CHMOD.\r | |
253 | Removed an option _WORD_ACCESS.\r | |
254 | Fixed errors in the case conversion table of Unicode (cc*.c).\r | |
255 | \r | |
256 | \r | |
257 | \r | |
258 | R0.12a (July 10, 2016)\r | |
259 | \r | |
260 | Added support for creating exFAT volume with some changes of f_mkfs().\r | |
261 | Added a file open method FA_OPEN_APPEND. An f_lseek() following f_open() is no longer needed.\r | |
262 | f_forward() is available regardless of _FS_TINY.\r | |
263 | Fixed f_mkfs() creates wrong volume. (appeared at R0.12)\r | |
264 | Fixed wrong memory read in create_name(). (appeared at R0.12)\r | |
265 | Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD.\r | |
266 | \r | |
267 | \r | |
268 | \r | |
269 | R0.12b (September 04, 2016)\r | |
270 | \r | |
289f6a14 | 271 | Made f_rename() be able to rename objects with the same name but case.\r |
70702af1 L |
272 | Fixed an error in the case conversion teble of code page 866. (ff.c)\r |
273 | Fixed writing data is truncated at the file offset 4GiB on the exFAT volume. (appeared at R0.12)\r | |
274 | Fixed creating a file in the root directory of exFAT volume can fail. (appeared at R0.12)\r | |
275 | Fixed f_mkfs() creating exFAT volume with too small cluster size can collapse unallocated memory. (appeared at R0.12)\r | |
276 | Fixed wrong object name can be returned when read directory at Unicode cfg. (appeared at R0.12)\r | |
277 | Fixed large file allocation/removing on the exFAT volume collapses allocation bitmap. (appeared at R0.12)\r | |
278 | Fixed some internal errors in f_expand() and f_lseek(). (appeared at R0.12)\r | |
279 | \r | |
289f6a14 L |
280 | \r |
281 | \r | |
282 | R0.12c (March 04, 2017)\r | |
283 | \r | |
284 | Improved write throughput at the fragmented file on the exFAT volume.\r | |
285 | Made memory usage for exFAT be able to be reduced as decreasing _MAX_LFN.\r | |
286 | Fixed successive f_getfree() can return wrong count on the FAT12/16 volume. (appeared at R0.12)\r | |
287 | Fixed configuration option _VOLUMES cannot be set 10. (appeared at R0.10c)\r | |
288 | \r | |
289 | \r | |
290 | \r | |
291 | R0.13 (May 21, 2017)\r | |
292 | \r | |
293 | Changed heading character of configuration keywords "_" to "FF_".\r | |
294 | Removed ASCII-only configuration, FF_CODE_PAGE = 1. Use FF_CODE_PAGE = 437 instead.\r | |
295 | Added f_setcp(), run-time code page configuration. (FF_CODE_PAGE = 0)\r | |
296 | Improved cluster allocation time on stretch a deep buried cluster chain.\r | |
297 | Improved processing time of f_mkdir() with large cluster size by using FF_USE_LFN = 3.\r | |
298 | Improved NoFatChain flag of the fragmented file to be set after it is truncated and got contiguous.\r | |
299 | Fixed archive attribute is left not set when a file on the exFAT volume is renamed. (appeared at R0.12)\r | |
300 | Fixed exFAT FAT entry can be collapsed when write or lseek operation to the existing file is done. (appeared at R0.12c)\r | |
301 | Fixed creating a file can fail when a new cluster allocation to the exFAT directory occures. (appeared at R0.12c)\r | |
302 | \r | |
303 | \r | |
304 | \r | |
305 | R0.13a (October 14, 2017)\r | |
306 | \r | |
307 | Added support for UTF-8 encoding on the API. (FF_LFN_UNICODE = 2)\r | |
308 | Added options for file name output buffer. (FF_LFN_BUF, FF_SFN_BUF).\r | |
309 | Added dynamic memory allocation option for working buffer of f_mkfs() and f_fdisk().\r | |
310 | Fixed f_fdisk() and f_mkfs() create the partition table with wrong CHS parameters. (appeared at R0.09)\r | |
311 | Fixed f_unlink() can cause lost clusters at fragmented file on the exFAT volume. (appeared at R0.12c)\r | |
312 | Fixed f_setlabel() rejects some valid characters for exFAT volume. (appeared at R0.12)\r | |
313 | \r | |
314 | \r | |
315 | \r | |
316 | R0.13b (April 07, 2018)\r | |
317 | \r | |
318 | Added support for UTF-32 encoding on the API. (FF_LFN_UNICODE = 3)\r | |
319 | Added support for Unix style volume ID. (FF_STR_VOLUME_ID = 2)\r | |
320 | Fixed accesing any object on the exFAT root directory beyond the cluster boundary can fail. (appeared at R0.12c)\r | |
321 | Fixed f_setlabel() does not reject some invalid characters. (appeared at R0.09b)\r | |
322 | \r | |
323 | \r | |
324 | \r | |
5630b930 L |
325 | R0.13c (October 14, 2018)\r |
326 | Supported stdint.h for C99 and later. (integer.h was included in ff.h)\r | |
327 | Fixed reading a directory gets infinite loop when the last directory entry is not empty. (appeared at R0.12)\r | |
328 | Fixed creating a sub-directory in the fragmented sub-directory on the exFAT volume collapses FAT chain of the parent directory. (appeared at R0.12)\r | |
329 | Fixed f_getcwd() cause output buffer overrun when the buffer has a valid drive number. (appeared at R0.13b)\r | |
330 | \r | |
331 | \r | |
332 | \r | |
333 | R0.14 (October 14, 2019)\r | |
334 | Added support for 64-bit LBA and GUID partition table (FF_LBA64 = 1)\r | |
335 | Changed some API functions, f_mkfs() and f_fdisk().\r | |
336 | Fixed f_open() function cannot find the file with file name in length of FF_MAX_LFN characters.\r | |
337 | Fixed f_readdir() function cannot retrieve long file names in length of FF_MAX_LFN - 1 characters.\r | |
338 | Fixed f_readdir() function returns file names with wrong case conversion. (appeared at R0.12)\r | |
339 | Fixed f_mkfs() function can fail to create exFAT volume in the second partition. (appeared at R0.12)\r | |
340 | \r | |
341 | \r | |
342 | R0.14a (December 5, 2020)\r | |
343 | Limited number of recursive calls in f_findnext().\r | |
344 | Fixed old floppy disks formatted with MS-DOS 2.x and 3.x cannot be mounted.\r | |
345 | Fixed some compiler warnings.\r | |
346 | \r | |
347 | \r | |
348 | \r | |
349 | R0.14b (April 17, 2021)\r | |
350 | Made FatFs uses standard library <string.h> for copy, compare and search instead of built-in string functions.\r | |
351 | Added support for long long integer and floating point to f_printf(). (FF_STRF_LLI and FF_STRF_FP)\r | |
352 | Made path name parser ignore the terminating separator to allow "dir/".\r | |
353 | Improved the compatibility in Unix style path name feature.\r | |
354 | Fixed the file gets dead-locked when f_open() failed with some conditions. (appeared at R0.12a)\r | |
355 | Fixed f_mkfs() can create wrong exFAT volume due to a timing dependent error. (appeared at R0.12)\r | |
356 | Fixed code page 855 cannot be set by f_setcp().\r | |
357 | Fixed some compiler warnings.\r | |
358 | \r | |
359 | \r | |
360 | \r | |
361 | R0.15 (November 6, 2022)\r | |
362 | Changed user provided synchronization functions in order to completely eliminate the platform dependency from FatFs code.\r | |
363 | FF_SYNC_t is removed from the configuration options.\r | |
364 | Fixed a potential error in f_mount when FF_FS_REENTRANT.\r | |
365 | Fixed file lock control FF_FS_LOCK is not mutal excluded when FF_FS_REENTRANT && FF_VOLUMES > 1 is true.\r | |
366 | Fixed f_mkfs() creates broken exFAT volume when the size of volume is >= 2^32 sectors.\r | |
367 | Fixed string functions cannot write the unicode characters not in BMP when FF_LFN_UNICODE == 2 (UTF-8).\r | |
368 | Fixed a compatibility issue in identification of GPT header.\r | |
369 | \r |