Ограничения Rust в embedded:
- Сложность разработки из-за отсутствия полной поддержки bare-metal. Для работы без ОС часто требуется ручная настройка и адаптация crates.
- Система borrow checker увеличивает время сборки, что замедляет итерации в крупных проектах.
- Несмотря на extern "C", взаимодействие с существующими C-библиотеками может требовать дополнительных обёрток.
C++ универсален и пригоден для большинства embedded-задач благодаря оптимальному балансу между производительностью, контролем ресурсов и современными возможностями.
Для меня самый полезный пример embedded кода C++20 - Фильтр с Конечной Импульсной Характеристикой (КИХ). Он воплощает все полезные фичи C++20 и хорошо интегрируется с кодом. Посмотреть можно на моем GitHub.
- Инкапсуляция в классе
- Вычисление коэффициентов на этапе компиляции (constexpr)
- Параметры фильтра устанавливаются через параметры шаблона