From 5630b9308323c3f3aaa09be8fe0f3aecaa826473 Mon Sep 17 00:00:00 2001 From: Leo C. Date: Sun, 30 Jun 2024 09:37:28 +0200 Subject: Import fatfs R0.15 --- fatfs/documents/updates.html | 481 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 481 insertions(+) create mode 100644 fatfs/documents/updates.html (limited to 'fatfs/documents/updates.html') diff --git a/fatfs/documents/updates.html b/fatfs/documents/updates.html new file mode 100644 index 0000000..24b8fd4 --- /dev/null +++ b/fatfs/documents/updates.html @@ -0,0 +1,481 @@ + + +
+ + + + + +Revision | Updates | Migration Notes |
---|---|---|
R0.15 Nov 6, 2022 |
+
+Changed user provided synchronization functions in order to completely eliminate the platform dependency from FatFs code. +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. + |
+
+User provided synchronization functions, ff_cre_syncobj, ff_del_syncobj, ff_req_grant and ff_rel_grant, needed when FF_FS_REENTRANT are replaced with ff_mutex_create, ff_mutex_delete, ff_mutex_take and ff_mutex_give respectively. For example, see ffsystem.c. +FF_SYNC_t is removed from the configuration options. + |
+
R0.14b Apr 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 ignores 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 certain 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. (appeared at R0.13) +Fixed some compiler warnings. + |
+
+From this revision, FatFs depends on string.h. + |
+
R0.14a Dec 05, 2020 |
+
+Limited number of recursive calls in f_findnext to prevent stack overflow. +Fixed old floppy disks formatted with MS-DOS 2.x and 3.x cannot be mounted. +Fixed some compiler warnings. + |
+
+Number of wildcards in the matching pattern in f_findfirst is limited to 4. + |
+
R0.14 Oct 14, 2019 |
+
+Added support for 64-bit LBA and GUID partition table (FF_LBA64) +Changed some API functions, f_mkfs and f_fdisk. +Fixed f_open cannot find the file with file name in length of FF_MAX_LFN characters. +Fixed f_readdir cannot retrieve long file names in length of FF_MAX_LFN - 1 characters. +Fixed f_readdir returns file names with wrong case conversion. (appeared at R0.12) +Fixed f_mkfs can fail to create exFAT volume in the second partition. (appeared at R0.12) + |
+
+Usage of f_mkfs and f_fdisk is changed and some features are added to these functions. + |
+
R0.13c Oct 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) + |
+
+From this revision, FatFs depends on stdint.h in C99 or later. +integer.h is removed. + |
+
R0.13b Apr 07, 2018 |
+
+Added support for UTF-32 encoding on the API. (FF_LFN_UNICODE = 3) +Added support for Unix style volume prefix. (FF_STR_VOLUME_ID = 2) +Fixed accesing objects in 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) + |
++ | +
R0.13a Oct 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) + |
++ | +
R0.13 May 21, 2017 |
+
+Prefix of configuration item names are changed from "_" to "FF_". +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 exFAT 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) + |
+
+ASCII only configuration, FF_CODE_PAGE = 1, is removed. Use FF_CODE_PAGE = 437 instead. + |
+
R0.12c Mar 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) + |
++ | +
R0.12b Sep 4, 2016 |
+
+Made f_rename 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.12a) +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) + |
++ | +
R0.12a Jul 10, 2016 |
+
+Added support for creating exFAT volume with some changes of f_mkfs. +Added a file open method FA_OPEN_APPEND. +f_forward is available regardless of _FS_TINY. +Fixed f_mkfs creates broken volume. (appeared at R0.12) +Fixed wrong memory read in create_name. (appeared at R0.12) +Fixed compilation fails at some configurations, _USE_FASTSEEK and _USE_FORWARD. + |
+
+Usage of f_mkfs is changed. + |
+
R0.12 Apr 12, 2016 |
+
+Added support for exFAT file system. (_FS_EXFAT) +Added f_expand. (_USE_EXPAND) +Changed some members in FINFO and behavior of f_readdir. +Added a configuration option _USE_CHMOD. +Fixed errors in the case conversion teble of Unicode (cc*.c). + |
+
+Usage and members of FINFO sructure used in f_readdir is changed. +Dot entries in the sub-directory are never appear in f_readdir. +".." does not work as path name in exFAT volume. +f_getcwd does not work in exFAT volume. +Many members in FIL and DIR structure are changed. +To use f_chmod, _USE_CHMOD needs to be set. +_WORD_ACCESS is removed from the configuration options. + |
+
R0.11a Sep 5, 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) +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). + |
+
+Removed some code pages actually not exist on the standard systems. (_CODE_PAGE) + |
+
R0.11 Feb 9, 2015 |
+
+Added f_findfirst and f_findnext. (_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) + |
++ | +
R0.10c Nov 9, 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. (appeared at R0.09b) +Fixed a potential problem of FAT access that can appear on disk error. +Fixed null pointer dereference on attempting to delete the root direcotry. (appeared at R0.08) + |
++ | +
R0.10b May 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 its lossy converted SFN. (appeared at R0.07) + |
++ | +
R0.10a Jan 15, 2014 |
+
+Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID) +Added an option for 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 larger than 0. (appeared at R0.10) +Fixed f_close invalidates the file object without volume lock. +Fixed volume lock is left acquired after return from f_closedir. (appeared at R0.10) +Fixed creation of a directory entry with LFN fails on too many SFN collisions. (appeared at R0.07) + |
++ | +
R0.10 Oct 2, 2013 |
+
+Added an option for character encoding on the file. (_STRF_ENCODE) +Added f_closedir. +Added forced full FAT scan option for f_getfree. (_FS_NOFSINFO) +Added forced mount option 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 4 GB. +Fixed f_open, f_mkdir and f_setlabel can return incorrect result code on error. + |
++ | +
R0.09b Jan 24, 2013 |
+
+Added f_getlabel and f_setlabel. (_USE_LABEL) + |
++ | +
R0.09a Aug 27, 2012 |
+
+Fixed assertion failure due to OS/2 EA on FAT12/16 volume. +Changed file functions reject null object pointer to avoid crash. +Changed option name _FS_SHARE to _FS_LOCK. + |
++ | +
R0.09 Sep 6, 2011 |
+
+f_mkfs supports multiple partition on a physical drive. +Added f_fdisk. (_MULTI_PARTITION = 2) + |
++ | +
R0.08b Jan 15, 2011 |
+
+Fast seek function is also applied to f_read and f_write. +f_lseek reports required table size on creating CLMP. +Extended format syntax of f_printf. +Ignores duplicated directory separators in given path names. + |
++ | +
R0.08a Aug 16, 2010 |
+
+Added f_getcwd. (_FS_RPATH = 2) +Added sector erase function. (_USE_ERASE) +Moved file lock semaphore table from fs object to the bss. +Fixed f_mkdir creates wrong directory on non-LFN cfg when the given name contains ';'. +Fixed f_mkfs creates wrong FAT32 volume. + |
++ | +
R0.08 May 15, 2010 |
+
+Added an option to _USE_LFN +Added support of file lock. (_FS_SHARE) +Added fast seek function. (_USE_FASTSEEK) +Changed a type name on the API, XCHAR to TCHAR. +Changed member, fname, in the FILINFO on Unicode cfg. +String functions support UTF-8 encoding files on Unicode cfg. + |
++ | +
R0.07e Nov 3, 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. + |
++ | +
R0.07c Jan 21, 2009 |
+
+Fixed f_unlink may return FR_OK on error. +Fixed wrong cache control in f_lseek. +Added support of relative path. +Added f_chdir. +Added f_chdrive. +Added proper case conversion to extended characters. + |
++ | +
R0.07a Apr 14, 2009 |
+
+Separated out OS dependent code on re-entrant configuration. +Added multiple sector size support. + |
++ | +
R0.07 Apr 1, 2009 |
+
+Merged Tiny-FatFs into FatFs as a buffer configuration option. +Added support for long file extension. +Added multiple code page support. +Added re-entrancy for multitask operation. +Added auto cluster size selection to f_mkfs. +Added rewind option to f_readdir. +Changed result code of critical errors. +Renamed string functions to avoid name collision. + |
++ | +
R0.06 Apr 1, 2008 |
+
+Added f_forward. (Tiny-FatFs) +Added string functions: f_gets, f_putc, f_puts and f_printf. +Improved performance of f_lseek on moving to the same or following cluster. + |
++ | +
R0.05a Feb 3, 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 left not flushed when create and close without write. + |
++ | +
R0.05 Aug 26, 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 broken directory. (FatFs) + |
++ | +
R0.04b May 5, 2007 |
+
+Added _USE_NTFLAG option. +Added support for FSInfo in FAT32 volume. +Fixed some problems corresponds to FAT32. (Tiny-FatFs) +Fixed DBCS name can result FR_INVALID_NAME. +Fixed short seek (<= csize) collapses the file object. + |
++ | +
R0.04a Apr 1, 2007 |
+
+Supported multiple partitions on a plysical drive. (FatFs) +Added minimization level 3. +Added a capability of extending file size to f_lseek. +Fixed an endian sensitive code in f_mkfs. (FatFs) +Fixed a problem corresponds to FAT32 support. (Tiny-FatFs) + |
++ | +
R0.04 Feb 4, 2007 |
+
+Supported multiple drive system. (FatFs) +Changed some APIs for multiple drive system. +Added f_mkfs. (FatFs) +Added _USE_FAT32 option. (Tiny-FatFs) + |
++ | +
R0.03a Dec 11, 2006 |
+
+Improved cluster scan algolithm to write files fast. +Fixed f_mkdir creates broken directory on FAT32. + |
++ | +
R0.03 Sep 22, 2006 |
+
+Added f_rename.
+Changed option _FS_MINIMUM to _FS_MINIMIZE. + |
++ | +
R0.02a Jun 10, 2006 |
+
+Added a configuration option _FS_MINIMUM. + |
++ | +
R0.02 Jun 01, 2006 |
+
+Added FAT12. +Removed unbuffered mode. +Fixed a problem on small (<32M) patition. + |
++ | +
R0.01 Apr 29, 2006 |
+
+First release. + |
++ | +