2011-08-19 50 views
3

我偶然發現了free state machine tool。這似乎是以圖形方式編程嵌入式系統。通過這樣做,作者聲稱由此產生的代碼比使用實時操作系統更可維護。這個工具基於UML,這很好理解,但是有一個陡峭的學習曲線。狀態機與微控制器的RTOS

我想知道一些更有經驗的程序員在這裏想到這個工具。

我正在爲LM3S5P36微控制器開發嵌入式應用程序。 TI有一個名爲Code Composer Studio(CCS)的IDE。我還沒有進入CCS,但我懷疑它有能夠將所需行爲輸入到狀態機圖表,轉動曲柄並彈出C或C++代碼的很酷特性。然後返回並編輯圖表以生成相應的修訂代碼。我用C編寫了微控制器,但對UML幾乎一無所知。在過去,我保存了兩個文件,其中一個是微控制器代碼,另一個是流程圖。每個代碼修訂意味着維護兩個單獨的文件所以我的困境是:發現了這個很酷的圖表到代碼一體化文檔包含的工具,我很樂意使用它,但是,除此之外,我只是想讓我的項目完成。我是以舊的方式做,還是花幾個星期學習UML?

+0

由於這實際上更像是一種主觀的「調查」類問題,而不是一個可以客觀回答的直接問題,所以我建議將它改爲「社區維基」條目。欲瞭解更多信息,請參閱** [這個答案](http://meta.stackexchange.com/questions/7157/what-types-of-questions-or-answers-should-be-made-community-wiki/7158# 7158)**到** [這個問題](http://meta.stackexchange.com/questions/7157/what-types-of-questions-or-answers-should-be-made-community-wiki)** 。 – Dan

回答

4

您可能也有興趣Miro Samek's book「Practical UML Statecharts in C/C++」。請注意,Miro是Quantum Leaps的創始人和總裁,因此本書與該工具並行不悖。

看來Miro在RTOS開發方面投入了大量的狀態圖開發,廣泛撰寫了該書並在該主題上發表了博文。他開始在LinkedIn的實時嵌入式工程組上標題爲「Is an RTOS really the best way to design embedded systems?」的主題 - 關於該主題的大量意見!

我不確定這兩者必然是不同的;將各個RTOS線程實現爲狀態機通常是有用的(並且經常完成)。他在他的博客「I Hate RTOSes」中提到了一些優點,但是他的推理主要基於比RTOS技術本身差的應用程序設計。就像C或C++在使用不當的情況下會非常危險一樣,以至於RTOS。是與凝聚力差,緊耦合線程太少的應用程序,但我相信,米羅會出這樣的想法撕扯自己的頭髮,解決辦法是多個線程

UML 2.2規定的14種圖,狀態因爲它是一個定義明確的語法和語義清晰的模型,適用於定義行爲細節,所以不需要學習UML。因此,狀態機圖(或狀態機-charts)可能是最容易理解和最有用的UML行爲圖明確定義了任何UML圖的語義。

+0

感謝您回覆您的有益想法,克利福德。你是對的,它不是一個簡單的狀態機或RTOS選擇,可以同時做兩者。請參閱上面的擴展帖子。 –

0

我沒有嘗試這個工具,但是如果你得到了UML圖,那麼對你的項目文檔來說總是更好。使用類圖來從UML生成代碼現在相當不錯,我想它可能與其他圖相同。

0

http://www.StateSoft.org 它使用非常小但功能完整的UML子集 - 如果您查看State Machine Gallery中的一組圖形API,您將瞭解UML SM表示法的所需子集直觀地在幾分鐘內。針對嵌入式系統內存使用效率的高度優化表產生。根據您使用C或C++,您可以選擇緊湊型表執行器。