Не ругайте меня - но... Т.к. EEPROM - это по сути та же флэш с необходимостью стирания при перезаписи, то может быть имеет смысл выделить с 10-ток-другой первых байтов под битовую карту. А занята-незанята ячейка (лога, например) можно определять по нулю в битовой карте. Один байт - всегда все единицы - для реализации "закольцованности". Соответственно, при занятии очередной ячейки "кольца" - модификация битовой карты (соответствующего бита). При пересечении байтовой границы битовой карты - стираем (во все 1) следующий байт. Сорри, я себе так это представляю. З.Ы. А наличие как минимум одного байта все 1 в карте не даст запутаться при запуске.