SHDesigns: Embedded Systems Design, Consulting and Developer Resources Page hits:

SHDesigns File system Libraries for Softools

These Libraries Do Not Work with Dynamic C

 SHDesigns FAT Library:  SHDesigns Embedded File System Library (SHD/EFS):
  • Written for speed and ease of use.
  • PC-Compatible file system.
  • Supports FAT12, FAT16 and devices with no partition table.
  • Uses Softools sfash.lib.
  • Minimizes Flash wear.
  • Cached reads and writes for speed.
  • Stream interface. Stdio (FILE *) support.
  • Supports RCM3700, RCM3300, SF1000 Flash chips
  • Can use generic Atmel Serial Flash Chip
  • Supports Atmel DataFlash Cards
  • Supports MMC/Secure Digital Cards
  • No cached data after files are closed
  • Does not require battery-backed RAM
  • Supports Long File Names
  • Includes HTTP server sample
  • Tested on RCM3300, RCM3700, Atmel DataFlash, MMC, Compact Flash and IDE.
  • Includes source to library, driver source and example programs.
  • Supports SHDesigns SPI-200 chip for fast data transfers.
  • Tested with MMC/SD cards up to 2GB

Purchase with MMC/SPI Adapter board and save $10:

Note: Not recommended where the FAT library will work

  •  Written for speed and ease of use.
  • Optimized for larger files.
  • Excellent Flash wear prevention.
  • File names up to 64 characters
  • Can have multiple extensions.
  • Subdirectories can be simulated. I.e. logfiles\daily.log is a valid file name. A search for logfiles\* would find all files in the simulated directory.
  • Supports Large drives up to 128 Gig.
  • Block, Stream and Stdio interfaces.
  • Uses XMEM for file buffering and File data
  • Uses Softools slfash.lib
  • Supports RCM3700, RCM3300, SF1000 Flash chips
  • Can use generic Atmel Serial Flash Chip
  • Supports Atmel DataFlash Cards
  • No cached data after files are closed
  • Does not require battery-backed RAM
  • Simple ATA interface library, easy to port to IDE or Compact Flash.
  • Tested on RCM3300, RCM3700, Atmel DataFlash, MMC, Compact Flash and IDE.
  • Includes binary library, driver source and example programs.

Comparison of File systems.

 Feature List  SHD FAT  SHD/EFS  ZWorld FAT
 Read Speed,
50k file, 512-byte reads
 300.2kB/sec  226kB/sec  193kB/sec
 Write Speed,
50k File, 512-byte writes
 30.5kB/sec  29kB/sec  31.5kB/sec
 File Names  up to 128 chars  64 char  8.3 only
 Subdirectories  Yes  Emulated  Yes
 Long File Name Support  Yes  Yes  No
 Device Size  Up to 2 Gig  Up to 128 Gig  1 Gig?
 PC-Compatible File system  Yes  No  No, non-standard partition table
 Stdio support  Yes  Yes  No
 Stream Support  Yes  Yes  No
 Far data read/writes  No  Yes  Limited
 Sample Root Code/const  2k  2k  17k
 Sample Root Data  2.5k 4k  7.7k
 Available Root space  43k  42k  19.3k
 Sample program size  29K  35K  110K
 ZServer/Http support  Via CGI function  No  Yes
 Requires BBRAM  No  No  Yes
 Flush command  Yes  Yes  Requires Unmount of Partition
 Corruption due to power loss.  Open Files Truncated  Open Files
Truncated
May recover last write.
Often File System Corrupted.
MMC/SD Card Support Yes Future With DC Version 9.5 and later
 RCM3700/RCM3300/RCM3800
and SF1000 support
 Yes  Yes  SF1000 requires custom driver settings
 Atmel DataFlash Support  Yes  Yes  Requires Lib change.
 RAM Filesystem Support Yes No No
 Compact Flash / IDE Support Yes (sample drivers.)  Yes No
 Softools Support  Yes  Yes No
 License Cost  $75.00  $75.00  $149.00 (Now Free in 9.5x and up)
 Free Updates  Yes  Yes  Yes
 Full Source  Yes  Optional  Yes

ZW HTTP server support:

The ZW HTTP code is hardcoded to their FAT library. It does not allow long file names. Adding support for either of SHDesigns file systems would be a major rewrite of their code. The FAT library includes a CGI script that allows files to be served from the file system.

Test Parameters:

File system Corruption:

All file systems were tested for corruption on a power loss. The ZW FAT corrupted the entire File system if the RAM was not battery-backed. Even with backup, loading a new program would somehow cause the partition to fail to mount.

The SHD/FAT Library would truncate files that were open for writing on a reset with files open.

The SHD/EFS library would truncate files that were open on write on a reset. SHD/EFS has no FAT table on disk. This data is rebuilt on reboot and is kept in RAM

MMC/Secure Digital Flash Card support Support

SHDesigns has tested an MMC interface on an RCM3200. This has worked well. Testing was done on a KingMax 128MB card.

MMC/SD is the best option for removable storage. It has distinct advantages:

MMC/SD Read/write speeds (SHD/FAT):

   Rabbit SPI  SPI-200
 Read Speed  315 kB/sec  930 kB/sec
 Write Speed  211.2 kB/sec  425 kB/sec

Tests done with RCM3200, 512-byte reads and writes.

MMC/SD provides much faster data transfer than the Atmel serial flash. The SPI-200 adds additional hardware accelleration due to reduced code and higher bit clock. MMC is also removable and can be read on a PC. An easy way to transfer files between a PC and a Rabbit board.

Compact Flash / IDE support:

A sample library is included for CF/IDE. It was used for testing only. IDE is 16-bit only. External hardware is needed for 16-bit read/writes. IDE Speeds of 500kbytes/sec and higher have been achieved with the IDE interface. CF is just as fast for read.