Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Как из списка строковых команд сгенерировать подходящую хэш-функцию?

В некоторых случаях количество команд, принимаемых микроконтроллером, начинает просто зашкаливать! И тут рождается уродство вроде этого:
else if(CMP(cmd, CMD_PRINTTIME) == 0) ...
else if(CMP(cmd, CMD_DISTMIN) == 0) ...

— огромная цепочка самопальных strcmp, которая даже при сотне команд уже прилично тормозит!
Понятно, что не существует универсальной функции, которая позволила бы из любого набора строковых команд получить однозначный хэш в uint32_t, чтобы свести это к красивому switch().
Следовательно, в кодогенераторе необходимо предусмотреть какой-то параметр, который будет перебираться до тех пор, пока данному набору строк не найдется однозначно соответствующего набора хэшей!
Вопрос: какую несложную хэш-функцию в данном случае можно использовать?

Ну и второй вопрос: а нет ли в природе эдакого "упрощенного bash" для микроконтроллеров? Чтобы имел память на ~128 команд длиной до ~64 байта, навигацию по истории стрелочками управления курсором, поиск стандартным ctrl+r, автодополнение по TAB?
Tags: всячина
Subscribe

  • Дочка сейчас выдала: а зачем вообще людям "домашние" телескопы, если с компьютера можно намного удобней с телескопа данные получать? Да уж, вся в…

  • Рамп шаговика

    Сижу уже второй вечер, обдумываю алгоритм. Сначала хотел было без делений попробовать. Но не получается нормального трапецеидального рампа. В итоге…

  • О, in100грамм повеселел!

    Теперь не нужно, чтобы туда фотографию воткнуть, жамкать F12, переходить в режим "отображение со смартфона" и перезагружать страницу! Они таки…

promo eddy_em september 3, 12:13 8
Buy for 10 tokens
Уже больше полугода занимаюсь разработкой, вот, наконец-то в мастерских взялись за меня и начали выдавать первые детали. Сегодня сделал тестовую сборку (как обычно, местами пришлось "доработать напильником"): Пока прибор без названия (да и как-то не лезет в голову ничего, у меня нет…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 46 comments

  • Дочка сейчас выдала: а зачем вообще людям "домашние" телескопы, если с компьютера можно намного удобней с телескопа данные получать? Да уж, вся в…

  • Рамп шаговика

    Сижу уже второй вечер, обдумываю алгоритм. Сначала хотел было без делений попробовать. Но не получается нормального трапецеидального рампа. В итоге…

  • О, in100грамм повеселел!

    Теперь не нужно, чтобы туда фотографию воткнуть, жамкать F12, переходить в режим "отображение со смартфона" и перезагружать страницу! Они таки…