Перейти к содержанию
    

СУБД для микроконтроллерной среды.

В свое время работал с базами данных. Очень удобно и функционально получалось реализовывать многие вещи. Скажите, встречаются подобного рода подходы, для хранения и обработки информации, в мире микроэлектронных систем?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел нечто подходящее для встраиваемых систем: SQLite, но на сколько я понял, для того чтоб развернуть это дело нужен линукс полюбому?

Возможно использовать функционал этой системы в RTOS, ну например FreeRTOS?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Позволю усомниться в надобности СУБД. Если речь про микроэлектронные системы, то тут ограничена и память и быстродействие. Т.к. такие системы обычно работают в реалтайме, то и требования к СУБД тоже реалтаймовые получаются? Думаю что в варианте "без SQL" такое возможно, но опять же есть ли смысл?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Позволю усомниться в надобности СУБД. Если речь про микроэлектронные системы, то тут ограничена и память и быстродействие. Т.к. такие системы обычно работают в реалтайме, то и требования к СУБД тоже реалтаймовые получаются? Думаю что в варианте "без SQL" такое возможно, но опять же есть ли смысл?

 

Ну базы данных разными бывают. Есть монстры на больших предприятиях и есть небольшие и аккуратные хранилища вспомогательной информации ,данных с периферии и т.д. Ну скажем так: мне не помешает однозначно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм, нашел пару ссылок где говорят о том что запускали на RTOS SQLite, но работала база только если хранилась в ОЗУ. Встречаются упоминания о коммерческих реализациях поддержки SQLite в той или иной RTOS ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Berkeley DB ?

 

Wiki: высокопроизводительная встраиваемая база данных, реализованная в виде библиотеки. BDB является нереляционной базой данных — она хранит пары ключ/значение как массивы байтов и поддерживает множество значений для одного ключа. BDB может обслуживать тысячи процессов или потоков, одновременно манипулирующих базами данных размером в 256 терабайт, на разнообразном оборудовании под различными операционными системами, включая большинство UNIX-подобных систем и Windows, а также на операционных системах реального времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите в сторону .Net Micro Framework. В некоторых портах (например у GHI electronics) есть реализация SQLite.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм, нашел пару ссылок где говорят о том что запускали на RTOS SQLite, но работала база только если хранилась в ОЗУ. Встречаются упоминания о коммерческих реализациях поддержки SQLite в той или иной RTOS ...

 

А зачем ссылки искать?

В самой доке на SQLite есть пример портирования на платформу вообще без файловой системы с прямой записью на носитель.

Есть там и модуль портирования VFS на RTOS VxWorks.

Есть порт и под POSIX (многие RTOS имеют POSIX совместимый интерфейс)

 

Если есть лишних 600 КБ под память программ на платформе и хороший менеджер кучи то SQLite можно пожалуй за день портировать и без оси.

Правда их дикий основной файл размером в три метра редкий парсер обработает. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм, нашел пару ссылок где говорят о том что запускали на RTOS SQLite, но работала база только если хранилась в ОЗУ. Встречаются упоминания о коммерческих реализациях поддержки SQLite в той или иной RTOS ...

 

Если база хранится в ОЗУ, то как я понимаю нужно организовывать процедуры записи данных из базы во флэш к примеру, а так же чтения базы при перезапуске системы. Думаю, что если количество данных не очень большое, то проще разработать свои структуры хранения и обработки - думаю будет намного бытрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если база хранится в ОЗУ, то как я понимаю нужно организовывать процедуры записи данных из базы во флэш к примеру, а так же чтения базы при перезапуске системы. Думаю, что если количество данных не очень большое, то проще разработать свои структуры хранения и обработки - думаю будет намного бытрее.

 

Тут просто недопонимание.

SQLite не зависит от типа носителя, там все кончается абстракцией называемой "виртуальная файловая система" VFS.

Все что ниже разработчик пишет сам.

В примерах SQLite сразу работает с Flash накопителями.

 

Но реально тягаться с SQLite в быстроте самопальными на скорую руку методами, IMHO, бессмысленно.

 

А то что там нужен адекватный большой heap в ОЗУ, так это любые базы данных требуют и самопальные в том числе.

Разница лишь в том, что в SQLite это будет проверено и будет встроена диагностика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вообщем говорю даже не о самопальной или профессиональной базе, а вообще о ее необходимости. То есть насколько большое количество данных надо структурировать. То есть если у меня к примеру есть только 100 значений данных, то нужна ли для этого база данных...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вообщем говорю даже не о самопальной или профессиональной базе, а вообще о ее необходимости. То есть насколько большое количество данных надо структурировать. То есть если у меня к примеру есть только 100 значений данных, то нужна ли для этого база данных...

 

Да хоть даже по 10 значений но в 10-и таблицах и сразу почувствуете необходимость в базе данных.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм.... Возможно... Если честно то никогда не задумывался о реализации БД в микроконтроллерах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут просто недопонимание.

SQLite не зависит от типа носителя, там все кончается абстракцией называемой "виртуальная файловая система" VFS.

Все что ниже разработчик пишет сам.

В примерах SQLite сразу работает с Flash накопителями.

 

Но реально тягаться с SQLite в быстроте самопальными на скорую руку методами, IMHO, бессмысленно.

 

А то что там нужен адекватный большой heap в ОЗУ, так это любые базы данных требуют и самопальные в том числе.

Разница лишь в том, что в SQLite это будет проверено и будет встроена диагностика.

 

Сейчас контроллеры с каждым годом все шире становятся и по памяти программ и по памяти данных. Ну вот на СУБД мне лично не жалко ресурсов. Попробую почитать что там пишут в доках на SQLite, но реально нереально мне поднять такую тему на проце без оси (да и наверное с осью то же).

Единственный вариант прокачать эту дело - это заручиться поддержкой опытных и знающих специалистов, и имея пример реализации попытаться решить этот вопрос в своих проектах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...