|
1 | 1 | # SPIFFS (SPI Flash File System) |
2 | | -**V0.3.5** |
| 2 | +**V0.3.6** |
3 | 3 |
|
4 | 4 | [](https://travis-ci.org/pellepl/spiffs) |
5 | 5 |
|
@@ -30,29 +30,54 @@ What spiffs does: |
30 | 30 | - Uses statically sized ram buffers, independent of number of files |
31 | 31 | - Posix-like api: open, close, read, write, seek, stat, etc |
32 | 32 | - It can run on any NOR flash, not only SPI flash - theoretically also on embedded flash of a microprocessor |
33 | | - - Multiple spiffs configurations can be run on same target - and even on same SPI flash device |
| 33 | + - Multiple spiffs configurations can run on same target - and even on same SPI flash device |
34 | 34 | - Implements static wear leveling |
35 | 35 | - Built in file system consistency checks |
36 | 36 | - Highly configurable |
37 | 37 |
|
38 | 38 | What spiffs does not: |
39 | 39 | - 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*. |
40 | | - - It is not a realtime stack. One write operation might take much longer than another. |
| 40 | + - It is not a realtime stack. One write operation might last much longer than another. |
41 | 41 | - 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. |
42 | 42 | - Presently, it does not detect or handle bad blocks. |
43 | 43 | - One configuration, one binary. There's no generic spiffs binary that handles all types of configurations. |
44 | 44 |
|
45 | 45 |
|
46 | 46 | ## MORE INFO |
47 | 47 |
|
48 | | -See the [wiki](https://github.com/pellepl/spiffs/wiki) for configuring, integrating and using spiffs. |
| 48 | +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. |
49 | 49 |
|
50 | 50 | For design, see [docs/TECH_SPEC](https://github.com/pellepl/spiffs/blob/master/docs/TECH_SPEC). |
51 | 51 |
|
52 | 52 | For a generic spi flash driver, see [this](https://github.com/pellepl/spiflash_driver). |
53 | 53 |
|
54 | 54 | ## HISTORY |
55 | 55 |
|
| 56 | +### 0.3.6 |
| 57 | +- Fix range bug in index memory mapping #98 |
| 58 | +- Add index memory mapping #97 |
| 59 | +- Optimize SPIFFS_read for large files #96 |
| 60 | +- Add temporal cache for opening files #95 |
| 61 | +- More robust gc #93 (thanks @dismirlian) |
| 62 | +- Fixed a double write of same data in certain cache situations |
| 63 | +- Fixed an open bug in READ_ONLY builds |
| 64 | +- File not visible in SPIFFS_readdir #90 (thanks @benpicco-tmp) |
| 65 | +- Cache load code cleanup #92 (thanks @niclash) |
| 66 | +- Fixed lock/unlock asymmetry #88 #87 (thanks @JackJefferson, @dpruessner) |
| 67 | +- Testframe updates |
| 68 | + |
| 69 | +New API functions: |
| 70 | +- `SPIFFS_ix_map` - map index meta data to memory for a file |
| 71 | +- `SPIFFS_ix_unmap` - unmaps index meta data for a file |
| 72 | +- `SPIFFS_ix_remap` - changes file offset for index metadata map |
| 73 | +- `SPIFFS_bytes_to_ix_map_entries` - utility, get length of needed vector for given amount of bytes |
| 74 | +- `SPIFFS_ix_map_entries_to_bytes` - utility, get number of bytes a vector can represent given length |
| 75 | + |
| 76 | +New config defines: |
| 77 | +- `SPIFFS_IX_MAP` - enable possibility to map index meta data to memory for reading faster |
| 78 | +- `SPIFFS_TEMPORAL_FD_CACHE` - enable temporal cache for opening files faster |
| 79 | +- `SPIFFS_TEMPORAL_CACHE_HIT_SCORE` - for tuning the temporal cache |
| 80 | + |
56 | 81 | ### 0.3.5 |
57 | 82 | - Fixed a bug in fs check |
58 | 83 | - API returns actual error codes #84) (thanks @Nails) |
|
0 commit comments