µC/FS Release Notes
- 1 Version 4.08.01
- 2 Version 4.08.00
- 3 Version 4.07.07
- 4 Version 4.07.06
- 5 Version 4.07.05
- 6 Version 4.07.04
- 7 Version 4.07.03
- 8 Version 4.07.02
- 9 Version 4.07.01
- 10 Version 4.07.00
- 11 Version 4.06.01
- 12 Version 4.06.00
- 13 Version 4.05.03
- 14 Version 4.05.02
- 15 Version 4.05.01
- 16 Version 4.05.00
- 17 Version 4.04.05
- 18 Version 4.04.04
- 19 Version 4.04.03
- 20 Previousversions
Version 4.08.01
Release Date
May 20, 2021
Changelog
Removed misleading message about extra clusters linked to file.
Version 4.08.00
Release date: February 28, 2020
Open-source Release
Version 4.07.07
Release date: December 16, 2019
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.38.00
New features & improvements
None
API changes
None
Bug fixes
Fixed "Operands in a bitwise operation have different size" warnings in fs_util.c
Fixed MISRA "No break or throw statement at the end of switch-clause" warning in fs_volc
Fixed MISRA "No default clause at the end of a switch statement" warning in fs_os.c
Fixed "value of 'variable' is never used after assignment" warnings in fs_fat.c, fs_fat_lfn.c, fs_fat_sfn.c, fs_entry.c, fs_file.c, and fs_unicode.c
Fixed uninitialized variable in fs_fat_journal.c
Fixed issue where the file system would fail to keep track of the erased blocks in NOR
Fixed misleading "extra clusters linked to file" trace message in fs_fat.c
Version 4.07.06
Release date: June 19, 2019
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.38.00
New features & improvements
Changed FS_SEEK_SET, FS_SEEK_CUR, and FS_SEEK_END to POSIX values SEEK_SET, SEEK_CUR, SEEK_END
API changes
None.
Bug fixes
Fixed file corruption issue when appending to a file using a file buffer
Fixed uninitialized variables in fs_fat_lfn.c
Fixed unused variable in fs_fat.c
Version 4.07.05
Release date: December 5, 2018
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.38.00
New features & improvements
None.
API changes
None.
Bug fixes
Fixed issue in FS_FAT_FileClose() where p_buf returned from call to FSBuf_Get() may be null and dereferenced further in the code.
Fixed issue in FSFile_ObjFree() where p_file was dereferenced before checking it for null.
Fixed potential null pointer pp_next_data dereferenced in FSUtil_ModuleDataFree().
Fixed potential null pointer pp_data_head dereferenced in FSUtil_ModuleDataFree().
Fixed improper debug message about Root Directory full.
Fixed issue with low level format reading bad meta blocks in NAND.
Version 4.07.04
Release date: June 15, 2018
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.38.00
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
[OPTION] USB Mass Storage Class driver: µC/USB-Host V3.40.02
New features & improvements
Reworked include paths so that only the root directory for uC/FS (/Micrium/Software/uC-FS/) is required in the compiler paths.
FSDev_MSC_IO_Ctrl() cache sync functionality from USBH MSC.
SPI support for Winbond W25Q16JV NOR devices.
NAND driver: Added an additional check to catch any out-of-bound physical block index before it causes further corruption.
API changes
None.
Bug fixes
Fixed overwrite issue in FS_NOR_FTL_LowMountInternal() that would manifest during power loss testing.
Fixed issue in FSDev_NOR_LowMountHandler() that would put the device in an invalid state if the power is lost during a file write.
Fixed FS_TRACE_INFO message in FSDev_NOR_Close() that outputs an error message even though the function returns without errors.
Fixed issue where FSVol_Open() return error was not being handled properly in FSDev_MSC_DevOpen().
NAND driver: Fixed previous dirty bitmap search position bug.
NAND driver: Fixed Metablock find ID overflow bug.
NAND driver: Fixed issue where the last physical block was left unused.
SD Card driver now initializes v1 SD cards properly.
Version 4.07.03
Release date: 2016-05-05
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.38.00
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
[OPTION] USB Mass Storage Class driver: µC/USB-Host V3.40.02
New features & improvements
None.
API changes
None.
Bug fixes
NAND driver: possible stale metadata block issue in the case of large erase count discrepancies.
NAND driver: potential conflicting last physical block index erroneously stored in logical to physical block table.
Version 4.07.02
Release date: 2016-02-15
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.38.00
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
[OPTION] USB Mass Storage Class driver: µC/USB-Host V3.40.02
New features & improvements
None.
API changes
None.
Bug fixes
NAND driver: critical off-by-one error in FS_NAND_LowMountHandler() and FS_NAND_MetaBlkFind().
NAND driver: incorrect metadata block ID overflow handling.
NAND driver: missing chip select disable ingenericcontroller.
Version 4.07.01
Release date: 2015-07-07
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.38.00
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
[OPTION] USB Mass Storage Class driver: µC/USB-Host V3.40.02
New features & improvements
None.
API changes
None.
Bug fixes
FAT entry lookup for
'..'entry pointing to root directory fails for FAT12/16.FS_FAT_XFN_DirEntryPlace():SecNextGetAlloc()usesFS_VOL_SEC_TYPE_FILEsector type instead ofFS_VOL_SEC_TYPE_DIR.Device Data pointer not initialized in
FSDev_ObjClr().NAND driver: big endian issue with reading sec_type in OOS.
NAND driver: use of uninitialized structure members.
NAND Soft ECC gen ext: use of unitialized
OOS_SizePerSec.Missing directory and file table initialization.
NAND Driver: fix mismatchbetween
WaitWhileBusy()and assert of R/B# to allow IRQ operation.NAND ONFI: use blocks from all LUNs.
FSEntry_Del(): does not support deletion of ANY type.Journaling: incorrect journal file creation onbig endianCPUs.
Version 4.07.00
Release date: 2014-02-14
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.38.00
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
[OPTION] USB Mass Storage Class driver: µC/USB-Host V3.40.02
New features & improvements
µC/LIB V1.38.00 compatibility: version 1.38.00 of µC/LIB has deprecated some APIs that were used by previous versions of µC/FS, most notably
Mem_PoolBlkGetUsedAtIx()andMem_PoolBlkIxGet(). Updating to µC/FS V4.07.00 is required if updating other Micrium products that require µC/FS V1.38.00.NAND Driver: 16-bit NAND compatibility for generic parallel NAND controller.
Journaling module: significantly reduced performance hit due to new journal clearing algorithm.
API changes
NAND generic controller BSPs now have an added '
width' parameter in functionsDataRd()andDataWr(). Existing NAND generic controller BSPs will need to be updated. See µC/FS Migration Guide for more details.
Bug fixes
SD Driver: issue STOP_TRANSMISSION command only once per stop operation.
Missing err code init in FSDev_Access(Lock|Unlock).
Mounting logical partition fails if extended partition type is LBA extended (0xF).
NAND Driver: incorrect data size allocation for Micron ECC and Soft ECC.
FS_FAT_JournalOpen(): erroneous journal file's cluster count calculation when the journal size is smaller than the cluster size.
NOR Driver: PrepareBlk called without wear leveling check.
NAND Driver errors in 16 bits defect mark checking.
NAND Driver: add support for switching to 16 bits width.
Version 4.06.01
Release date: 2013-07-10
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.37.01
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
[OPTION] USB Mass Storage Class driver: µC/USB-Host V3.40.02
New features & improvements
None.
API changes
None.
Bug fixes
FAT: EOC handling does not account for all possible values
Version 4.06.00
Release date: 2013-06-27
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.37.01
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
[OPTION] USB Mass Storage Class driver: µC/USB-Host V3.40.02
New features & improvements
Journaling module: The journaling module has been redesigned in order to improve robustness and achieve lower footprint (both ROM and RAM).
NOR Driver: Added support forSST25VFxxxC family.
NAND Driver: Major bugfix release: update is highly recommended.
NAND Driver: Added support for dumping raw NAND images.
API changes
Due to the journaling module redesign, any journaled volume used under µC/FS V4.05.03 or prior version must be cleanly unmounted before upgrading to V4.06.00.
Unused fields removed from most core µC/FS structures (shouldn't affect applications).
FS_CFG_BUILD configuration option removed.
See µC/FS Migration Guide for more details.
Bug fixes
FS_FAT_VolFmt() ignores the RsvdSec parameters
FAT corruption after partial cluster chain allocation
FSBuf_Free() can shadow write errors in many cases
Incorrect corner cases in default format configuration tables
NAND Driver: some incorrect use of MEM_VAL_COPY_GET/SET macros onbig endianCPUs
NAND Driver: MetaBlkFoldNeeded may be uninitialized
fs_fstat: directories reported as files
Possible buffer leak when returning from FSPartition_Add()
NAND Driver: new block is not removed from available blocks table in refresh operations
NAND Driver: dirty bitmap pointer not updated aftersearch
FS_FAT_VolChk() erroneously consider an empty file as invalid
FS_FAT_LowEntryFind() discard clusters allocated to a zero sized file
UTF8_MAX_VAL_4BYTE undeclared when FS_UNICODE_CFG_WCHAR_SIZE is configured to 32
Deleting a file or directory with a cluster chain longer than expected will leave a lost chain
FS_FAT_FileRd() should not set the EOF indicator
Opening a file of size 0 should not set the EOF indicator
NAND Driver: retries performed on unwritten sectors at mount time in MetaBlkFind()
NOR: Possible infinite loop in the Intel PHY
Version 4.05.03
Release date: 2013-01-21
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.37.01
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
[OPTION] USB Mass Storage Class driver: µC/USB-Host V3.40.02
New features & improvements
NOR Driver: Added support for Atmel AT45 devices.
API changes
None.
Bug fixes
NAND Driver: wrong buffer name SpareBufPtr used when FS_NAND_CFG_XXXX_CACHE_EN is disabled
Check for LIB_MEM_HEAP_ALLOC_EN breaks build with uC/LIB V1.37.01
FSVol_LabelGet() returns malformed string
NAND Driver: wrong pointer is passed to SecRdPhyNoRefresh() in BlkRefresh()
os_err possibly undeclared in FS_OS_Init() function of the uCOS-II port
fs_app should open the volume even if the media is not present
FSVol_ReleaseUnlock() called when FSVol_Release() is appropriate
Volume not always released on lock failure
FS_OS lock not always released when returning from a fatal error
FSDev_NOR_PhyEraseChip() returns with error FS_ERR_DEV_INVALID_IO_CTRL
Invalid memory macro usage onbig endianarchitectures
Version 4.05.02
Release date: 2012-10-26
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.37.00
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
New features & improvements
NOR Driver: Added support for Micron NP5Q phase change memory (PCM) devices.
API changes
None.
Bug fixes
Partition mount fails on big-endian platforms
Buffer leak when closing a journaled volume
Journal creation may fail or be corrupted if the maximum sector size is larger than the volume cluster size
IOCTL calls cannot be done on a device with no media present
NAND Driver: existing meta block not checked when formatting a device with incompatible low-fmtparameters.
FS_WorkingDirGet returns the wrong error when given a size of 0
Version 4.05.01
Release date: 2012-08-17
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.37.00
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
New features & improvements
NAND generic controller BSP: allow most BSP functions to report errors through a new p_err argument.
API changes
FS_NAND_PART_STATIC_CFG structure: NbrOfPgmPerPage renamed to NbrPgmPerPg.
NAND generic controller BSP API: all functions except Close(), ChipSelEn() and ChipSelDis() now have a FS_ERR* argument. Open() and WaitWhileBusy() return type changed from CPU_BOOLEAN to void.
Bug fixes
Misspelled include file in fs_entry.c
FSDir_Rd() fails to read the last entry of a full root directory
VolFreeSecCnt isn't cleared when calling FSVol_Query on an unmounted volume
FS_WorkingDirSet and FSEntry_Query returnswrongerror code when given a null name pointer
Documentation and code comments mention the wrong error for null strings
Cluster allocation may fail when only one free cluster is left on volume
NAND Driver: FS_NAND_Close() causes memory access error if no instance has been opened
Multiple calls to FSVol_Query may give invalid results
Opening the journal may cause FSVol_Query() to report an increased number of total sector
Erroneous return value in the fs_rmdir() comment header block
File creation may fail in the root of a FAT12/16 volume full of deleted entries
Erroneous prototype in the fs_setbuf() API reference
SD SPI preprocessor warning mention app_cfg.h instead of crc_cfg.h
Improperly closed comment in fs_dev_nor_sst25.c
NAND Driver: generic controller BSP template uses wrong API structure type
Comments about FS_CFG_RD_ONLY_EN are reversed in fs_cfg.h
Duplicate entry FS_ERR_NAME_INVALID for FSEntry_Rename()
Version 4.05.00
Release date: 2012-08-17
Requirements
µC/Clk V3.09.03
µC/CPU V1.29.01
µC/CRC V1.09.01
µC/LIB V1.37.00
[OPTION] µC/OS-II OS Port: µC/OS-II V2.92.07
[OPTION] µC/OS-III OS Port: µC/OS-II V3.03.01
New features & improvements
NAND Flash Driver: a new driver has been added and supports mostparralel NAND devices (SLC, MLC, small and large page). Support for 1-bit software ECC correction. Has a flexible architecture allowinguse of hardware ECC engines.
Multi-Cluster Writes and Reads: µC/FS can now perform writes or reads across cluster boundaries. This will result in a performance increase when writing orreading using large application buffers.
API changes
Error codes returned from some API functions were corrected. Important changes are listed in the migration guide.
Bug fixes
Incorrect SFN tail when creating repeated SFN entries of less than 8 characters
FSEntry_Del() does not validate correctly its entry_type argument
FSEntry_Rename() fails to delete the source after copying between different volumes
FSEntry_Rename() fails over two existing files without an allocated cluster
NOR Driver: SST25 PHY assumesdeviceis not in AA mode when opening
Cluster size is not validated by FS_FAT_VolFmt()
Possible buffer leak in FS_FAT_VolFmt()
Trying to format a small enough FAT12 volume may generate invalid device access
Volume is closed after a failed call to FSVol_Fmt()
FS_FAT_VolFmt() miscalculates the crossings between FAT 12, 16 and 32