Цитата(RabidRabbit @ Jun 9 2015, 23:26)

Самое простое - использовать в качестве ключа смещение данных в ЭППЗУ.
Цитата(alexeyv @ Jun 10 2015, 08:05)

+100500
Нет. Это не соответствует требованию "размер и количество которых заранее неизвестно". В качестве ключа я хочу выбирать число, которое как-то характеризует хранимые данные.
Цитата(_Pasha @ Jun 10 2015, 08:42)

ТС, Вы ничего не сказали об интенсивности стираний элементов. Потому что если у Вас пойдет сильная фрагментация, то доступ к объектам нужно делать через двойные указатели.
Да, фрагментация будет конечно. Я хочу чтобы эту проблему решала сама библиотека.
Фактически, мне нужно от библиотеки что-то типа такого:
Код
#define CONFIG_KEY 1
#define DATA_KEY 2
#define SUPER_PUPER_KEY 0xFFFFFFFF
...
save_into_eeprom(CONFIG_KEY, &config, sizeof(config));
save_into_eeprom(DATA_KEY, &data, sizeof(data));
save_into_eeprom(SUPER_PUPER_KEY, &super_puper_value, sizeof(super_puper_value));
...
load_from_eeprom(CONFIG_KEY, &config, sizeof(config));
load_from_eeprom(DATA_KEY, &data, sizeof(data));
load_from_eeprom(SUPER_PUPER_KEY, &super_puper_value, sizeof(super_puper_value));
...
erase_key(SUPER_PUPER_KEY);
+ желательно чтобы можно было перечислять ключи записей, которые хранятся на данный момент.
Фактически, это должно быть что-то типа файловой системы, только в качестве имени файла выступает целое число.