Skip to content

Conversation

rondlh
Copy link

@rondlh rondlh commented Sep 19, 2025

Description

Upgrade FATFS R0.14 (2025-10-14) to R0.16 (2025-07-22)

R0.16 Jul 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.

R0.15b Jun 21, 2025
Added support for the 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)

R0.15a Nov 22, 2024
Fixed a complie error when FF_FS_LOCK != 0. (appeared at R0.15) 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 with 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)

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.

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.

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.

Benefits

This solves various issues and improve compatibility of USB keys and SD Cards, especially larger ones as now LBA64 is enabled and the exFAT support is improve.

Upgrade FATFS R0.14 (2025-10-14) to R0.16 (2025-07-22)

R0.16 Jul 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.

R0.15b Jun 21, 2025
Added support for the 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)

R0.15a Nov 22, 2024
Fixed a complie error when FF_FS_LOCK != 0. (appeared at R0.15)
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 with 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)

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.

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.

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.
@rondlh rondlh marked this pull request as draft September 19, 2025 19:18
@rondlh
Copy link
Author

rondlh commented Sep 19, 2025

This PR needs testing as I only tested it on the BTT TFT35 V3.0, BTT TFT35 V3.01 and MKS TFT35 V1.0.
Please let me know if this PR works for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant