系统参数分开存进各个扇区,要改写可以对各自扇区改写,如果是数据较多,利用擦除后为0xff轮着写下去,先读取数据碰到连续n个0xff认为是够写入,就回到第一个0Xff写入进去。读取的时候碰到连续0xff,认为没写到这里,就回到有数据的地方读取。发现整个扇区已写就擦除扇区,再写入。最好使用两个扇区进行互相备份,每写一次,就跟着写入修改次数,次数大的为最近更新。
比如
扇区1,数据,次数0,数据,次数1。
扇区2,数据,次数0,n个0Xff。
说明扇区1存在断电无法存入的可能性,则读取扇区2的0次数据进行恢复(扇区2在1完成后再写入,如果扇区1没写完成就断电或者程序异常,扇区2是不会被写的,这样保证了能读取到有效数据,当然,这个冗余功能可以不要。)。
|