pellepl / spiffs

Wear-leveled SPI flash file system for embedded devices
MIT License
1.49k stars 402 forks source link
embedded file file-system flash spi spi-flash spiffs system wear-leveling

SPIFFS (SPI Flash File System)

V0.3.7

Build Status

Copyright (c) 2013-2017 Peter Andersson (pelleplutt1976 at gmail.com)

For legal stuff, see LICENSE. Basically, you may do whatever you want with the source. Use, modify, sell, print it out, roll it and smoke it - as long as I won't be held responsible.

Love to hear feedback though!

INTRODUCTION

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

Spiffs is designed with following characteristics in mind:

BUILDING

mkdir build; make

Otherwise, configure the builddir variable towards the top of makefile as something opposed to the default build. Sanity check on the host via make test and refer to .travis.yml for the official in-depth testing procedure. See the wiki for integrating spiffs into projects and spiffsimg from nodemcu is a good example on the subject.

FEATURES

What spiffs does:

What spiffs does not:

NOTICE

0.4.0 is under construction. This is a full rewrite and will change the underlying structure. Hence, it will not be compatible with earlier versions of the filesystem. The API is the same, with minor modifications. Some config flags will be removed (as they are mandatory in 0.4.0) and some features might fall away until 0.4.1. If you have any worries or questions, it can be discussed in issue #179

MORE INFO

See the wiki for configuring, integrating, using, and optimizing spiffs.

For design, see docs/TECH_SPEC.

For a generic spi flash driver, see this.

HISTORY

0.3.7

New API functions:

New config defines:

0.3.6

New API functions:

New config defines:

0.3.5

0.3.4

New API functions:

New config defines:

0.3.3

Might not be compatible with 0.3.2 structures. See issue #40

New config defines:

0.3.2

New API functions:

0.3.1

0.3.0

New config defines:

New API functions: