首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rhapsody之外编译Rhapsody生成的代码

在Rhapsody之外编译Rhapsody生成的代码
EN

Stack Overflow用户
提问于 2018-04-13 02:23:25
回答 4查看 1.2K关注 0票数 0

作为我工作项目的一部分,我已经创建了一些狂想曲模型。我们创建了类图、状态图和面板图,并使用模拟对模型进行了测试。经过模拟,我们已经从工作模型自动生成了C++代码。所以我的问题是,有没有一种方法可以使用外部编译器生成的代码,例如: Microsoft Visual Studio?

EN

回答 4

Stack Overflow用户

发布于 2018-04-13 16:27:44

Rhapsody总是使用外部编译器编译代码(包括模拟和非模拟),也就是说,Rhapsody没有附带编译器,它与调用外部编译器的“适配器”一起工作。适配器层包括告诉Rhapsody如何为特定编译器生成代码的属性,例如Visual Studio、VxWorks、Cygwin/gcc。当您生成make并运行代码时,Rhapsody创建主文件和makefile,它运行makefile来编译代码,然后运行生成的.exe。没有什么可以阻止您在Rhapsody之外运行编译。关键是它会将您的代码与相关构建环境的OxF适配器框架代码链接起来(这将抽象出线程、互斥等概念)。查看用于构建的配置的Settings选项卡。在Environment下拉列表中应该有一个MSVC选项。这是Visual Studio。注意:当使用MSVC选项时,您还需要设置一个属性来说明版本。CPP_CG::MSVC::IDEVersion,也就是在服务Rhapsody上,你想要什么,主要的事情是让Rhapsody构建makefile更容易,因为它在代码生成步骤中做到了这一点。这是“标准”方式。还有一个平台集成,其中Rhapsody创建了VS项目文件。这是否有效可能取决于版本号等。我会首先尝试标准的模型驱动方式,这本质上是命令行编译器调用。

票数 2
EN

Stack Overflow用户

发布于 2018-04-14 05:50:23

要在目标上运行Rhapsody代码,还需要为该目标编译框架。为此,您需要为此目标编写一个适配器。在Rhapsody文件夹中有一个pdf,它解释了所有的步骤。

对于Visual Studio或Cygwin,已经有了一个准备好的框架。您可以在组件中选择它。

如果您只想在Visual Studio中共享生成的代码,那么右键单击您的配置并选择"change to xxx...“。这将为您创建一个包含所有源代码和Makefile的Visual Studio或Eclipse项目。

票数 0
EN

Stack Overflow用户

发布于 2018-04-15 15:41:55

听起来你对Rhapsody RTOS适配层问题很感兴趣。背景: Rhapsody代码生成遵循模型驱动的体系结构方法,以支持创建独立于平台特定模型的平台独立模型(如果您将平台定义为嵌入式C++目标)。如果使用Rhapsody Developer生成状态机之类的代码,那么事件的事件队列存储在线程中,您可以使用端口和接口等UML2概念,并将复合类标记为活动类(以使其在线程中运行)。提供线程(和计时器)等方面的代码的实现是由OxF (对象执行框架)适配器层(提供RTOS特定代码的一组类)提供的。Rhapsody有一组开箱即用的RTOS,但客户端可以为新目标创建一个新的adapater层,并将其添加到Settings下拉列表中(这还包括指定属性来告诉Rhapsody如何为RTOS构建/创建)。适配器层是一个与应用程序代码静态链接的库,因此您需要构建该库并提供代码。请参阅https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=969f1342-9137-406d-81f5-7f082a7c646d#fullpageWidgetId=W7b708910613a_41a1_aa47_1cc06a5020ec&file=d5a0d94e-b3a0-494a-98c0-1238fff2ecc3中的Rhapsody Framework (OxF)简介。这里假设您使用的是完整的OxF。有一些方法可以在没有实时操作系统的情况下构建(最小OxF或使用威勒特的工具包),这些方法可能适用于某些领域(受约束的微控制器等),我对您的环境了解不多,不知道是否可能。第一个问题是目标是否支持完整的RTOS模式,或者是否需要最小的RTOS方法。后者限制了您的建模方式,因此您通常必须从预先了解开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49803549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档