大量eeprom数据怎么保存
程序中大于用到300个字节的需要掉电保存的数据,我都放在一个结构体中,使用过程中每次操作一次就改一两个数据,我现在的做法是改完数据后,进算所有数据的crc,然后和以前没改数据之前的crc比较,要是不一样就认为数据有改动,然后进行所有数据写eeprom操作。这样做的话其他大量没改动的数据都保存了一遍,我觉得没必要。有没有办法只保存改动过的数据。然后计算crc再保存crc。这样每次保存的话只需保存改动的数据和crc就可以了。 才300个数据而已
不在乎时间的话,想怎么保存就怎么保存。
无论怎么保存,写入寿命都是一样的。不建议在这种无关紧要的事情上浪费时间。。 用CRC校验数据是否改动过,有一定的碰撞概率,不建议这样操作。
操作完成后,与原来的对比一下,不一样就说明被改动了。
或者可以更简单一些:只要操作过了,就算是有改动。 最好是分区存放,肯定是有需要经常修改的参数,放在一起,还有就是你用的是eeprom芯片还是flash芯片,两者的寿命根本不在一个级别 双RAM备份, 双flash备份。
RAM里面逐个字节比,搞神马CRC啊。算个CRC的时间,早比较完了。
300字节不算大,直接写就完了。 没有必要,EEPROM都有页写,你写一个字节和写一页的时间是相同的,
那样做是会导致程序逻辑不清晰
放在结构体里是合理的,只是不需要一改动就回写吧,只在掉电或修改确定后(比如修改参数的任务退出后)再保存即可
不需要计算什么CRC吧,直接内存比较不就可以了吗 你CRC判断的目的是为什么?只是为了识别有没有改动。。。。既然是EEPROM,每改动一次就保存就得了(直接1字节写,改了哪个写哪个),有必要整这么麻烦吗?反正你有改动都要写一次,寿命一样的。 300个字节怎么保存都可以呀,你就是改一个字节你要真实行一次擦写的,300个不算什么大的开销 如果不考虑成本的话,可以采用能单字节操作的EEPROM,这种EEPROM不必要每次改写的时候都擦除整个bank。我以前记得ATMEL推荐过这种EEPROM,不知道其他厂家有没类似的产品。价格应该会贵一些。 ccd007 发表于 2021-8-30 09:18
如果不考虑成本的话,可以采用能单字节操作的EEPROM,这种EEPROM不必要每次改写的时候都擦除整个bank。我以 ...
直接上铁电,时序完数据就写进去了,而且速度超快
页:
[1]