主要内容

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

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

设置定制的工作流程

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

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

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

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

  4. 构建的模型。

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

构建信息对象

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

  • 编译器选项

  • 预处理程序标识符定义

  • 链接器选项

  • 源文件和路径

  • 包括文件和路径

  • 预编译的外部库

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

编写邮政编码生成命令

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

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

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

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

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

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

获取源代码的名称和路径,包括为模型生成的文件%,然后分析它们。% 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自定义构建过程,并将生成的代码迁移到外部环境

这个例子展示了如何使用构建信息编程接口和模型配置参数邮政编码生成命令PostCodeGenCommand)以自订构建过程。对于这个示例,邮政编码生成命令被设置为rtwdemo_buildinfo_data.构建过程在代码生成后调用该函数。

该示例还展示了如何使用生成配置函数rtwmakecfg.m

打开示例模型

打开示例模型rtwdemo_buildinfo

open_system (“rtwdemo_buildinfo”);

从模型生成代码

生成的代码。代码生成器生成文件BuildInfo.html,它记录构建信息对象。

检查构建过程定制和输出

检查生成信息对象的生成过程定制和邮政编码生成查询。在Web浏览器中,打开该文件BuildInfo.html.该文件提供了可用于检查为模型生成的代码的超链接。或者,在MATLAB命令窗口中:

  • 要查看配置为在构建过程的邮政编码生成阶段执行的函数,请输入:

get_param(“rtwdemo_buildinfo”、“PostCodeGenCommand”);

  • 要研究构建信息对象的编程接口,输入:

rtwdemo_buildinfo_data (buildInfo);

  • 学习该示例如何使用rtwmakecfg函数,输入:

编辑rtwmakecfg.m;

  • 控件中保存的生成信息对象数据buildInfo.mat文件,打开文件rtwdemo_ <目标> _rtw \ buildInfo.mat

  • 查询邮政编码生成功能的内容rtwdemo_buildinfo_data.m,输入:

编辑rtwdemo_buildinfo_data.m;

在文件的末尾,函数调用packNGo打包构建信息对象标识的源文件和目标文件以进行重新定位。

相关的话题

抑制Makefile代

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

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

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

  • 设置配置参数的值GenerateMakefile

当你抑制生成文件时,

另请参阅