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 @@ + + + + + + + + +FatFs - Updates and Migration Notes + + +

Updates and Migration Notes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RevisionUpdatesMigration 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.
+
+
+ + -- cgit v1.2.3