Sto cercando di implementare una macchina a stati finiti non banale (specificata come uno statechart gerarchico UML) su una MCU a 32 bit con gcc.
Ci sono delle regole empiriche che funzionano meglio e che funzionano meno bene? Il mio istinto dice che un'implementazione basata su switch (o anche calcolata goto) dovrebbe essere leggermente più performante mentre una tabella di transizione basata su puntatore a funzione è generalmente ritenuta più mantenibile.
Inoltre: qualcuno ha valutato Boost MSM per applicazioni integrate? So che Boost MSM è generalmente considerato molto efficiente, ma per le applicazioni integrate l'efficienza potrebbe essere misurata in modo diverso rispetto al mondo della programmazione per PC.
Qualcuno sa che aspetto ha il motore della macchina a stati compilato di MSM? Più come un interruttore a scorrimento o più come una tabella di transizione del puntatore a funzione? Utilizza l'allocazione dinamica della memoria o può essere utilizzato staticamente?