我被要求为嵌入式8位和32位微控制器创建图形化编程IDE。它需要像使用LabVIEW一样简单,但我不需要调试或模拟等功能(至少目前为止)。基本上,应用程序需要允许用户配置逻辑门,同时/ for循环,case语句,比较,流控制等。一旦程序完成,它应该生成C代码,在连接的微控制器上编译和编写程序。目前正在针对Atmel和飞思卡尔处理器,并将使用DIO,模拟IO进行电流检测,CAN总线,PWM,以及可能还有一些我缺少的。
我意识到这是一项需要很长时间才能开发的巨大工程,但这是我公司在购买硬件时希望为客户提供的软件。为了备份并提供一些背景信息,我们公司构建了可在CAN总线上工作或独立运行的IO模块。今天,在PCB上编程微控制器的唯一方法是使用Atmel(AVR Studio)或Freescale(CodeWarrior)的IDE。问题是客户并不总是拥有用C编程的专有技术。所以...进入图形IDE。 LabVIEW对于客户而言过于昂贵,因此我们不得不创建自己的。
所以我的问题是:创建这个IDE的好方法是什么?我打算在C#/ WPF中开发它,但我想知道将用户创建的逻辑转换为可以由Atmel / Freescale编译器编译的C代码是多么困难。或者也许还有更好的方法?有人做过这样的事吗?
答案 0 :(得分:2)
要求似乎更像是生成C代码而不是IDE的4GL / RAD语言。
我个人会提出一种替代方法,即采用一种小型脚本语言,如Lua或TCL,并在C代码中构建一些自定义扩展。然后,您的客户可以使用您的扩展库在Lua或TCL中进行编码。
对于IDE本身,我会考虑构建一个eclipse插件。基础日食占你所需要的90%,插件架构稳固而成熟,有很多例子可供使用。
答案 1 :(得分:2)
您是否考虑过制作LabView连接器,以便客户可以使用LabView?
这将使他们成为一个成熟,稳定的工具集,你需要做的“全部”就是把它粘在一起。
在这种情况下,我会拒绝使用“公正”的作品。
答案 2 :(得分:0)
我们遇到了类似的问题。我们的目标是创建一个图形建模工具,从UML状态机生成C或C ++代码。人们会认为这些工具应该非常普遍,但事实证明它们不能很好地支持状态嵌套,并且不能为嵌入式微控制器生成足够紧密的生产质量代码。
在比较了几个选项后,例如与现有图形工具的集成,我们决定在Qt(qt.nokia.com)中开发整个事物。事后看来,我们对这个选择非常满意,因为我们可以控制工具的每个方面。
Qt框架提供了许多基础设施,例如用户可以使用鼠标操作的2D图形场景和图形项。您可以使用XML支持将模型存储在磁盘上。如果您需要公开一些脚本界面,那么您有一个脚本引擎。帮助我们开始使用Qt的一件事是“使用Qt 4(第2版)进行C ++ GUI编程”一书。
无论如何,我们创建的工具可免费下载并免费使用(http://www.state-machine.com/qm),因此您可以使用它并查看其工作原理。