µC/FS File System
Architecture
File system layer: This layer translates file operations to logical block operations. After such transformation, the file system utilizes the logical block layer and specifies the driver that should be used.
Logical block layer: The main purpose of the logical block layer is to synchronize access to the drivers and the abstraction of the hardware to a simple interface for the file system layer. The logical block layer utilizes the driver layer in order to perform block operations.
Driver layer: Drivers are low-level functions that are developed for directly accessing the hardware. The structure of the drivers is simple and thus allows new hardware to be easily integrated.
Driver
Generic drivers are universal for a storage medium. For the specific connection of the storage medium (e.g. SPI bus), there are pre-built template functions that need to be completed for the special utilization.
Generic drivers exist for:
- SMC (SmartCards)
- SD (Secure Digital)
- MMC (MultiMedia Card)
- CF (Compact FLASH)
- IDE (Integrated Device Electronics)
- NAND Flash, NOR Flash
- Serial Data Flash
- RAMdisk
- Windows (facilitates the simulation of the application in a Windows environment)
- additional drivers upon request...
Functions and features
µC/FS is completely written in ANSI C and can be used with any processor. The following list shows some features of µC/FS:
- MS-DOS / MS-Windows compatible - FAT12, FAT16 and FAT32 support.
- Multiple driver support - it is possible to utilize multiple drivers with µC/FS, i.e. the file system can call different types of hardware at the same time.
- Multiple media support - the drivers permit simultaneous access to multiple media forms of one type.
- OS support - µC/FS is prepared for the use of nearly every multitasking environment. To coordinate the competing access to multiple tasks on the file system, a pair of operating system-dependent functions need to be implemented. µC/OS-II functions are already contained in µC/FS.
- ANSI-C stdio.h-like API - Standard API from ANSI-C is available for the applications. Therefore, applications that use the standard C I/O library can be very easily adapted to µC/FS.
- Very simple driver structure - the drivers for µC/FS only need very basic access functions to read and write a block. This is why it is very easy to utilize new (customer-specific) hardware.
Memory requirements
The following example was created on a ARM7 target platform in the ARM mode using the IAR compiler. The configuration allows 1 opened file in a RAMdisk.
- ROM: 15896 bytes, RAM: 1584 bytes
- More opened files require an additional 1064bytes RAM (2 sector buffers and 1 file handle) for each file.
Embedded Office
GmbH & Co. KG
August-Braun-Str. 1
D-88239 Wangen im Allgäu
Phone: +49 7522 / 970008-0
Fax: +49 7522 / 970008-99

