我正在开发一个Arduino库,它可以最大限度地延长AVR EEPROM的使用寿命.它需要您想要存储的变量数量,其余部分.这是我的尝试,在所有情况下都不起作用.
Atmel表示,每个存储器单元的额定写入/擦除周期为100,000次.他们还提供了一份应用说明,介绍了如何进行磨损均衡.以下是应用笔记的摘要.
通过在两个存储器地址之间交替写入,我们可以将擦除/写入增加到200,000个周期.三个存储器地址为您提供300,000个擦除/写入周期,依此类推.要自动执行此过程,将使用状态缓冲区来跟踪下一次写入的位置.状态缓冲区的长度也必须与参数缓冲区的长度相同,因为也必须对其进行磨损均衡.由于我们无法存储下一个写入的索引,因此我们在状态缓冲区中增加相应的索引.
这是一个例子.
<------------------- EEPROM -------------------->
0 N
-------------------------------------------------
Parameter Buffer | Status Buffer |
-------------------------------------------------
Initial state.
[ 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ]
First write is a 7. The corresponding position
in the status buffer is changed to previous value + 1.
Both buffers are circular.
[ 7 | 0 | 0 | 0 | …
Run Code Online (Sandbox Code Playgroud)