Estoy buscando implementar una máquina de estado finito no trivial (especificada como un diagrama de estado jerárquico UML) en una MCU de 32 bits con gcc.
¿Existen reglas generales que funcionen mejor y que funcionen menos? Mi instinto dice que una implementación basada en conmutadores (o incluso computada) debería ser ligeramente más eficiente, mientras que una tabla de transición basada en punteros de función generalmente tiene la reputación de ser más fácil de mantener.
Además: ¿alguien ha evaluado Boost MSM para aplicaciones integradas? Sé que Boost MSM generalmente se elogia por ser muy eficiente, pero para las aplicaciones integradas, la eficiencia puede medirse de manera diferente que en el mundo de la programación de PC.
¿Alguien sabe cómo se ve el motor de máquina de estado compilado de MSM? ¿Más como una tabla de salto de interruptor o más como una tabla de transición de puntero de función? ¿Utiliza asignación de memoria dinámica o puede usarse estáticamente?