Je cherche à implémenter une machine à états finis non triviale (spécifiée comme un organigramme hiérarchique UML) sur un MCU 32 bits avec gcc.
Existe-t-il des règles générales qui fonctionnent mieux et qui fonctionnent moins bien? Mon instinct dit qu'une implémentation basée sur un commutateur (ou même un goto calculé) devrait être légèrement plus performante alors qu'une table de transition basée sur un pointeur de fonction est généralement réputée être plus maintenable.
Aussi: quelqu'un a-t-il évalué Boost MSM pour les applications intégrées? Je sais que Boost MSM est généralement considéré comme très efficace, mais pour les applications intégrées, l'efficacité peut être mesurée différemment que dans le monde de la programmation PC.
Quelqu'un sait-il à quoi ressemble le moteur de machine d'état compilé de MSM? Plus comme un interrupteur commutable ou plus comme une table de transition de pointeur de fonction? Utilise-t-il l'allocation dynamique de mémoire ou peut-il être utilisé statiquement?