这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 300个字节的数据如何在系统掉电时比较好的保存到EEPROM中?

共6条 1/1 1 跳转至

300个字节的数据如何在系统掉电时比较好的保存到EEPROM中?

工程师
2021-08-30 20:28:09     打赏

程序中大于用到300个字节的需要掉电保存的数据,我都放在一个结构体中,使用过程中每次操作一次就改一两个数据,我现在的做法是改完数据后,进算所有数据的crc,然后和以前没改数据之前的crc比较,要是不一样就认为数据有改动,然后进行所有数据写eeprom操作。这样做的话其他大量没改动的数据都保存了一遍,我觉得没必要。


有没有办法只保存改动过的数据。然后计算crc再保存crc。这样每次保存的话只需保存改动的数据和crc就可以了。




关键词: EEPROM     掉电     保存     存储    

工程师
2021-08-30 20:58:07     打赏
2楼

才300个数据而已
不在乎时间的话,想怎么保存就怎么保存。
无论怎么保存,写入寿命都是一样的。不建议在这种无关紧要的事情上浪费时间。。


工程师
2021-08-30 21:04:53     打赏
3楼

用CRC校验数据是否改动过,有一定的碰撞概率,不建议这样操作。
操作完成后,与原来的对比一下,不一样就说明被改动了。
或者可以更简单一些:只要操作过了,就算是有改动。


工程师
2021-08-30 21:12:09     打赏
4楼

最好是分区存放,肯定是有需要经常修改的参数,放在一起,还有就是你用的是eeprom芯片还是flash芯片,两者的寿命根本不在一个级别


工程师
2021-09-02 08:51:02     打赏
5楼

可以搞双RAM备份, 双flash备份。
RAM里面逐个字节比,搞神马CRC啊。算个CRC的时间,早比较完了。


工程师
2021-09-02 09:01:42     打赏
6楼

没有必要啊!

EEPROM都有页写,你写一个字节和写一页的时间是相同的,
那样做是会导致程序逻辑不清晰
放在结构体里是合理的,只是不需要一改动就回写吧,只在掉电或修改确定后(比如修改参数的任务退出后)再保存即可
不需要计算什么CRC吧,直接内存比较不就可以了嘛!


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]