mirror of
https://github.com/pellepl/spiffs.git
synced 2026-08-03 17:07:47 +00:00
58 lines
2.0 KiB
Plaintext
58 lines
2.0 KiB
Plaintext
SPIFFS (SPI Flash File System)
|
|
V0.2.1
|
|
|
|
Copyright (c) 2013-2014 Peter Andersson (pelleplutt1976<at>gmail.com)
|
|
|
|
For legal stuff, see LICENCE in this directory. 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:
|
|
- 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.
|
|
|
|
|
|
* MORE INFO
|
|
|
|
For integration, see the docs/INTEGRATION file.
|
|
|
|
For use and design, see the docs/TECH_SPEC file.
|
|
|
|
For testing and contributions, see the docs/IMPLEMENTING file.
|