реклама на сайте
подробности

 
 
> Хранилище "Key->Value" для EEPROM
ArtDenis
сообщение Jun 9 2015, 12:14
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



Предполагается в EEPROM хранить (и при необходимости читать) разные наборы данных, размер и количество которых заранее неизвестно. На мой взгляд для этого подходит идеология хранилища Key->Value, где Key - это например целое число, по которому я идентифицирую сохраняемый набор, а Value - данные этого набора в бинарном виде. Есть ли готовые библиотеки для подобных хранилищ, для которых надо было бы дописать только чтение/запись EEPROM?

PS: размер EEPROM небольшой - всего 12 Кб. Размер сохраняемых наборов - от нескольких байт до килобайта.

Сообщение отредактировал ArtDenis - Jun 9 2015, 12:15


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RabidRabbit
сообщение Jun 10 2015, 05:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



Так и почитайте о файловых системах, решение к Вам и придёт sm.gif
Например, разбиваете Вашу ЭППЗУ на блоки равного размера.
Самый первый обзываете суперблоком и пишете туда размер одного блока, их количество, сколько свободных блоков осталось и ещё может что.
Следом в одном или нескольких блоках размещаете битовую карту занятых блоков (бит сброшен - блок занят).
Каждый блок состоит из номера следующего блока и данных.
В следующем после битовой карты блоке размещается каталог, содержащий записи вида: номер первого блока/размер информации.
Для добавления нового Value ищете первую свободную запись в каталоге, если нет, добавляете к каталогу ещё один блок.
Далее находите столько номеров свободных блоков, сколько требуется для размещения Value, записывается информацию в эти блоки, располагая их цепочкой, вносите изменения в битовую карту и суперблок. Ключом будет являтся номер первого блока в цепочке.
Для перечисления просматриваете каталог.
Удаление Value также не представляет сложности.
Go to the top of the page
 
+Quote Post
ArtDenis
сообщение Jun 10 2015, 05:55
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



Цитата(psL @ Jun 10 2015, 10:40) *
на самом деле в key-value данные хранятся по хешу key, т.е. по целому, а не по строке, а ТС предлагает вместо хеш-функции использовать перечисление.
Вообще непонятно зачем это в таком виде нужно, поскольку key-value используется для скоростной выборки данных

Скорость для меня не важна. И требования я такого не ставил. Для меня главное, чтобы работа с данными производилась через целочисленный ключ. А идеология "Ключ->Значение" приведена в качестве примера чего я хочу.
Цитата(RabidRabbit @ Jun 10 2015, 10:42) *
Так и почитайте о файловых системах, решение к Вам и придёт sm.gif

Я ищу готовый вариант. Свой велосипед я всегда успею написать biggrin.gif


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ArtDenis   Хранилище "Key->Value" для EEPROM   Jun 9 2015, 12:14
- - RabidRabbit   Самое простое - использовать в качестве ключа смещ...   Jun 9 2015, 18:26
- - alexeyv   ЦитатаСамое простое - использовать в качестве ключ...   Jun 10 2015, 03:05
- - _Pasha   ТС, Вы ничего не сказали об интенсивности стираний...   Jun 10 2015, 03:42
- - ArtDenis   Цитата(RabidRabbit @ Jun 9 2015, 23:26) С...   Jun 10 2015, 04:41
- - AlexandrY   Цитата(ArtDenis @ Jun 9 2015, 15:14) Пред...   Jun 10 2015, 05:08
|- - ArtDenis   Цитата(AlexandrY @ Jun 10 2015, 10:08) Та...   Jun 10 2015, 05:15
|- - AlexandrY   Цитата(ArtDenis @ Jun 10 2015, 08:15) Я н...   Jun 10 2015, 05:31
|- - ArtDenis   Цитата(AlexandrY @ Jun 10 2015, 10:31) Ес...   Jun 10 2015, 05:37
|- - AlexandrY   Цитата(ArtDenis @ Jun 10 2015, 08:37) Как...   Jun 10 2015, 07:17
|- - ArtDenis   Цитата(AlexandrY @ Jun 10 2015, 12:17) Не...   Jun 10 2015, 07:30
- - psL   на самом деле в key-value данные хранятся по хешу ...   Jun 10 2015, 05:40
|- - esaulenka   Цитата(psL @ Jun 10 2015, 08:40) Придумат...   Jun 10 2015, 06:41
- - Эдди   Чтобы пореже стирать EEPROM, мне как-то предлагали...   Jun 10 2015, 08:41
- - ArtDenis   Эдди, спасибо за идею! Хотя у меня есть подозр...   Jun 10 2015, 09:47
|- - Эдди   Цитата(ArtDenis @ Jun 10 2015, 12:47) Эдд...   Jun 11 2015, 04:31
|- - ArtDenis   Цитата(Эдди @ Jun 11 2015, 09:31) Пишете ...   Jun 11 2015, 04:37
- - mcheb   Цитата(ArtDenis @ Jun 9 2015, 15:14) Пред...   Jun 10 2015, 09:55
|- - ar__systems   А че так сложно-то все? Данных всего - каких-то жа...   Jun 10 2015, 10:17
|- - AHTOXA   Цитата(ar__systems @ Jun 10 2015, 15:17) ...   Jun 11 2015, 03:44
- - Сергей Борщ   Гляньте minIni. Это не совсем то, что вам нужно - ...   Jun 10 2015, 10:22
- - ViKo   В начале EEPROM создать таблицу, в которой хранить...   Jun 11 2015, 04:09
|- - _Pasha   Цитата(ViKo @ Jun 11 2015, 07:09) ЗЫ. Таб...   Jun 13 2015, 01:41
|- - jcxz   Цитата(ViKo @ Jun 11 2015, 10:09) В начал...   Jun 13 2015, 05:02
|- - Jenya7   Цитата(jcxz @ Jun 13 2015, 11:02) Таблица...   Jun 14 2015, 05:39
|- - jcxz   Цитата(Jenya7 @ Jun 14 2015, 11:39) а адр...   Jun 14 2015, 08:29
- - zltigo   QUOTE (ArtDenis @ Jun 9 2015, 15:14) Пред...   Jun 14 2015, 06:22


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 16:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016