2011-05-27 71 views
0

我被要求为嵌入式8位和32位微控制器创建图形化编程IDE。它需要像使用LabVIEW一样简单,但我不需要调试或模拟等功能(至少现在是这样)。基本上,应用程序需要允许用户配置逻辑门,while/for循环,case语句,比较,流程控制等。一旦程序完成,它应该生成C代码,在连接的微控制器上编译和编写程序。目前正在瞄准Atmel和Freescale处理器,并将使用DIO,模拟IO进行电流感测,CAN总线,PWM,以及可能还有一些我错过了。为嵌入式微控制器创建图形化编程IDE

我意识到这是一项需要很长时间才能开发的巨大承诺,但是我的公司希望在购买我们的硬件时为客户提供软件。为了备份并提供一些背景信息,我们公司构建了可在CAN总线或独立工作的IO模块。今天,在我们的PCB上编程微控制器的唯一方法是使用Atmel(AVR Studio)或飞思卡尔(CodeWarrior)的IDE。问题在于客户并不总是具备用C编程的技术诀窍。所以......进入图形化IDE。 LabVIEW对客户来说太贵了,所以我们一直在创建自己的。

所以我的问题是:什么是创建此IDE的好方法?我正计划在C#/ WPF中开发这个功能,但我想知道将用户创建的逻辑转换为可由Atmel/Freescale编译器编译的C代码的难度。或者有更好的方法呢?有没有人做过这样的事情?

回答

0

我们有一个相当类似的问题。我们的目标是创建一个图形建模工具,从UML状态机生成C或C++代码。人们会认为这样的工具应该是非常普遍的,但事实证明它们不能很好地支持状态嵌套,并且不会为嵌入式微控制器生成足够好的生产质量代码。

经过比较几个选项,如与现有图形工具的集成,我们决定在Qt(qt.nokia.com)中开发整个事情。事后看来,我们对这一选择非常满意,因为我们可以控制该工具的每个方面。

Qt框架提供了很多基础设施,例如用户可以用鼠标操作的2D图形场景和图形项目。您有XML支持将您的模型存储在磁盘上。如果你需要公开一些脚本界面,你有一个脚本引擎。有一件事帮助我们开始使用Qt,那就是“使用Qt 4编写C++ GUI编程(第二版)”。

无论如何,我们创建的工具可以免费下载和免费使用(http://www.state-machine.com/qm),因此您可以使用它来查看它的工作原理。

2

该需求看起来更像是一个4GL/RAD语言来生成C代码而不是IDE。

我个人会建议一种替代方法,即采用小型脚本语言(如Lua或TCL),并在C代码中构建一些自定义扩展。然后您的客户可以使用您的扩展库在Lua或TCL中进行编码。

对于IDE本身,我会考虑构建一个eclipse插件。基础的日食有90%的你需要,插件架构是坚实和成熟的,有大量的例子可供选择。

+0

我从来没有除了月食之外的任何人的头。我会研究他们。谢谢。 – Brent 2011-05-27 12:32:24

2

您是否考虑制作LabView连接器,以便您的客户可以使用LabView?

这会让他们成为一个成熟,稳定的工具集,而你所要做的“全部”就是将它们粘合在一起。

我会拒绝在这方面使用“正义”作品。

+0

谢谢蒂姆。虽然我同意这将是一个了不起的解决方案,但我不确定我们是否需要客户购买LabVIEW来使用我们的模块,因为它可能非常昂贵。 – Brent 2011-05-27 12:39:17

+0

我还没有在这方面与National Instruments打交道,所以我不知道他们是否愿意接受此事,但至少有一些公司很乐意进行交易,您可以在这些交易中补贴LabVIEW for你的用户以某种方式(可能有一些限制,以便补贴副本只能在你的硬件上使用)。 – 2011-05-27 20:14:27