金牌会员
 
- 积分
- 2317
- 金钱
- 2317
- 注册时间
- 2016-12-2
- 在线时间
- 354 小时
|
发表于 2018-7-20 22:18:34
|
显示全部楼层
本帖最后由 sammy902583 于 2018-7-20 22:24 编辑
看过有人用这样的做法:
1. 基本上资料是从SPI ROM从头到尾写, 每一笔资料前面带Header, 后面接Payload, 一笔接一笔连续写入
2. Header有一个Flag, 每改变一次状态, 其中一个bit就从1改变为0, (比方讲未删除0xF, 删除变0x7), 这样改变状态只要再次写入Flag byte(不用擦除Block)就可以了.
3. 如果要改变某笔资料, 就改变旧资料Flag, 变成删除状态, 然后写入新资料
4. 当SPI ROM处于快满的情况时, 先保存里面有效的资料到另一个地方, 然后讲整块SPI ROM擦除, 再把保存的有效资料重新写回.
只是, 读取某个资料时要, 要从头到尾, 去识别Header就是了.
资料最尾端也不用特别保存记录, 在Header放一个非0xFF的Signature, 如果SPI ROM从到开始找, 看到Header全部是0xFF就是尾端了.
|
|