This guide is for those who want to implement a full-featured, fail-safe flash file system for use in resource-constrained applications.

TINY is designed for use with NOR Flash with erasable sectors <=4KB. This includes many serial flash devices and even the internal flash on some MCUs. Typical devices include Atmel® DataFlash AT45, MSP430 internal flash, and many serial flash devices including ST and Microchip SST Serial Flash.

Limiting the application of TINY to this subset of NOR flash devices makes TINY a compact and reliable file system. TINY eliminates many fragmentation and flash management problems and gives a compact and reliable file system that provides a full set of features, even on a low cost microcontroller.

The system structure is shown in the diagram below:

This file system is designed specifically for use with RAM. It creates pseudo-flash sectors to provide a solid logical framework for building the fail-safe system. It has been carefully crafted to ensure the reliability required by embedded systems, and to minimize code space and RAM requirements.

TINY is designed specifically for media in which the erasable sector size is relatively small, typically less than 2KB. For large NOR and NAND flash devices, the erasable sector size tends to be large (32KB or more) and, as a consequence, file systems such as HCC's SAFE must handle fragmented blocks. TINY's design does not fragment erasable units and therefore the storage media will not become fragmented. This allowed HCC to build a small footprint fail-safe file system with the restriction that the target media (flash) has small erasable units, typically 4KB or less. This design provides large improvements in efficiency, reducing the resource requirements in terms of code, RAM, CPU, and power.

This manual describes the TINY Application Programming Interface (API).