文档

自定义代码生成后的生成处理

代码生成器提供了一组工具,包括一个构建信息对象,您可以使用它自定义代码生成后发生的构建处理。您可以将此类定制用于目标开发或将第三方工具集成到应用程序开发环境中。

设置定制的工作流程

下图和接下来的步骤显示了设置代码生成后自定义的一般工作流程。

  1. 编写邮政编码生成命令

  2. 定义邮政编码生成命令

  3. 抑制makefile代,如果适用。

  4. 构建的模型。

  5. 修改命令并重新构建模型,直到构建结果可以接受为止。

构建信息对象

在模型构建的开始,构建过程将以下构建选项和依赖项信息记录到一个临时构建信息对象:

  • 编译器选项

  • 预处理程序标识符定义

  • 链接器选项

  • 源文件和路径

  • 包括文件和路径

  • 预编译的外部库

可以使用大量函数从此对象检索信息并向其添加信息。有关可用函数的列表和详细的函数描述,请参见构建流程定制(金宝app仿真软件编码器)。编写邮政编码生成命令说明如何使用函数来控制邮政编码生成生成处理。

编写邮政编码生成命令

对于某些应用程序,您可能希望在代码生成之后控制构建过程的各个方面。例如,如果您开发自己的目标,或者您想在继续构建过程之前对生成的代码应用分析工具,则可以使用此方法。您可以通过编程和定义邮政编码生成命令,将这种级别的控制应用到构建过程中。

邮政编码生成命令是一个MATLAB®语言文件,该文件通常调用从模型的构建信息对象获取数据或向其添加数据的函数。您可以将该命令编写为脚本或函数。

如果你将该命令编程为: 然后:
脚本 脚本可以直接访问模型名称和构建信息
函数 函数可以将模型名称和构建信息作为参数传递

如果邮政编码生成命令调用用户定义函数,请确保函数位于MATLAB路径上。如果构建过程无法找到命令中使用的函数,则构建过程会出错。

然后可以调用构建信息函数的组合,如中列出的构建流程定制(金宝appSimulink Coder),自定义邮政编码生成构建处理的模型。

下面的示例显示邮政编码生成命令的片段,该命令获取源文件的文件名和路径,并包括为分析模型生成的文件。

获取源代码的名称和路径,包括为模型生成的文件%,然后分析它们。% buildInfo -为我的模型构建信息。定义单元格数组来保存数据。MyBuildInfo = {};获取源文件信息。MyBuildInfo。srcfiles = getSourceFiles (buildInfo,真的,真的);MyBuildInfo。srcpaths = getSourcePaths (buildInfo,真实);获取包含(头)文件信息。 MyBuildInfo.incfiles=getIncludeFiles(buildInfo, true, true); MyBuildInfo.incpaths=getIncludePaths(buildInfo, true); % Analyze generated code. . . .

定义邮政编码生成命令

编写邮政编码生成命令后,通知构建过程该命令存在,并将其添加到模型的构建处理中。方法定义命令PostCodeGenCommand模型配置参数。定义邮政编码生成命令时,构建过程将在生成生成的代码并将其写入磁盘之后,在生成makefile之前对该命令进行计算。

正如下面的语法行所示,在设置配置参数时指定的参数取决于您是将命令编程为脚本、函数还是函数集。

请注意

将命令定义为函数时,可以指定任意数量的输入参数。要将模型的名称和构建信息传递给函数,请指定标识符modelName而且buildInfo作为参数。

脚本

set_param (模型‘PostCodeGenCommand’……”pcgScriptName”);

函数

set_param (模型‘PostCodeGenCommand’……”pcgFunctionName(modelName) ');

多种功能

pcgFunctions=……”pcgFunction1Name(modelName);…pcgFunction2Name(buildInfo)”;set_param (模型,“PostCodeGenCommand”,…pcgFunctions);

下面的调用set_param定义了PostCodGenCommand求函数值analyzegencode

set_param(模型、“PostCodeGenCommand”……“analyzegencode (buildInfo) ');

使用PostCodeGenCommand自定义构建过程,并将生成的代码迁移到外部环境

此示例演示如何使用构建信息API和邮政编码生成命令参数,PostCodeGenCommand

PostCodeGenCommand参数值是rtwdemo_buildinfo_data.该值指示构建过程在代码生成后调用该函数。

该示例还演示了如何使用rtwmakecfg.mAPI。

有关更多信息,请单击模型中的文档链接。

打开示例模型

打开示例模型rtwdemo_buildinfo

open_system (“rtwdemo_buildinfo”);

从模型生成代码

双击使用Simulink Coder生成代码金宝app按钮为GRT目标生成代码。

或者,如果安装了Embedded Coder,则双击使用嵌入式编码器生成代码按钮为ERT目标生成代码。

构建过程生成一个BuildInfo.html文件来记录构建信息对象。

检查构建过程定制和输出

使用模型中的链接来检查构建过程定制和构建信息对象的邮政编码生成查询。

查看BuildInfo.html文件,单击打开BuildInfo.html

该示例使用PostCodeGenCommand从构建信息对象生成HTML文件的模型的参数。该文件提供了从模型打开源文件(生成的代码)的超链接。查看PostCodeGenCommand参数值类型:

get_param(“rtwdemo_buildinfo”、“PostCodeGenCommand”);

中要执行的函数邮政编码汇编命令阶段。

rtwdemo_buildinfo_data (buildInfo);

学习该示例如何使用rtwmakecfgAPI,点击打开rtwmakecfg.m或类型:

编辑rtwmakecfg.m;

研究的APIbuildInfo.mat对象,点击打开rtwdemo_buildinfo_data.m或类型:

编辑rtwdemo_buildinfo_data.m;

buildInfo.mat对象可在以下网站获得:

rtwdemo_ <目标> _rtw \ buildInfo.mat

在最后rtwdemo_buildinfo_data.m邮政编码生成函数,该函数调用packNGo中标识的源和对象进行打包buildInfo安置的对象。

进一步的研究主题

抑制Makefile代

代码生成器允许您在构建过程中抑制生成文件生成。例如,当您将不使用makefile的工具集成到构建过程中时,金宝app可以使用此支持。

要指示代码生成器不生成makefile,请执行以下操作之一:

  • 清除生成makefile选择在代码生成“配置参数”对话框中的“配置参数”。

  • 设置配置参数的值GenerateMakefile

当你抑制生成文件时,

这个话题有帮助吗?