Как лучше организовать данные в моей встроенной системе? - PullRequest
3 голосов
/ 06 июля 2010

Раньше я мало занимался программированием для встраиваемых систем, и теперь мне нужно создать несколько сценариев для чего-то относительно крошечного (менее 60 МБ ОЗУ, почти все из которых уже используются другими более важными процессами, процессор меньше ~500MHz).Я не могу запустить что-то, что включено все время, поэтому Firebird отсутствует.Я предложил sqllite, но люди, более знакомые с платформой, сказали мне, что даже это может потребовать слишком много памяти и вычислительной мощности.

Я буду программировать прототип на Perl, и мне, вероятно, придется зановонапишите сценарии, которые я создаю в c, для повышения производительности в будущем.Я хотел бы иметь возможность повторно использовать структуры данных, которые я создаю, когда я сделаю это позже.До сих пор большая часть моего опыта была в MySQL, поэтому было бы здорово, если бы синтаксис был похож на это.Какие-либо предложения?

Извините, я не могу описать платформу, над которой я работаю.

Ответы [ 3 ]

2 голосов
/ 06 июля 2010
0 голосов
/ 06 июля 2010

Из того, что вы описали, я посмотрю на Berkley DB или похожее хранилище значений ключей.

Вы также можете сериализовать свои данные в структуры C из Perl.Традиционный способ справиться с этим - использовать pack, но это боль для более сложных структур.Я обнаружил, что Convert :: Binary :: C отлично подходит для работы с данными, предназначенными для структур Си.

Вы можете передать CBC объявление структуры и настроить его для обработки порядка действий вашего компилятора,int size и пр.Вы также можете предоставить код для выполнения при упаковке или распаковке значения.Например, если у вас есть typedef для числа с фиксированной точкой, вы можете настроить CBC для распаковки его в число с плавающей точкой в ​​Perl, а затем преобразовать обратно в фиксированную точку, когда число упаковано.использование этого инструмента для работы с дампами памяти и для подготовки образов для развертывания во встроенных системах.

0 голосов
/ 06 июля 2010

в качестве рекомендации, вы можете рассмотреть lua для написания скриптов, он довольно быстрый, может использоваться в производственных системах и очень легко привязываться к c.

вам нужна реляционная база данных?

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

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

и так далее ...

Возможно, хранилище ключей / значений даст вам лучший компромисс для запросов и хранения.

...