Я пытаюсь разработать структуру истории аварийных сигналов для сохранения в энергонезависимой флэш-памяти. Флэш-память имеет ограниченное количество циклов записи, поэтому мне нужен способ добавлять записи в структуру, не перезаписывая все флэш-страницы в структуре каждый раз и не записывая обновленные указатели на начало / конец очереди.
Кроме того, как только доступное пространство флэш-памяти будет использовано, я хочу начать перезаписывать записи, ранее сохраненные во флэш-памяти, начиная с первой записи, добавленной первым-первым-первым. Это заставляет меня думать, что кольцевой буфер лучше всего подойдет для добавления элементов. Однако при просмотре записей я хочу, чтобы структура работала как стек. Например. Записи будут отображаться в обратном хронологическом порядке «первым пришел-первым вышел».
Размер структуры, голова, хвост, индексы не могут быть сохранены, если они не сохранены в самой записи, поскольку, если бы они записывались каждый раз в фиксированное место, это превысило бы максимальные циклы записи на странице, где они были сохранены.
Так я должен использовать стек, очередь или какую-то гибридную структуру? Как хранить информацию о голове, хвосте, размере во флэш-памяти, чтобы ее можно было повторно инициализировать после включения питания?