辛昕 发表于 2015-8-11 23:41
不好意思啊。
后面的讨论确实是越来越深入,但也过于随意,但我这阵子的时间主要用在看算法和数据结构方 ...
看到这个帖子很高兴,因为我在年初的时候也有要开发一个支持磨损平衡、掉电保护及对类型不敏感的参数存储库想法,后来开源到Github上:https://github.com/armink/EasyFlash
分享下我的磨损平衡的做法,希望对楼主有帮助:
假设所有参数共计需要1K空间进行存储,对参数的保存此时要求至少40W次,同时使用的Flash擦写寿命10W次,最小擦除单位为1K,每个扇区大小为1K。
在使用时需要在Flash预留4K空间(即4个扇区),操作参数前,先把参数读取在RAM中,此时可以对参数进行增删改查的操作。
保存参数时,先从待保存参数中读取上次保存的参数起始地址,再将此地址扇区擦除、写入,如果出现擦除或写入失败,自动变更参数保存起始地址至下一个扇区,依次类推。
另外,还很关心楼主现在的进度如何?再跟大家分享下吧。