Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Простейшая нереляционная БД для MCU
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Господа. Первое моё сообщение на sql.ru Сам я с БД знаком мало - это вероятно самое слабое место в моём программерском education. Однако появилась у меня задача. - Есть микроконтроллер: памяти немного, с производительностью всё ещё хуже. Пишу модуль на C. Модуль должен быть оч. хорошо переносим на др. платформу - Есть разнородные физические объекты, информацию о которых надо хранить в различных видах памяти (eeprom, flash, RAM) - EEPROM отличается тем, что у неё ограниченное число циклов перезаписи (а значит к некоторым объектам нужно по реже обращаться, если можно) - Нет даже malloc - т.е. будет заранее выделятся фикс. объём памяти, который затем будет побайтово заполнятся по мере необходимости Есть выбор: 1)Либо хранить всё в виде последовательности записей фиксированного типа (либо int32, либо string, либо ещё чего-нибудь) (но надо понимать, что это всё равно будет не реляционная Бд: никаких индексов, линков полей в таблицах и пр. не будет). Тогда каждый реальный объект может описываться как одной, так и несколькими единицами данных в БД. Число обращений максимально. Код не красивый - мало похоже на ООП подход . Функции: Код: plaintext 2) Либо хранить всё по блокам. Каждому реал. объекту - в соотвестствие ставим одну запись в БД. Тогда работать удобнее, ближе к ООП (чего мне очень хочется), меньше обращений к eeprom. Функции: Код: plaintext Что выбрать? Где найти src для какой-нибудь допотопной нереляционной БД? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 13:51 |
|
||
|
Простейшая нереляционная БД для MCU
|
|||
|---|---|---|---|
|
#18+
procedure Tirga23s.CalcCRC(var ACRC: Word; B: Byte); var I, J: Integer; begin {$Q-} for I:= 1 to 8 do begin J:= 0; if (ACRC and $8000) <> 0 then inc(J); if (ACRC and $0800) <> 0 then inc(J); if (ACRC and $0100) <> 0 then inc(J); if (ACRC and $0040) <> 0 then inc(J); if odd(B) then inc(J); inc(ACRC, ACRC); if odd(J) then inc(ACRC); B:= B shr 1; end; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 14:09 |
|
||
|
Простейшая нереляционная БД для MCU
|
|||
|---|---|---|---|
|
#18+
ScareCrowprocedure Tirga23s.CalcCRC(var ACRC: Word; B: Byte); var I, J: Integer; begin {$Q-} for I:= 1 to 8 do begin J:= 0; if (ACRC and $8000) <> 0 then inc(J); if (ACRC and $0800) <> 0 then inc(J); if (ACRC and $0100) <> 0 then inc(J); if (ACRC and $0040) <> 0 then inc(J); if odd(B) then inc(J); inc(ACRC, ACRC); if odd(J) then inc(ACRC); B:= B shr 1; end; end; Это вы к чему? К поиску объекта БД по его ID - вычисление hash? Или к вычислению CRC? Или кто-то надо мной пошутить решил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 14:33 |
|
||
|
Простейшая нереляционная БД для MCU
|
|||
|---|---|---|---|
|
#18+
это вычисление CRC легко переносимое на контроллер т.к. вобщемто с него и бралось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 14:39 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32675492&tid=1546305]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 472ms |

| 0 / 0 |
