Bestandssysteem – SPIFFS (SPI Flash File System)

data versturen

Informatie (ENG):

Introduction

Spiffs is a file system intended for SPI NOR flash devices on embedded targets.

Spiffs is designed with following characteristics in mind:

  • Small (embedded) targets, sparse RAM without heap
  • Only big areas of data (blocks) can be erased
  • An erase will reset all bits in block to ones
  • Writing pulls one to zeroes
  • Zeroes can only be pulled to ones by erase
  • Wear leveling

Features

What spiffs does:

  • Specifically designed for low ram usage
  • Uses statically sized ram buffers, independent of number of files
  • Posix-like api: open, close, read, write, seek, stat, etc
  • It can be run on any NOR flash, not only SPI flash – theoretically also on embedded flash of an microprocessor
  • Multiple spiffs configurations can be run on same target – and even on same SPI flash device
  • Implements static wear leveling
  • Built in file system consistency checks

What spiffs does not:

  • Presently, spiffs does not support directories. It produces a flat structure. Creating a file with path tmp/myfile.txt will create a file called tmp/myfile.txt instead of a myfile.txt under directory tmp.
  • It is not a realtime stack. One write operation might take much longer than another.
  • Poor scalability. Spiffs is intended for small memory devices – the normal sizes for SPI flashes. Going beyond ~128MB is probably a bad idea. This is a side effect of the design goal to use as little ram as possible.
  • Presently, it does not detect or handle bad blocks.

Download SPIFFS @ Github.com