TINY - Rationale

Flash technology is constantly changing and comes in many variants. To get the most from any particular flash arrangement, flash file systems need to be crafted carefully, in order to take into account the many peculiarities and complexities that are inherent in flash designs. TINY is designed to work with flash that has small erasable sectors. There are several paramount goals that TINY satisfies: It is failsafe; it has a small ROM footprint; it requires minimal RAM; it is suitable for use with very small microcontrollers.
 
Traditionally most flash devices have had very large erasable sectors (typically 32K or greater). This always leads to fragmentation issues when creating a file system. HCC’s solution for this problem is to design the various versions of TINY so that they are aligned with the attributes of specific flash memories. This allows the developer to choose a file system that uses minimal resources.
 
Additionally, when used with HCC’s uCDrive technology, the microcontroller becomes a fully configurable and manageable pen drive with minimal overhead.
 
Microcontrollers, such as TI’s MSP430Fxxxx series, have included flash that is both erasable in small sectors and is application-programmable. When used with TINY, numerous new possibilities arise. For example, configuration files can be stored as standard .ini or .txt files, or a new wav file can be dropped to the microcontroller without having to worry about flash layout and fragmentation issues.
 
There are many standalone flash devices (particularly serial flash devices) that have relatively small erasable sector sizes and therefore can benefit from a file system that is consistent with the organization of the flash.
 
Standard NOR flash devices have the drawback of very long erase times, which are often greater than 1 second. However, smaller erasable sector devices have erase times that are typically a few milliseconds. This factor provides new design possibilities for microcontroller-based products requiring some kind of flexible storage.
 
Traditionally, microcontroller developers have not used file systems because of the overheads involved. Now it is possible to use a file system to obtain the benefits of position-independent storage, without using excessive amounts of ROM and RAM, and while still maintaining excellent performance characteristics. This opens up significant new possibilities for the configuration and management of microcontroller-based products.