0

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

我意识到这是一项艰巨的任务,需要很长时间来开发,但我的公司希望在客户购买我们的硬件时为其提供软件。为了备份一下并给您一些背景信息,我们公司构建了可以在 CAN 总线上工作或独立工作的 IO 模块。今天,在我们的 PCB 上对微控制器进行编程的唯一方法是使用来自 Atmel (AVR Studio) 或 Freescale (CodeWarrior) 的 IDE。问题是客户并不总是具备使用 C 编程的专业知识。所以...进入图形 IDE。LabVIEW 对客户来说太贵了,所以我们只能自己创建。

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

4

3 回答 3

2

该要求似乎更像是 4GL/RAD 语言来生成 C 代码而不是 IDE。

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

对于 IDE 本身,我会考虑构建一个 eclipse 插件。基本的 Eclipse 有你需要的 90%,并且插件架构是可靠和成熟的,有很多例子可供参考。

于 2011-05-27T02:44:36.700 回答
2

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

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

在这种情况下,我将拒绝使用“公正”的作品。

于 2011-05-27T04:41:11.733 回答
0

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

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

Qt 框架提供了很多基础设施,例如用户可以用鼠标操作的 2D 图形场景和图形项目。您有 XML 支持来将模型存储在磁盘上。如果您需要公开一些脚本接口,那么您有一个脚本引擎。《C++ GUI Programming with Qt 4 (2nd Edition)》一书对我们开始使用 Qt 有很大帮助。

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

于 2011-06-01T15:00:27.230 回答