A complete file system software stack providing support for a variety of media through a uniform, easy-to-use programming interface.
Allows for interoperability, fail-safety, and high performance, all at once.
Features
Interoperable: Cs/FS implements the ubiquitous FAT12/16/32 file system allowing for unrivaled data sharing possibilities. Includes long filename support as well as UTF-8 character encoding.
Reliable: Cs/FS' journaling module guarantees that the file system's internal state will remain consistent in the case of untimely power failures.
Low footprint: with a minimal requirement of one buffer, Cs/FS can run with as little as 1kB of available RAM.
Flash memory support: Cs/FS provides support for NOR and NAND flash memory through a highly configurable Flash Translation Layer (FTL). In addition to providing a uniform block device abstraction on top of heterogeneous flash technologies, the FTL optimizes flash memory lifetime thanks to its built-in wear-leveling mechanisms.
Removable media support: Cs/FS provides support for SD cards, Multimedia Memory Cards (MMC) and MSC devices, including asynchronous insertion/removal notification to the application and stale files access protection.
Performance: Cs/FS offers high performance without sacrificing reliability. This is thanks to a sophisticated write-back caching mechanism that is journaling-compatible. Moreover, its advanced locking scheme ensures thread safety while allowing a high degree of concurrency.
Easy to use: Cs/FS offers unprecedented ease of use through both its native and POSIX compliant APIs.
Customizable: The memory footprint (both RAM and ROM) of μC/OS-FS can be adjusted at compile-time based on the required features
Specifications
Memory Footprint
| ROM |
Minimal (block device only): 7 Kbytes Typical: 65 Kbytes |
| RAM |
Minimal (bare-metal, file API, and SD driver): 1 Kbytes Typical: 5 Kbytes |
Key Specifications
|
Memory allocation |
Static and dynamic mode supported |
| File operations | Read, write, truncate, rename, copy, query |
| Kernel Required | No |
| POSIX compliant | Yes |
| File buffers supported | Yes |
| Supported file systems | FAT12/16/32 |
| Raw block device interface | Yes |
| Concurrency |
Preemptive file read operations Preemptive file write operations on different volumes |
| Fail-safe | Yes |
| Write back caching | Yes (can be used along with journaling) |
| Partition support | Yes (DOS-style partitions) |
| Unicode support | Yes |
| Storage media technology support | NAND, NOR, SD (card mode + SPI), SCSI, RAM |
| Bare metal support | Yes |
Storage Device Support
| SD/MMC | SD, SDHC, and SDXC cards, as well as MMC cards and e-MMC chips. Card mode and SPI implementations are available. SD Specification v2.00 or later supported. |
| NAND | SLC and MLC memories with a parallel bus. Both small page and large page devices are supported. Fast ECC (error correction codes) are provided for 1-bit correction per codeword using Hamming codes. Hardware ECC is supported (either on the memory device or as a CPU peripheral). |
| NOR | Support for a wide variety of serial SPI/QSPI and parallel NOR. |
| MSC | All MSC compatible USB drives. |
