文档

选择构建方法和配置构建过程

代码生成器支持这些方法构建(编译和链接金宝app)你从模型生成的代码金宝app®模型:

  • 工具链——一个构建过程,生成makefile,并支持自定义工具链。金宝app这种方法:

    • 为构建过程的控制提供了工具链信息对象。您可以定义这些对象使用MATLAB脚本。

    • 金宝app支持模型引用、银和公益诉讼。

    • 金宝app支持金宝app仿真软件编码器™,嵌入式编码器®,MATLAB®编码器

  • 模板makefile——使用一个模板的构建过程makefile您指定的工具链。这种方法:

    • 可以选择使用一个工具链信息对象。

    • 金宝app支持模型引用、银和公益诉讼。

    • 金宝app支持金宝app仿真软件编码器和嵌入式编码。

您可以使用系统目标文件(金宝app仿真软件编码器)配置参数选择模型的构建过程。当你设置系统目标文件:

  • ert.tlc,ert_shrlib.tlc,grt.tlc,或任何toolchain-compliant系统目标文件,构建过程使用工具链的方法默认情况下。

  • 任何non-toolchain-compliant系统目标文件,构建过程使用模板makefile的方法

你可以从模板makefile的工具链方法方法使用这个命令:

set_param (模型、“MakeCommand”、“make_rtw TMF = 1”)

工具链的方法

工具链设置出现在构建过程当您设置系统目标文件:

  • grt.tlc- - - - - -Generic Real-Time Target

  • ert.tlc- - - - - -嵌入式编码器(需要嵌入式编码器产品)

  • ert_shrlib.tlc- - - - - -嵌入式编码器(host-based shared library target)(需要嵌入式编码)

  • 任何toolchain-compliant系统目标文件(如果ERT-based,需要嵌入式编码)

关于toolchain-compliant系统目标文件的更多信息,请参阅金宝app支持工具链方法使用自定义的目标(金宝app仿真软件编码器)。

工具链设置包括这些配置参数:

  • 工具链(金宝app仿真软件编码器)——指定的第三方软件工具集合构建生成的代码。工具链可以包括编译器、链接器、文档和其他prebuild或postbuild工具下载和运行可执行文件在目标硬件。

    的默认值工具链自动定位安装工具链。的工具链参数显示的名称位于下方工具链自动定位安装工具链

    单击验证工具链按钮来检查工具链存在,验证代码生成器使用工具链所需的信息。结果验证报告给所选工具链的通过/失败,并识别要解决的问题。

  • 构建配置(金宝app仿真软件编码器)——指定优化设置。默认情况下,构建配置被设置为更快的构建。您也可以选择快速跑,调试,指定。如果您选择指定工具链,您可以自定义选项。当你点击应用、自定义工具链设置应用于当前的模型。

请注意

以下系统目标文件,使用模板makefile的方法,从系统有相同的名称,但不同的描述使用工具链的目标文件的方法:

  • ert.tlc- - - - - -Create Visual C/C++ Solution File for Embedded Coder

  • grt.tlc- - - - - -Create Visual C/C++ Solution File for Simulink Coder

为了避免混淆,点击浏览选择系统的目标文件和每个文件的描述。

升级模型来使用工具链的方法

当您打开一个模型之前创建R2013b使用以下系统目标文件,试图升级的软件模型。升级更改配置使用模板makefile设置来使用工具链设置:

  • ert.tlc- - - - - -嵌入式编码器

  • ert_shrlib.tlc- - - - - -嵌入式编码器(host-based shared library target)

  • grt.tlc- - - - - -Generic Real-Time Target

请注意

升级的模型使用一个定制的系统目标文件使用工具链方法,明白了金宝app支持工具链方法使用自定义的目标

一些模型配置参数值防止软件升级模型来使用工具链设置。下面的说明给你完成升级过程的方法。

考虑升级你的模型和使用工具链构建方法。这样做不是必需的。你可以继续从模型生成代码还没有升级。

请注意

软件不能升级模型,使用以下系统目标文件:

  • ert.tlc- - - - - -Create Visual C/C++ Solution File for Embedded Coder

  • grt.tlc- - - - - -Create Visual C/C++ Solution File for Simulink Coder

一个模型是否已经升级:

  1. 如果工具链构建配置指定配置参数,模型已经升级。

    如果makefile等配置参数生成makefile,使命令,模板makefile指定,该模型还没有升级。

首先创建一个工作副本模型的使用文件>另存为。这一行动保留原始模型和配置参数供参考。

试着升级模型使用升级顾问:

  1. 建模选项卡,评估和管理部分中,选择升级顾问

  2. 在升级顾问,选择检查和更新模型使用工具链方法构建生成的代码并点击运行这个检查

  3. 执行建议的操作和/或点击更新模型

当你不能使用升级顾问升级模型,一个或多个下列参数没有设置为默认值,如图所示:

  • 编译器优化级别- - - - - -优化了(更快的构建)

  • 生成makefile-启用

  • 模板makefile-系统目标file-specific模板makefile

  • 使命令- - - - - -make_rtw不带参数

有时,一个模型不能升级。试试以下程序:

  • 如果生成makefile是禁用的,这种情况下不能升级。然而,你可以试着让它升级模型使用升级顾问。

  • 如果编译器优化级别被设置为优化(快):

    1. 编译器优化级别优化了(更快的构建)

    2. 使用升级顾问升级模型。

    3. 构建配置快速跑

  • 如果编译器优化级别被设置为自定义:

    1. 复制自定义编译器优化的旗帜一个文本文件。

    2. 编译器优化级别优化了(更快的构建)

    3. 使用升级顾问升级模型。

    4. 构建配置指定

    5. 执行相同的优化、编辑编译器选项。

  • 如果模板makefile使用一个定制的模板makefile,这种情况下不能升级。然而,你可以试试以下几点:

    1. 更新模板makefile使用默认的makefile的系统目标文件。

      请注意

      把默认的makefile的名字,改变系统目标文件,点击应用,改变它,然后单击应用一次。

    2. 使用升级顾问升级模型。

    3. 如果模板makefile包含构建工具选项,如编译器优化旗帜,集构建配置指定和更新选项。

    4. 如果模板makefile使用自定义构建工具,创建一个自定义工具链,注册中描述自定义工具链登记(MATLAB编码器)。然后,设置工具链参数使用自定义工具链。

      请注意

      注册自定义工具链后,更新工具链使用自定义工具链。

    5. 如果模板makefile包含定制的规则和逻辑,这些定制不能用于升级模式。

模板Makefile的方法

系统目标文件被设置为一个薄层色谱makefile文件,使用模板方法,软件显示编译器优化级别,生成makefile,使命令,模板makefile参数。

指定是否要生成Makefile

生成makefile选项指定是否生成makefile构建过程模型。默认情况下,构建过程生成一个makefile。抑制生成makefile,例如支持自定义构建的处理,不是基于makefile,清算金宝app生成makefile。当你清楚这个参数:

  • 使命令模板makefile选择是不可用的。

  • 建立邮政代码生成构建使用用户定义命令处理,解释定制Post-Code-Generation构建处理(金宝app仿真软件编码器)。

指定一个使命令

每个模板makefile-based系统目标文件都有一个关联的使命令。代码生成器使用MATLAB命令这个内部控制构建过程。出现在的命令使命令字段,当你开始一个构建。

大多数系统目标文件使用默认的命令,make_rtw。第三方系统目标文件可以提供另一个使命令。看供应商的文档。

另外的名字使的命令,您可以供应makefile选项使命令字段。这些选项包括compiler-specific选项,包括路径和其他参数。当构建过程调用使实用程序,这些选项的传递使命令行,将它们添加到整体标志传递给编译器。

模板makefile和做出选择列出了使命令与每个支持的编译器选项可以使用。金宝app

指定模板Makefile

模板makefile场有这些功能:

  • 如果你选择一个系统目标文件与系统目标文件浏览器,这个字段显示的名称MATLAB语言makefile文件,选择一个模板为您的开发环境。例如,在模型配置参数:代码生成(金宝app仿真软件编码器)模板makefile字段显示grt_default_tmf,表明构建流程调用grt_default_tmf.m

    模板makefile和做出选择给出了一个详细描述的逻辑的makefile构建过程选择一个模板。

  • 或者,您可以显式地输入一个特定的名称模板makefile(包括扩展)或一个MATLAB语言文件,返回一个模板makefile。使用这种方法如果您正在使用一个系统目标文件系统中没有出现目标文件浏览器。例如,使用这种方法如果你有写您自己的自定义模板makefile系统目标文件。

如果您指定您自己的模板makefile,一定要包括文件扩展名。如果您省略扩展,构建过程试图找到并执行文件的扩展名。m(即一个MATLAB语言文件)。模板文件(或MATLAB语言文件,返回一个模板文件)必须在MATLAB的道路。确定该文件是否在MATLAB路径,在MATLAB命令窗口中输入以下命令:

哪一个tmf_filename

把模板Makefile和工具链

指定一个模板makefile构建过程的工具链。这个示例提供了一个定义为最小的工具链并展示如何使用模板关联工具链makefile的副本ert_unix.tmfert_vcx64.tmf

使用这个工具链定义文件的代码。

函数tc = minimalToolchainForTMF%创建一个工具链对象tc = coder.make.ToolchainInfo (“名字”,“最小的工具链TMF构建”);%指定链接器需要一个响应文件代替%包括所有对象文件模块链接器命令行上tc.addAttribute (“RequiresCommandFile”,真正的);如果ispc objExt =“.obj”;其他的objExt =' . o ';结束%指定源文件和目标文件扩展使用的C编译器工具= tc.getBuildTool (C编译器的);tool.setFileExtension (“源”,“c”);tool.setFileExtension (“头”,. h”);tool.setFileExtension (“对象”,objExt);%指定源文件和目标文件扩展使用的c++编译器工具= tc.getBuildTool (c++编译器的);tool.setFileExtension (“源”,. cpp的);tool.setFileExtension (“头”,. hpp的);tool.setFileExtension (“对象”,objExt);

使用的一个副本ert_unix.tmfert_vcx64.tmf模板makefile。

拷贝文件(fullfile (matlabroot,“环球套票”,“c”,“导”,“ert_vcx64.tmf”),“ert_copy.tmf”)

模板中的makefile。ert_copy.tmf,编辑TOOLCHAIN_NAME宏。

TOOLCHAIN_NAME =“TMF构建最小的工具链”

模板制作文件的工具链联系起来。

  1. 运行工具链定义文件,生成一个ToolchainInfo对象,tc

    tc = minimalToolchainForTMF;

  2. 保存ToolchainInfo对象垫文件。

    保存(“tcMinimal”,“tc”)

  3. 注册的工具链RTW.TargetRegistry

    1. 这段代码在一个rtwTargetInfo.m文件。

      函数rtwTargetInfo (tr) tr.registerTargetInfo (@loc_createToolchain);结束函数配置= loc_createToolchain配置(1)= coder.make.ToolchainInfoRegistry;配置(1)。Name =“最小的工具链TMF构建”;配置(1)。文件Name =fullfile(fileparts(mfilename(' fullpath ')),“tcMinimal.mat”);配置(1)。TargetHWDeviceType = {‘*’};配置(1)。平台={电脑(“拱”)};结束

    2. 保存文件在当前工作目录或文件夹,在MATLAB搜索路径。

    3. 重置TargetRegistry

      RTW.TargetRegistry.getInstance (“重置”);

把模板makefile和您的模型和构建模型。

set_param (模型、“TemplateMakefile”、“ert_copy.tmf”);rtwbuild (模型);

为代码生成指定TLC

目标语言编译器(TLC)是一个代码生成器的有效组成部分。它使您能够定制生成的代码。通过定制,您可以生成特定于平台的代码,或者你可以把你自己的算法执行速度变化,代码大小,或与现有的方法,你更愿意保持兼容性。有关更多信息,请参见目标语言编译器概述(金宝app仿真软件编码器)。

TLC对代码生成指定的选项出现在摘要部分生成的HTML代码生成报告。

请注意

指定TLC命令行选项并不将标记添加到命令行中。

您可以指定目标语言编译器(TLC)命令行选项和参数代码生成使用模型参数TLCOptions在一个set_param函数调用。例如,

> > set_param (gcs,‘TLCOptions’,‘p0 -aWarnNonSaturatedBlocks = 0”)

一些常见的利用TLC选项包括以下几点:

  • -aVarName = 1声明一个TLC变量和/或赋值

  • ":\工作指定一个包含路径

  • - v从TLC获得详细输出处理(例如,当调试)

相关的话题