tinyFlash
一种超轻量级的flash KV数据存储方案
Github 地址:https://github.com/ospanic/tinyFlash
设计原理
本方案采用两个扇区轮流使用的方法存储数据,每个扇区4096字节,扇区状态如下表:
扇区编号 | 使用状态 | 数据分布 |
---|---|---|
扇区一 | 使用中 | 0xAA ······················································· |
扇区二 | 未使用 | 0xFF ······················································· |
使用中的扇区数据分布如下表:
扇区头部 | K1 | V1 | K2 | V2 | ..... | Kn | Vn |
---|---|---|---|---|---|---|---|
32字节 | 3字节 | n字节 | 3字节 | n字节 | ..... | 3字节 | n字节 |
每个K-V数据存储形式如下表:
第一字节 | 第二字节 | 第三字节 | n个字节 |
---|---|---|---|
Key | ~Key | Len |