RTOS-32
กก

RTFiles-32: Embedded FAT and ISO 9660 File System

  • Unlimited Number of Files
    RTFiles-32 can handle as many open files as required by the application. Only about 300 bytes of RAM is required for each open file.
  • Up to 32 Logical Drives
    RTFiles-32 easily handles many physical or logical drives.
  • FAT-12, FAT-16, and FAT-32
    RTFiles-32 supports the same FAT (File Allocation Table) formats as DOS and Windows. Storage media can be shared between RTFiles-32 and standard operating systems to exchange data.
  • Supports ISO 9660 File Systems
    RTFiles-32 supports the standard format used for data CD-ROMs and DVDs. Extensions to the ISO 9660 standard such as 9660-Relaxed or Joliet are supported. Most UDF volumes also contain an ISO 9660 directory tree and are thus also supported.
  • Long File Name Support
    On all three FAT types and ISO 9660, file names with up to 255 characters are allowed.
  • Supports Diskettes, Hard Disks, Flash Disks, SRAM Cards, USB disks, CD-ROMs, DVDs
    RTFiles-32 supports the following devices: diskette drives and media with 360k, 1.2M, 720k, 1.44M, and 2.88M capacity, IDE and flash disks with CHS (Cylinder, Head, Sector) or LBA (Logical Block Addressing) interface, M-Systems DiskOnChip flash disks, linear flash, PCMCIA SRAM/CompactFlash/ATA cards, IDE-ATAPI CD-ROMs/DVDs, and USB disks/CDs/DVDs which adhere to the USB Mass Storage Device Specification (RTUSB-32 required).
  • Supports Removable Devices and Hot Swapping
    Floppy disks, removable hard disks (e.g., disks in PCMCIA sockets), USB devices, and CDs/DVDs can be removed and reinserted while an application is running. Devices are automatically remounted as needed. Critical error handling support is available to handle disk removal of devices in use.
  • Multiword DMA and UDMA Transfer Mode
    IDE disks are operated in Multiword DMA or Ultra DMA mode, if supported by the disk and host controller. The IDE disk driver automatically selects the best transfer mode supported by the hardware.
  • Hard Disks up to 2 Terabytes
    The latest standards (such as LBA, ATA-6) for extended sector addressing are supported, if also supported by the disk controller. For FAT-32 volumes, there is no practical limit on partition size.
  • Partitioning and Formatting
    RTFiles-32 has functions to partition and format storage devices. Embedded systems manufactured with virgin disks can automatically format their disks when first powered on.
  • Efficient Cache Support
    RTFiles-32 will cache frequently accessed data such as a volume's FAT or directories. The application has full control over the size of the cache. Large data blocks read or written in a contiguous manner are not cached to avoid cache thrashing.
  • Contiguous Files
    RTFiles-32 can preallocate files to reside in a single contiguous chain of sectors. In this way, it can guarantee that no extra seek operations are required for contiguous read or write operations.
  • Committed and Lazy Write Files
    RTFiles-32's behavior can be fine-tuned for best data security (e.g. always commit all file write operations to disk immediately) or best throughput (e.g. data is kept in cache as long as possible to eliminate redundant write operations).
  • Extensive Diagnostics Support
    RTFiles-32 provides functions to query the state of its cache in great detail. For each file or even a complete volume, the degree of fragmentation can be determined.
  • Native API
    RTFiles-32 has its own API consisting of about 50 functions. While many of these functions appear in all file systems (e.g. open, read, write, etc.), some address advanced features tailored to the needs of embedded systems. For example, RTFExtend can create contiguous (unfragmented) files and RTFBufferInfo returns detailed statistics about RTFiles-32's internal sector buffer cache.
  • Raw I/O Functions
    RTFiles-32 allows the application to call device driver functions directly. Applications can completely bypass the high-level file system and perform sector-level I/O.
  • File System Analysis and Repair
    RTFiles-32's RTFCheckDisk function can detect and automatically repair common file system errors, such as file chain crosslinks, lost clusters, invalid directory entries, etc.
  • Customizable Critical Error Handler
    Applications have full control over how RTFiles-32 handles disk I/O errors. All errors can be passed back to the calling application using standard error codes, or RTFiles-32 can call custom error handlers of the application, which in turn can decide whether the operation should be failed or retried (possibly after prompting the user).
  • Win32 Compatible API
    RTFiles-32 emulates about 30 file I/O related Win32 functions. Existing Win32 programs accessing files are supported without source code modifications.
  • C/C++ and Pascal Run-Time System Support
    Through RTFiles-32's Win32 API emulation, all of the run-time systems' file I/O functions are fully supported. C functions such as fopen, fread, etc., work unmodified with RTFiles-32. The same is true for C++ classes such as iostream.
  • Multitasking Support
    When RTFiles-32 is used with RTKernel-32, all RTFiles-32 operations perform appropriate locking to support simultaneous calls from several tasks. Simultaneous access to different devices is fully supported. I/O device wait times are made available to other tasks by blocking the waiting tasks at a semaphore until the device signals I/O completion by an interrupt.
  • Low Interrupt Latencies
    Although RTFiles-32's device drivers are interrupt-driven, they never disable interrupts and do not process data transfers in interrupt handlers.
  • Installable Device Drivers
    RTFiles-32's device driver interface is very simple. Only three functions are required to access a device: MountDevice, ReadSectors, and WriteSectors. All drivers (except for the M-Systems DiskOnChip driver) shipped with RTFiles-32 come with complete source code, which can be used as a model to implement custom drivers.
  • Portable
    RTFiles-32 is written in ANSI C and does not contain any system or hardware dependencies. All device-specific code is encapsulated in device drivers which are always delivered with full source code (the DiskOnChip driver's source code can be licensed from M-Systems). The portable file system's source code is available at extra charge. By supplying an alternate System Driver, RTFiles-32 can easily be ported to other operating systems or CPUs.

              Structure of RTFiles-32

กก

  Structure of RTFiles-32
  Home