生成过程包括从C中生成代码,或者从C++生成代码,并从生成的代码中生成可执行程序。用于代码生成。生成的独立程序在开发计算机上运行,与外部计时和事件无关。
的本地副本SlexAircraft示例
模型,存储在它自己的文件夹中,aircraftexample
.设置您的工作目录详情如下:
在MATLAB®当前文件夹浏览器,导航到您有写访问权限的文件夹。
要创建工作文件夹,输入以下MATLAB命令:
mkdir飞机示例
使aircraftexample
你的工作目录:
cd aircraftexample
打开SlexAircraft示例
模型:
SlexAircraft示例
模型出现在Simulink中金宝app®模型编辑器窗口。
在模型窗口中,选择文件>另存为.导航到您的工作文件夹,aircraftexample
.保存副本的SlexAircraft示例
模型为myAircraftExample
.
在生成代码时,代码生成器创建建立文件夹在您的工作文件夹中。构建文件夹名称为
,由源模型和选择的系统目标文件的名称派生。构建文件夹存储生成的源代码和构建过程中创建的其他文件。检查本示例末尾的构建文件夹内容。模型
_目标
_rtw
当模型包含model块(对其他模型的引用)时,模型构建会在您的代码生成的文件夹组织引用模型的代码。这些代码生成文件夹与产品构建文件夹一起存在并被命名slprj
.有关更多信息,请参见为模型引用层次结构生成代码.
下slprj
文件夹,名为_sharedutils
包含可在模型之间共享的生成代码。
要从模型生成代码,您必须更改一些模型配置参数。特别是,通用实时(GRT)系统目标文件和大多数其他系统目标文件要求模型指定一个固定步求解器进行求解。
请注意
对于指定可变步长求解器的模型,代码生成器只在模型也指定快速模拟的情况下生成代码(rsim
)或s功能系统目标文件。
打开myAircraftExample
模型(如果尚未打开)。
在“配置参数”对话框中,指定求解器的配置参数值:
开始时间:0.0
停止时间:60
类型:固定步
解算器:ode5 (Dormand-Prince)
固定步长(基本样本时间):0.1
将每一个离散的速率视为一个单独的任务:从
点击应用.
保存模型。
配置模型的构建过程,选择一个系统目标文件,一个工具链或模板生成文件,以及使
命令。
在这些示例和大多数应用程序中,不需要分别指定这些参数。这些示例使用准备运行的通用实时目标(GRT)配置。GRT系统目标文件构建了一个运行在桌面计算机上的独立的可执行程序。
选择GRT系统目标文件。
打开myAircraftExample
模型(如果尚未打开)。
在“配置参数”对话框中系统目标文件字段,输入grt.tlc
这个n click应用.
您可以看到的选择工具链(自动定位已安装的工具链
),构建配置(更快的构建
).
保存模型。
请注意
如果您点击浏览,系统目标文件浏览器打开并显示系统目标文件在MATLAB路径上。一些系统目标文件需要额外的产品。下载188bet金宝搏例如,ert.tlc
需要嵌入编码器®.
打开myAircraftExample
模型(如果尚未打开)。
在“配置参数”对话框中,指定设置:
使用默认设置代码生成高级参数,控制构建的冗长和调试:
详细构建(RTWVerbose
)
保留.rtw文件(保留文件
)
剖面薄层色谱(剖面图
)
在生成代码时启动TLC调试器(TLCDebug
)
在生成代码时启动TLC覆盖(TLCCoverage
)
使TLC断言(TLCAssert
)
选择代码生成>接口.
从共享代码的位置列表中,选择共享位置
这个build process places generated code for utilities in a subfolder within your代码生成的文件夹.
下先进的参数、清晰的经典的调用接口复选框。
下先进的参数,选择单输出/更新功能复选框。
在代码生成>报告中,选择创建代码生成报告和自动打开报告.此操作使软件能够为myAircraftExample
模型。
点击应用保存模型。
构建过程从模型生成C代码。然后编译并链接生成的程序,以创建一个可执行的映像。要构建和运行该程序:
与myAircraftExample
模型打开,执行以下操作之一:
在应用程序选项卡,打开金宝app仿真软件编码器的应用程序。C代码选项卡上,单击构建.
新闻Ctrl + B.
运行slbuild
命令从MATLAB命令行。
###启动模型的构建过程:myAircraftExample
许多后续消息的内容取决于编译器和操作系统。最后的信息包括:
### create HTML report file myAircraftExample_codegen_rpt.html ###创建HTML报告文件
代码生成文件夹现在包含一个可执行文件,myAircraftExample.exe
(微软®窗户®平台)或myAircraftExample
(UNIX)®平台)。此外,构建过程已经创建了slprj
文件夹和一个myAircraftExample_grt_rtw
文件夹在您的代码生成的文件夹.
请注意
的代码生成之后myAircraftExample
模型时,构建过程将显示代码生成报告。看到报告生成有关如何创建和使用代码生成报告的详细信息。
要查看构建之后工作文件夹的内容,请输入dir
或ls
命令:
>>dir.myAircraftExample。基金slprj . .myAircraftExample.slx.autosave myAircraftExample.exe myAircraftExample_grt_rtw
运行可执行文件,输入myAircraftExample !
这个!
字符将后面的命令传递给运行独立程序的操作系统myAircraftExample
程序。
>>myAircraftExample !**启动模型** ** created myAircraftExample。垫* *
看到在构建文件夹中创建的文件,使用dir
或ls
再次命令。生成的文件的确切列表因MATLAB平台和版本而异。下面是一个来自Windows平台的示例列表:
>>dir myAircraftExample_grt_rtw. rt_main.obj MyAircraft示例_data.c。。rtmodel.h myAircraftExample\u data.obj buildInfo.mat rtw\u proj.tmw myAircraftExample\u private.h codeInfo.mat myAircraftExample.bat myAircraftExample\u ref.rsp defined.txt myAircraftExample\u types.h html myAircraftExample.h modelsources.txt myAircraftExample.mk rt\u logging.obj myAircraftExample.obj
生成过程将创建一个生成文件夹并将其命名
,在那里模型
_目标
_rtw
源模型的名称是和吗模型
为模型选择的系统目标文件。在本例中,生成文件夹被命名为目标
myAircraftExample_grt_rtw
.
生成文件夹包括以下生成的文件。
文件 | 描述 |
---|---|
|
实现模型的独立C代码 |
|
包含参数和状态变量定义的包含头文件 |
|
头文件包含公共包括定义 |
|
代码中使用的数据类型的前向声明 |
|
主头文件,用于在静态主程序中包含生成的代码(它的名称不改变,它只是包含 |
的代码生成报告myAircraftExample
模型显示每个文件的链接。您可以单击该链接浏览文件内容。
生成文件夹包含生成过程中使用的其他文件。这些文件包括:
myAircraftExample.mk
-使用指定的工具链生成可执行文件。
对象(.obj
)文件
myAircraftExample.bat
-批处理控制文件
rtw_proj.tmw
——标记文件
buildInfo.mat
-生成用于将生成的代码重新定位到另一个开发环境的信息
defines.txt
编译生成的代码所需的预处理器定义
MyAircraft示例参考rsp
-作为命令行参数包含的数据墨西哥人
(仅Windows系统)
构建文件夹还包含一个子文件夹,html
,其中包含构成代码生成报告的文件。有关更多信息,请参见用于代码生成的报告.
在生成代码之后,代码生成器生成一个定制的makefile,模型
楼上
这个generated makefile instructs the使
系统实用程序编译和链接从模型生成的源代码,任何必需的工具程序,库,或用户提供的模块。代码生成器生成文件模型
楼上
不管您使用何种方法进行构建过程控制:
如果使用工具链方法,代码生成器将创建模型
楼上
基于该模型工具链设置.属性可以修改makefile的生成rtwmakecfg.m
API。
如果使用模板生成文件方法,代码生成器将创建模型
楼上
从系统模板文件,系统
.tmf
(系统
表示所选的系统目标文件名)。系统模板makefile是为系统目标文件设计的。您可以修改模板makefile,以指定编译器、编译器选项和用于创建可执行文件的附加信息。
有关更多信息,请参见配置工具链或模板生成文件构建过程.