优势:占用资源少,具备flash读写即可,可以不用整个扇区读出,只需在开始位置获取第一个data head,然后根据head里记录的长度,就能获取下一个data head或者空闲地址。51单片机也能很好的使用。内外flash都可以用。支持新增数据,支持数据恢复(上一次存储的数据)。
劣势:不支持删除数据,不可一次性存入超过扇区大小 - data head的数据量。
存储模型的思路就是对于接口来说仅有一个扇区可用,接口内部会根据配置在1个或多个扇区来回读写数据。
目前已在GD32,stc51上测试并验证。如果有好的建议我可以学习一下,优化我自己的代码。
支持多个扇区的均衡磨损,data head改为crc校验,对后边的整个数据区进行校验,即使用户数据和data head一样,也不会通过校验
下图第一横线为00 00,代表此扇区已写满,被标记为不可用状态,第二横线为data head
下图第一横线为此扇区未写满,被标记为活动状态,第二横线为data head