Meta State Machine (Boost) во встроенных приложениях

0

По вашему мнению, MSM (Boost Meta State Machine) подходит для встроенного приложения? В моем случае приложение должно запускаться на Cortex-M4F MCU с 1 Мб Flash и 192 КБ оперативной памяти. Мне нравится тот факт, что MSM дает вам более структурированный подход для определения иерархической машины состояний с ортогональными областями, но также создает некоторые накладные расходы. Мне было интересно, возможен ли такой подход для встроенных приложений с ограничениями памяти или мне нужно "вернуться" к более традиционным машинам состояния "switch case".

  • 1
    Я не могу сказать о повышении MSM, но STTCL определенно подойдет для Cortext M4. Но я предполагаю, что так как он называется Meta -State-Machine, они будут использовать аналогичные методы. И нет, не возвращайтесь к традиционным switch case .
  • 1
    В такой ограниченной системе вы, вероятно, вообще не должны использовать C ++. И определенно не шаблоны.
Показать ещё 2 комментария
Теги:
boost
embedded
finite-state-machine
cortex-m

1 ответ

0
Лучший ответ

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

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

ОЗУ стоит в вашем сценарии (конечно, в зависимости от вашего приложения). Я предлагаю написать несколько нетривиальный конечный автомат с использованием Boost (или использовать пример загрузки), изучить использование RAM, а затем сделать определение, если у вашего проекта есть бюджет [RAM] для него.

Обратите внимание: boost делает компромисс для использования большего количества кодового пространства (с помощью шаблонов), чем временная память. Кроме того, этот компромисс оптимизирует производительность во время выполнения, поскольку процессор намного эффективнее при получении инструкций от флэш-памяти, чем при извлечении данных из ОЗУ (в основном во всех случаях при использовании Cortex-M4F).

Помните, что компиляторы С++ 11 и 14 намного умнее, чем раньше для метапрограмм/шаблонов, поэтому код-раздувание не должно вызывать беспокойства, потому что компромисс/стоимость использования Boost MSM может стоить этого для сложных, - тривиальные автоматы.

Проверьте Boost MSM-lite (экспериментальный), который пытается решить многие проблемы, уменьшив МСМ до конечного набора средств ванильного МСМ.

Увеличить MSM-lite

Ещё вопросы

Сообщество Overcoder
Наверх
Меню