The TFS Design Criteria

The initial goal of TFS was to provide my firmware with the ability to treat system flash as namespace instead of address space. This approach eliminates the need for each new application to deal with the flash memory in some unfamiliar or clumsy way. At the same time, I didnt want to eliminate the ability to access the data within the file as simple memory; hence, I needed an API to support the namespace model, but I wanted a hook into the raw flash to support the basic address/data model. To support both access methods , TFS must guarantee that the data for any one file is in contiguous address space in flash.

Another goal of the design was to make TFS somewhat device- and RTOSindependent. To avoid potential real-time conflicts, TFS is designed to operate without requiring system interrupts. TFS works with a wide range of flash devices. The only restriction on the underlying flash device is that its sector size must be larger than the TFS header size (currently 92 bytes). As a consequence of these choices, TFS can support a high-level application that wants a file system model (i.e., access to files and data through an open /close/read/write API), as well as a real-time application that needs quick memory access (access file by name , access data within the file by address).

TFS is a linear file system that gives a typical embedded systems project all of the file-system -like capabilities it will ever need. TFS does not support any sophisticated wear-leveling algorithm, it doesnt have a directory hierarchy, and it is not compatible with any other file system. I have yet to work on a project that was accessing the flash frequently enough to need wear leveling, and DOS compatibility is not necessary if the media is not removable. TFS is independent of the RTOS (it doesnt need an RTOS), and it is easily hooked into an application.



Embedded Systems Firmware Demystified
Embedded Systems Firmware Demystified (With CD-ROM)
ISBN: 1578200997
EAN: 2147483647
Year: 2002
Pages: 118
Authors: Ed Sutter

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net