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