Wpf 为嵌入式微控制器创建图形编程IDE

Wpf 为嵌入式微控制器创建图形编程IDE,wpf,embedded,microcontroller,graphical-programming,Wpf,Embedded,Microcontroller,Graphical Programming,我被要求为嵌入式8位和32位微控制器创建一个图形编程IDE。它需要像使用LabVIEW一样简单,但我不需要调试或模拟之类的功能(至少目前是这样)。基本上,应用程序需要允许用户配置逻辑门、while/for循环、case语句、比较、流控制等。程序完成后,应生成C代码,在连接的微控制器上编译和写入程序。目前,我们的目标是Atmel和飞思卡尔处理器,并将使用DIO、电流传感模拟IO、CAN总线、PWM,可能还有我所缺少的其他一些 我意识到这是一项巨大的事业,需要很长时间才能完成,但我的公司希望在客户购

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

我意识到这是一项巨大的事业,需要很长时间才能完成,但我的公司希望在客户购买我们的硬件时为他们提供软件。为了备份一点,并给您提供一些背景信息,我们公司构建了可以在CAN总线或单机上工作的IO模块。今天,在PCB上编程微控制器的唯一方法是使用Atmel(AVR Studio)或飞思卡尔(CodeWarrior)的IDE。问题是客户并不总是知道如何用C语言编程,所以。。。输入图形化IDE。LabVIEW对于客户来说太贵了,所以我们只能创建自己的


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

这项要求似乎更像是生成C代码的4GL/RAD语言,而不是IDE

我个人会提出另一种方法,即采用小规模脚本语言(如Lua或TCL)并在C代码中构建一些自定义扩展。然后,客户可以使用扩展库在Lua或TCL中编写代码


对于IDE本身,我会考虑构建Eclipse插件。基本eclipse拥有您所需的90%,插件体系结构坚实且成熟,有许多示例可供遵循。

该要求更像是生成C代码的4GL/RAD语言,而不是IDE

我个人会提出另一种方法,即采用小规模脚本语言(如Lua或TCL)并在C代码中构建一些自定义扩展。然后,客户可以使用扩展库在Lua或TCL中编写代码


对于IDE本身,我会考虑构建Eclipse插件。基本eclipse有90%的功能是您所需要的,插件体系结构是可靠和成熟的,下面有很多示例。

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

这将为他们提供一个成熟、稳定的工具集,您所要做的就是将其粘合在一起


在这种情况下,我不会使用“just”这个词。

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

这将为他们提供一个成熟、稳定的工具集,您所要做的就是将其粘合在一起


在这种情况下,我不会使用“just”这个词。

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

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

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


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

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

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

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


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

除了eclipse之外,我从来没有见过任何一种。我会调查所有的。谢谢。除了月食,我从来没有看过任何一部。我会调查所有的。谢谢,谢谢蒂姆。虽然我同意这将是一个很棒的解决方案,但我不确定我们是否想要求客户购买LabVIEW来使用我们的模块,因为这可能会非常昂贵。我还没有处理Nat