diff --git a/README.md b/README.md index 7cb24b5..63ab3f6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # SPIFFS (SPI Flash File System) -**V0.3.5** +**V0.3.6** [![Build Status](https://travis-ci.org/pellepl/spiffs.svg?branch=master)](https://travis-ci.org/pellepl/spiffs) @@ -30,14 +30,14 @@ What spiffs does: - Uses statically sized ram buffers, independent of number of files - Posix-like api: open, close, read, write, seek, stat, etc - It can run on any NOR flash, not only SPI flash - theoretically also on embedded flash of a microprocessor - - Multiple spiffs configurations can be run on same target - and even on same SPI flash device + - Multiple spiffs configurations can run on same target - and even on same SPI flash device - Implements static wear leveling - Built in file system consistency checks - Highly configurable 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. + - It is not a realtime stack. One write operation might last much longer than another. - Poor scalability. Spiffs is intended for small memory devices - the normal sizes for SPI flashes. Going beyond ~128Mbyte 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. - One configuration, one binary. There's no generic spiffs binary that handles all types of configurations. @@ -45,7 +45,7 @@ What spiffs does not: ## MORE INFO -See the [wiki](https://github.com/pellepl/spiffs/wiki) for configuring, integrating and using spiffs. +See the [wiki](https://github.com/pellepl/spiffs/wiki) for [configuring](https://github.com/pellepl/spiffs/wiki/Configure-spiffs), [integrating](https://github.com/pellepl/spiffs/wiki/Integrate-spiffs), [using](https://github.com/pellepl/spiffs/wiki/Using-spiffs), and [optimizing](https://github.com/pellepl/spiffs/wiki/Performance-and-Optimizing) spiffs. For design, see [docs/TECH_SPEC](https://github.com/pellepl/spiffs/blob/master/docs/TECH_SPEC). @@ -53,6 +53,31 @@ For a generic spi flash driver, see [this](https://github.com/pellepl/spiflash_d ## HISTORY +### 0.3.6 +- Fix range bug in index memory mapping #98 +- Add index memory mapping #97 +- Optimize SPIFFS_read for large files #96 +- Add temporal cache for opening files #95 +- More robust gc #93 (thanks @dismirlian) +- Fixed a double write of same data in certain cache situations +- Fixed an open bug in READ_ONLY builds +- File not visible in SPIFFS_readdir #90 (thanks @benpicco-tmp) +- Cache load code cleanup #92 (thanks @niclash) +- Fixed lock/unlock asymmetry #88 #87 (thanks @JackJefferson, @dpruessner) +- Testframe updates + +New API functions: +- `SPIFFS_ix_map` - map index meta data to memory for a file +- `SPIFFS_ix_unmap` - unmaps index meta data for a file +- `SPIFFS_ix_remap` - changes file offset for index metadata map +- `SPIFFS_bytes_to_ix_map_entries` - utility, get length of needed vector for given amount of bytes +- `SPIFFS_ix_map_entries_to_bytes` - utility, get number of bytes a vector can represent given length + +New config defines: +- `SPIFFS_IX_MAP` - enable possibility to map index meta data to memory for reading faster +- `SPIFFS_TEMPORAL_FD_CACHE` - enable temporal cache for opening files faster +- `SPIFFS_TEMPORAL_CACHE_HIT_SCORE` - for tuning the temporal cache + ### 0.3.5 - Fixed a bug in fs check - API returns actual error codes #84) (thanks @Nails)