管理在非易失性闪存 NOR 存储器中实现的 FIFO

问题描述 投票:0回答:1

我想在外部 NOR 闪存中实现循环 FIFO。实现 FIFO 本身不是问题,通过使其循环,我确保不会总是在同一扇区上写入/擦除。

但是,我不知道如何管理闪存中指向 FIFO 头部和尾部的指针的存储,而不必始终写入/擦除同一扇区(将存储这些指针的扇区)。对我来说,能够在闪存中存储 FIFO 头部和尾部的位置非常重要,以便能够在重置或电源重置后恢复 FIFO。

关于如何管理指针存储有什么想法或提示吗?

提前致谢。

c flash embedded fifo non-volatile
1个回答
0
投票

一种解决方案是在闪存中为每条记录存储一个索引,并在启动时扫描内存以找到最低和最高索引值,然后在 RAM 中初始化和维护头/尾指针。

使用索引的另一种方法是使用时间戳(数据中可能已经有时间戳)——只要它是单调递增的值。

为此,闪存的擦除值(通常为 0xFFFFFFFF,但在某些设备上为 0x00000000)不能是有效索引。如果使用 32 位值,这可能不是问题,但较小的类型可能需要特定处理。

© www.soinside.com 2019 - 2024. All rights reserved.