Ich möchte eine nicht triviale endliche Zustandsmaschine (angegeben als hierarchisches UML-Zustandsdiagramm) auf einer 32-Bit-MCU mit gcc implementieren.
Gibt es Faustregeln, was besser und was weniger gut funktioniert? Meiner Meinung nach sollte eine switchbasierte (oder sogar berechnete goto) Implementierung etwas leistungsfähiger sein, während eine funktionszeigerbasierte Übergangstabelle im Allgemeinen als wartbarer angesehen wird.
Außerdem: Hat jemand Boost MSM für eingebettete Anwendungen evaluiert ? Ich weiß, dass Boost MSM allgemein als sehr effizient gelobt wird, aber für eingebettete Anwendungen kann die Effizienz anders gemessen werden als in der Welt der PC-Programmierung.
Weiß jemand, wie die kompilierte Zustandsmaschinen-Engine von MSM aussieht? Eher wie ein Schalter jumptable oder eher wie eine Funktionszeiger-Übergangstabelle? Verwendet es eine dynamische Speicherzuordnung oder kann es statisch verwendet werden?