状态机与微控制器的RTOS

时间:2011-08-19 04:15:19

标签: uml state-machine rtos

我偶然发现free state machine tool。这似乎是用于以图形方式编程嵌入式系统。通过这样做,作者声称,与使用RTOS相比,生成的代码更易于维护。这个工具基于UML,很高兴知道,但学习曲线陡峭。

我想知道一些比较有经验的程序员在这里想到这个工具。

我正在为LM3S5P36微控制器开发一个嵌入式应用程序。 TI有一个名为Code Composer Studio(CCS)的IDE。我还没有进入CCS,但我怀疑它有一个很酷的功能,即能够将所需的行为输入状态机图表,转动曲柄,并弹出C或C ++代码。然后返回并编辑图表以生成相应的修订代码。我用C语言编写了微控制器,但对UML几乎一无所知。在过去,我保留了两个文件,其中一个是微控制器代码,另一个是流程图。每个代码修订版意味着维护两个单独的文件。

所以我的困境是:发现这个很酷的图表到代码一体化文档包含的工具,我很乐意使用它,但更重要的是,我只想完成我的项目。我是用旧方法做的,还是花几周时间学习UML?

3 个答案:

答案 0 :(得分:5)

您可能也对Miro Samek的书“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来说也是如此。我通常看到的是线程太少,内聚力差,耦合性差的应用程序,但我确信Miro会因为认为解决方案是更多线程而撕裂他的头发!

UML 2.2指定了14种类型的图,状态机只是一种,因此不需要完整地学习UML。在这种情况下使用它是因为它是一个定义良好的模型,具有清晰的语法和语义,适用于定义行为细节。状态机图(或状态图)可能是最容易理解的UML行为图,并且具有任何UML图中最明确定义的语义。

答案 1 :(得分:0)

我没有尝试过这个工具但是如果你得到UML图表,那么你的项目文档总是更好。使用类图表生成UML代码现在非常好,我想它可能与其他图表相同。

答案 2 :(得分:0)

http://www.StateSoft.org上提供了一种可满足您需求的方法 它使用非常小但功能完整的UML子集 - 如果你在State Machine Gallery查看图形API的集合,你将在几分钟内直观地学习UML SM表示法所需的子集。为了实现嵌入式系统内存使用效率的高度优化表。根据您使用C或C ++,您可以选择紧凑型表执行程序。