bf4615c01ffatfs v0.16 July 22, 2025: - Removed a long-pending limitation that f_getcwd and double-dot .. in the path name did not work on the exFAT volume. - Fixed f_readdir cannot detect end of directory and it leads the application process into infinite loop. (appeared at R0.15b) - Fixed dot names with terminating separator or duplicated separator are rejected when LFN is not enabled.savelij132025-09-11 10:53:13 +0300
cc71f9a444fatfs v0.15b June 21, 2025: - Added support for timestamp of created time. (FF_FS_CRTIME) - Fixed FatFs fails to load the FsInfo in FAT32 volumes and the f_getfree always be forced a full FAT scan which takes a long time. (appeared at R0.15a)savelij132025-09-11 10:50:53 +0300
47e601681afatfs v0.15a November 22, 2024: - Fixed a complie error when FF_FS_LOCK != 0. - Fixed a potential issue when work FatFs concurrency with FF_FS_REENTRANT, FF_VOLUMES >= 2 and FF_FS_LOCK > 0. - Made f_setlabel() accept a volume label in Unix style volume ID when FF_STR_VOLUME_ID == 2. - Made FatFs update PercInUse field in exFAT VBR. (A preceding f_getfree() is needed for the accuracy)savelij132025-09-11 10:49:22 +0300
ba3f5b7f87fatfs v0.15 November 6, 2022: - Changed user provided synchronization functions in order to completely eliminate the platform dependency from FatFs code. - FF_SYNC_t is removed from the configuration options. - Fixed a potential error in f_mount when FF_FS_REENTRANT. - Fixed file lock control FF_FS_LOCK is not mutal excluded when FF_FS_REENTRANT && FF_VOLUMES > 1 is true. - Fixed f_mkfs() creates broken exFAT volume when the size of volume is >= 2^32 sectors. - Fixed string functions cannot write the unicode characters not in BMP when FF_LFN_UNICODE == 2 (UTF-8). - Fixed a compatibility issue in identification of GPT header.savelij132025-09-11 10:47:47 +0300
87c4907172fatfs v0.14b April 17, 2021: - Made FatFs uses standard library <string.h> for copy, compare and search instead of built-in string functions. - Added support for long long integer and floating point to f_printf(). (FF_STRF_LLI and FF_STRF_FP) - Made path name parser ignore the terminating separator to allow "dir/". - Improved the compatibility in Unix style path name feature. - Fixed the file gets dead-locked when f_open() failed with some conditions. (appeared at R0.12a) - Fixed f_mkfs() can create wrong exFAT volume due to a timing dependent error. (appeared at R0.12) - Fixed code page 855 cannot be set by f_setcp(). - Fixed some compiler warnings.savelij132025-09-11 10:44:45 +0300
ddc7b41474fatfs v0.14a December 5, 2020: - Limited number of recursive calls in f_findnext(). - Fixed old floppy disks formatted with MS-DOS 2.x and 3.x cannot be mounted. - Fixed some compiler warnings.savelij132025-09-11 10:42:40 +0300
ead60b6ce1fatfs v0.14 October 14, 2019: - Added support for 64-bit LBA and GUID partition table (FF_LBA64 = 1) - Changed some API functions, f_mkfs() and f_fdisk(). - Fixed f_open() function cannot find the file with file name in length of FF_MAX_LFN characters. - Fixed f_readdir() function cannot retrieve long file names in length of FF_MAX_LFN - 1 characters. - Fixed f_readdir() function returns file names with wrong case conversion. (appeared at R0.12) - Fixed f_mkfs() function can fail to create exFAT volume in the second partition. (appeared at R0.12)savelij132025-09-11 10:40:54 +0300
7cb0c2d1e6fatfs v0.13c October 14, 2018: - Supported stdint.h for C99 and later. (integer.h was included in ff.h) - Fixed reading a directory gets infinite loop when the last directory entry is not empty. (appeared at R0.12) - 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) - Fixed f_getcwd() cause output buffer overrun when the buffer has a valid drive number. (appeared at R0.13b)savelij132025-09-11 10:35:10 +0300
7b4dceffabfatfs v0.13b April 07, 2018: - Added support for UTF-32 encoding on the API. (FF_LFN_UNICODE = 3) - Added support for Unix style volume ID. (FF_STR_VOLUME_ID = 2) - Fixed accesing any object on the exFAT root directory beyond the cluster boundary can fail. (appeared at R0.12c) - Fixed f_setlabel() does not reject some invalid characters. (appeared at R0.09b)savelij132025-09-11 10:32:42 +0300
18dcc96bfafatfs v0.13a October 14, 2017: - Added support for UTF-8 encoding on the API. (FF_LFN_UNICODE = 2) - Added options for file name output buffer. (FF_LFN_BUF, FF_SFN_BUF). - Added dynamic memory allocation option for working buffer of f_mkfs() and f_fdisk(). - Fixed f_fdisk() and f_mkfs() create the partition table with wrong CHS parameters. (appeared at R0.09) - Fixed f_unlink() can cause lost clusters at fragmented file on the exFAT volume. (appeared at R0.12c) - Fixed f_setlabel() rejects some valid characters for exFAT volume. (appeared at R0.12)savelij132025-09-11 10:30:37 +0300
a6bc2e0f07fatfs v0.13 May 21, 2017: - Changed heading character of configuration keywords "_" to "FF_". - Removed ASCII-only configuration, FF_CODE_PAGE = 1. Use FF_CODE_PAGE = 437 instead. - Added f_setcp(), run-time code page configuration. (FF_CODE_PAGE = 0) - Improved cluster allocation time on stretch a deep buried cluster chain. - Improved processing time of f_mkdir() with large cluster size by using FF_USE_LFN = 3. - Improved NoFatChain flag of the fragmented file to be set after it is truncated and got contiguous. - Fixed archive attribute is left not set when a file on the exFAT volume is renamed. (appeared at R0.12) - Fixed exFAT FAT entry can be collapsed when write or lseek operation to the existing file is done. (appeared at R0.12c) - Fixed creating a file can fail when a new cluster allocation to the exFAT directory occures. (appeared at R0.12c)savelij132025-09-11 10:28:54 +0300
fca959be37fatfs v0.12c March 04, 2017: - Improved write throughput at the fragmented file on the exFAT volume. - Made memory usage for exFAT be able to be reduced as decreasing _MAX_LFN. - Fixed successive f_getfree() can return wrong count on the FAT12/16 volume. (appeared at R0.12) - Fixed configuration option _VOLUMES cannot be set 10. (appeared at R0.10c)savelij132025-09-11 10:24:04 +0300
e749807f86fatfs v0.12b September 04, 2016: - Improved f_rename() to be able to rename objects with the same name but case. - Fixed an error in the case conversion teble of code page 866. (ff.c) - Fixed writing data is truncated at the file offset 4GiB on the exFAT volume. (appeared at R0.12) - Fixed creating a file in the root directory of exFAT volume can fail. (appeared at R0.12) - Fixed f_mkfs() creating exFAT volume with too small cluster size can collapse unallocated memory. (appeared at R0.12) - Fixed wrong object name can be returned when read directory at Unicode cfg. (appeared at R0.12) - Fixed large file allocation/removing on the exFAT volume collapses allocation bitmap. (appeared at R0.12) - Fixed some internal errors in f_expand() and f_lseek(). (appeared at R0.12)savelij132025-09-11 10:16:39 +0300
ea14f0f5defatfs v0.12a July 10, 2016: - Added support for creating exFAT volume with some changes of f_mkfs(). - Added a file open method FA_OPEN_APPEND. An f_lseek() following f_open() is no longer needed. - f_forward() is available regardless of _FS_TINY. - Fixed f_mkfs() creates wrong volume. - Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD. - Fixed wrong memory read in create_name().savelij132025-09-11 10:14:29 +0300
1eaa207f01fatfs v0.12 April 12, 2016: - Added support of exFAT file system. (_FS_EXFAT) - Added f_expand(). (_USE_EXPAND) - Changed some members in FINFO structure and behavior of f_readdir(). - Added an option _USE_CHMOD and removed an option _WORD_ACCESS. - Fixed errors in the case conversion teble of Unicode (cc*.c).savelij132025-09-11 10:12:18 +0300
42df62dae6fatfs v0.11a September 05, 2015: - Fixed wrong media change can lead a deadlock at thread-safe configuration. - Added code page 771, 860, 861, 863, 864, 865 and 869. (_CODE_PAGE) - Removed some code pages actually not exist on the standard systems. (_CODE_PAGE) - Fixed errors in the case conversion teble of code page 437 and 850 (ff.c). - Fixed errors in the case conversion teble of Unicode (cc*.c).savelij132025-09-11 10:09:40 +0300
80543174b1fatfs v0.11 February 09, 2015: - Added f_findfirst(), f_findnext() and f_findclose(). (_USE_FIND) - Fixed f_unlink() does not remove cluster chain of the file. (appeared at R0.10c) - Fixed _FS_NORTC option does not work properly. (appeared at R0.10c)savelij132025-09-11 10:06:37 +0300
a5177b6280fatfs v0.10c Nov 09,2014: - Added a configuration option for the platforms without RTC. (_FS_NORTC) - Fixed volume label created by Mac OS X cannot be retrieved with f_getlabel(). - Fixed a potential problem of FAT access that can appear on disk error. - Fixed null pointer dereference on attempting to delete the root direcotry.savelij132025-09-11 10:04:38 +0300
fb65f51fbefatfs v0.10b Mar 19,2014: - Fixed a hard error in the disk I/O layer can collapse the directory entry. - Fixed LFN entry is not deleted on delete/rename an object with lossy converted SFN.savelij132025-09-11 10:02:42 +0300
93faa45738fatsfs v0.10a Jan 15,2014: - Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID) - Added a configuration option of minimum sector size. (_MIN_SS) - 2nd argument of f_rename() can have a drive number and it will be ignored. - Fixed f_mount() with forced mount fails when drive number is >= 1. - Fixed f_close() invalidates the file object without volume lock. - Fixed f_closedir() returns but the volume lock is left acquired. - Fixed creation of an entry with LFN fails on too many SFN collisions.savelij132025-09-11 10:01:14 +0300
f9a05f6edafatfs v0.10 Oct 02,2013: - Added selection of character encoding on the file. (_STRF_ENCODE) - Added f_closedir(). - Added forced full FAT scan for f_getfree(). (_FS_NOFSINFO) - Added forced mount feature with changes of f_mount(). - Improved behavior of volume auto detection. - Improved write throughput of f_puts() and f_printf(). - Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write(). - Fixed f_write() can be truncated when the file size is close to 4GB. - Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect error code.savelij132025-09-11 09:58:52 +0300
750225eb33fatfs v0.09b Jan 23,2013: - Added f_getlabel() and f_setlabel(). (_USE_LABEL == 1)savelij132025-09-11 09:51:27 +0300
030f12c942fatfs v0.09a Aug 27,2012: - Fixed assertion failure due to OS/2 EA on FAT12/16. - Changed f_open() and f_opendir() reject null object pointer to avoid crash. - Changed option name _FS_SHARE to _FS_LOCK.savelij132025-09-11 09:49:45 +0300
5fa1073a5afatfs v0.08b Jan 15,2011: - Fast seek feature is also applied to f_read() and f_write(). - f_lseek() reports required table size on creating CLMP. - Extended format syntax of f_printf function. - Ignores duplicated directory separators in given path names.savelij132025-09-11 09:45:45 +0300
625f3adcbbfatfs v0.08a Aug 16,2010: - Added f_getcwd(). (_FS_RPATH = 2) - Added sector erase feature. (_USE_ERASE) - Moved file lock semaphore table from fs object to the bss. - Fixed a wrong directory entry is created on non-LFN cfg when the given name contains ';'. - Fixed f_mkfs() creates wrong FAT32 volume.savelij132025-09-11 09:43:16 +0300
46155916b1fatfs v0.08 May 15, 2010: - Added a memory configuration option. (_USE_LFN) - Added file lock feature. (_FS_SHARE) - Added fast seek feature. (_USE_FASTSEEK) - Changed some types on the API, XCHAR->TCHAR. - Changed fname member in the FILINFO structure on Unicode cfg. - String functions support UTF-8 encoding files on Unicode cfg.savelij132025-09-11 09:40:03 +0300
e6cd91ca0bfatfs v0.07e Nov 03,2009: - Separated out configuration options from ff.h to ffconf.h. - Added a configuration option, _LFN_UNICODE. - Fixed f_unlink() fails to remove a sub-dir on _FS_RPATH. - Fixed name matching error on the 13 char boundary. - Changed f_readdir() to return the SFN with always upper case on non-LFN cfg.savelij132025-09-11 09:36:45 +0300
25f499b847fatfs v0.07c Jun 21, 2009: - Fixed f_unlink() may return FR_OK on error. - Fixed wrong cache control in f_lseek(). - Added relative path feature. - Added f_chdir(). - Added f_chdrive(). - Added proper case conversion to extended char.savelij132025-09-11 09:33:51 +0300
3bb1c09ac4fatfs v0.07a Apr 14, 2009: - Separated out OS dependent code on reentrant cfg. - Added multiple sector size support.savelij132025-09-11 09:21:30 +0300
b94c8f3bf3fatfs v0.06 Apr 01, 2008: - Added f_forward(). (Tiny-FatFs) - Added string functions: fputc(), fputs(), fprintf() and fgets(). - Improved performance of f_lseek() on move to the same or following cluster.savelij132025-09-11 09:17:24 +0300
e400c8c902fatfs v0.05a Feb 03, 2008: - Added f_truncate(). - Added f_utime(). - Fixed off by one error at FAT sub-type determination. - Fixed btr in f_read() can be mistruncated. - Fixed cached sector is not flushed when create and close without write.savelij132025-09-11 09:13:15 +0300
36c173e705fatfs v0.05 Aug 25, 2007: - Changed arguments of f_read, f_write. - Changed arguments of f_mkfs. (FatFs) - Fixed f_mkfs on FAT32 creates incorrect FSInfo. (FatFs) - Fixed f_mkdir on FAT32 creates incorrect directory. (FatFs)savelij132025-09-11 09:10:56 +0300
c0c10d0beafatfs v0.04b May 05, 2007: - Added _USE_NTFLAG option. - Added FSInfo support. - Fixed some problems corresponds to FAT32. (Tiny-FatFs) - Fixed DBCS name can result FR_INVALID_NAME. - Fixed short seek (<= csize) collapses the file object.savelij132025-09-11 09:08:31 +0300
8e92305484fatfs v0.04a Apr 01, 2007: - Supported multiple partitions on a plysical drive. (FatFs) - Fixed an endian sensitive code in f_mkfs(). (FatFs) - Added a capability of extending the file size to f_lseek(). - Added minimization level 3. - Fixed a problem that can collapse a sector when recreate an - existing file in any sub-directory at non FAT32 cfg. (Tiny-FatFs)savelij132025-09-11 09:06:19 +0300
3d65978d31fatfs v0.04 Feb 04, 2007: - Supported multiple drive system. - Changed some APIs for multiple drive system. - Added f_mkfs().savelij132025-09-11 09:03:34 +0300
f76dc3a97ffatfs v0.03a Dec 11, 2006: - Improved cluster scan algolithm to write files fast. - Fixed f_mkdir() creates incorrect directory on FAT32.savelij132025-09-11 08:59:00 +0300
86d6ced87efatfs v0.02a Jun 10, 2006: - Added a configuration option _FS_MINIMUM.savelij132025-09-11 08:54:50 +0300
238747ef97fatfs v0.02 Jun 01, 2006: - Added FAT12. Removed unbuffered mode. - Fixed a problem on small (<32M) patition.savelij132025-09-11 08:53:18 +0300