2014-11-14 53 views
0

您認爲MSM(Boost Meta State Machine)適合嵌入式應用嗎?在我的情況下,應用程序應該在帶有1 MB閃存和192 KB RAM的Cortex-M4F MCU上運行。我喜歡MSM爲您提供更加結構化的方法來定義具有正交區域的分層狀態機,但它也引入了一些開銷。我想知道這種方法是否適用於具有內存限制的嵌入式應用程序,還是應該回到更傳統的「開關外殼」狀態機。嵌入式應用中的狀態機(提升)

+1

我不能告訴升壓MSM,但[STTCL(http://makulik.github.io/sttcl/)肯定會適合一個cortext M4。但我猜是因爲它被命名爲** Meta ** - 狀態機,他們會使用類似的技術。而且,不要回退到傳統的FSM開關盒。 – 2014-11-14 17:59:45

+1

在這樣一個有限的系統中,你根本不應該使用C++。絕對不是模板。 – 2014-11-14 18:00:44

+1

@JoachimPileborg什麼?我們一直在做,而且我們非常成功地做到了這一點(實際上並未使用提升)。 – 2014-11-14 18:02:11

回答

0

這真的取決於你需要多久使用它,有多少值將它添加到您的項目在時間上,易開發,可讀性,可移植性等&

如果你有所有的時間在世界上,你可能會做出更有效的,並可能特定於你的需求,但這不太可能。

RAM是以前的。因此,使用Boot MSM編寫一個不重要的狀態機,並檢查對RAM使用情況的影響。編寫簡單的狀態機很可能會超過你想要的。

記住,C++ 11級& 14的編譯器比他們曾經是元編程/模板要聰明得多,所以代碼膨脹真正應該關注的,因爲權衡/成本使用Boost MSM可能值得它用於複雜的,不平凡的狀態機。

查看Boost MSM-lite(實驗性),試圖通過將MSM簡化爲香草MSM的有限設施來解決許多問題。

Boost MSM-lite