mirror of
https://github.com/pellepl/spiffs.git
synced 2025-08-06 06:46:00 +08:00
SPIFFS (SPI Flash File System) V0.1 Copyright (c) 2013 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 flash devices on embedded targets. Spiffs is designed with following characteristics in mind: - Small (embedded) targets, sparse RAM - 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: - 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. - Presently, it does not detect or handle bad blocks. For integration, see the docs/INTEGRATION file. For use and design, see the docs/TECH_SPEC file.
Languages
C
95.8%
Python
3.2%
Makefile
1%