使用STF_make_rtw_hook文件自定义构建过程
构建过程允许您在钩子方法中提供可选的定制代码,这些方法将在代码生成和制作过程中的指定点执行。您可以使用钩子方法向构建流程添加特定于目标的操作。
STF_make_rtw_hook文件
您可以在一个通常称为
,在那里月31
_make_rtw_hook.m
系统目标文件的名称,例如月31
导
或mytarget
.这个文件实现了一个函数,
,它分派到一个特定的动作,这取决于月31
_make_rtw_hookhookMethod
争论进来了。
构建过程调用
,把月31
_make_rtw_hookhookMethod
论点和其他论点。您只实现构建过程需要的那些钩子方法。
如果您的模型包含引用模型,您可以实现
根据需要为每个参考模型。构建过程调用每个月31
_make_rtw_hook.m
对于参考模型,递归地处理这些文件(按依赖顺序)。月31
_make_rtw_hook
STF_make_rtw_hook文件使用约定
的方法来构建流程调用
,确认同时满足以下条件:月31
_make_rtw_hook
的
文件在MATLAB上®路径。月31
_make_rtw_hook.m文件名是系统目标文件的名称(
月31
),附在正文后面_make_rtw_hook.m
.例如,如果使用自定义系统目标文件生成代码mytarget.tlc
,命名你的钩子文件mytarget_make_rtw_hook.m
,并命名在文件中实现的钩子函数mytarget_make_rtw_hook
.在文件中实现的钩子函数使用中描述的函数原型STF_make_rtw_hook。m函数原型和参数.
STF_make_rtw_hook。m函数原型和参数
的函数原型
是:月31
_make_rtw_hook
函数月31_make_rtw_hook(hookMethod, modelName, rtwRoot, templateMakefile, buildOpts, buildArgs, buildInfo)
参数定义为:
hookMethod
:指定生成过程的阶段的字符向量
函数被调用。下面的流程图总结了构建过程,突出显示了钩子点。的有效值月31
_make_rtw_hookhookMethod
是“入口”
,“before_tlc”
,“after_tlc”
,“before_make”
,“after_make”
,“退出”
,“错误”
.的
函数向相关代码发送月31
_make_rtw_hook开关
声明。
modelName
:指定模型名称的字符向量。在构建过程的所有阶段都有效。rtwRoot
:保留。templateMakefile
:模板makefile的名称。buildOpts
:一个MATLAB结构,包含下表中描述的字段。适用于“before_make”
,“after_make”
,“退出”
阶段。的buildOpts
字段包括:模块
:字符向量,指定要编译的附加文件列表。codeFormat
:指定对象值的字符向量CodeFormat
TLC变量为目标。(基于ert的目标必须使用“Embedded-C”
的值CodeFormat
并使用相应的TLC变量“ert.tlc”
的价值rtwgensettings。本文建立
字段。)noninlinedSFcns
:单元格数组,指定模型中非内联s函数的列表。compilerEnvVal
:指定编译器环境变量值的字符向量(例如C: \ \ Microsoft Visual应用
).
buildArgs
:包含参数to的字符向量make_rtw
.当您调用构建过程时,buildArgs
是否从后面的参数复制“make_rtw”
在配置参数+代码生成+使命令字段。例如,下面的参数从使命令场
make_rtw VAR1=0 VAR2=4
生成以下内容:
% make -f untitled。mk VAR1=0 VAR2=4
的
buildArgs
参数不应用于工具链方法构建,因为这些构建不允许向make_rtw
调用。在编译器命令行上,提供自定义定义(例如,VAR1 = 0 VAR2 = 4
应用于TMF方法和工具链方法构建的配置参数>代码生成>自定义代码>定义了字段。buildInfo
:包含模型构建信息字段的MATLAB结构。适用于“after_tlc”
,“before_make”
,“after_make”
,“退出”
阶段。有关这些字段和访问它们的函数的信息,请参见构建过程定制(金宝app仿真软件编码器)。
STF_make_rtw_hook.m的应用程序
下面是一些如何应用的例子
钩的方法。月31
_make_rtw_hook.m
一般情况下,您可以使用“入口”
钩子来初始化构建过程,例如,在生成代码之前更改或验证设置。一份申请“入口”
钩子是为了验证目的,重新运行最初在目标选择时运行的自动配置脚本,以比较脚本执行前后的模型参数。
其他的钩子点,“before_tlc”
,“after_tlc”
,“before_make”
,“after_make”
,“退出”
,“错误”
对于与外部工具链、源代码控制工具和其他环境工具的接口非常有用。
例如,你可以使用
之后的一个阶段月31
_make_rtw_hook.m“入口”
获取生成文件夹的路径。在“退出”
阶段,您可以在构建文件夹中找到生成的代码文件,并将它们检入您的版本控制系统。你可以用“错误”
在代码生成或构建过程中发生错误时,清理钩子函数使用的静态或全局数据。
请注意
构建过程临时将MATLAB工作文件夹更改为各个阶段的构建文件夹“before_make”
,“after_make”
,“退出”
,“错误”
.你的
File决不能对构建文件夹的位置作出错误的假设。在某个点之后月31
_make_rtw_hook.m“入口”
阶段,您可以获得构建文件夹的路径。在下面的MATLAB代码示例中,构建文件夹路径作为变量的字符向量返回buildDirPath
.
buildDirPath = rtwprivate('get_makertwsettings',gcs,'BuildDirectory');
使用STF_make_rtw_hook.m进行控制代码再生
当您重新构建模型时,默认情况下,构建过程执行检查,以确定对模型或相关设置的更改是否需要重新生成顶级模型代码。(关于标准的详细信息,请参见顶级模型代码的控制再生)。如果检查确定需要生成顶级模型代码,那么构建过程将完全重新生成并编译模型代码。如果检查表明顶级模型生成的代码相对于模型是当前的,并且模型设置不需要完全重新生成,那么构建过程就会忽略顶级模型代码的重新生成。
无论是否重新生成顶级模型代码,构建过程随后都会调用构建过程钩子,包括
函数和邮编生成命令。控件中与代码再生相关的操作有以下机制月31
_make_rtw_hook
功能:月31
_make_rtw_hook
方法中的以下函数调用可强制重新生成代码
“入口”
看点:环球套票。targetNeedsCodeGen(‘设置’,真正的);
在钩子从
“before_tlc”
通过“退出”
,buildOpts
传递给钩子的结构有一个布尔字段codeWasUpToDate
.该字段设置为真正的
如果模型代码是最新的,而代码没有重新生成,或者假
如果代码没有更新并且重新生成了代码。可以根据该字段的值自定义钩子动作。例如:...if buildOpts. case 'before_tlc'codeWasUpToDate%Perform hook actions for up to date model else %Perform hook actions for full code generation end ...
使用STF_make_rtw_hook。m表示您的生成过程
要创建自定义
钩子文件为您的构建过程,复制和编辑示例月31
_make_rtw_hookert_make_rtw_hook.m
文件,该文件位于文件夹中
(开放),详情如下:matlabroot
/工具箱/编码器/ embeddedcoder
复制
ert_make_rtw_hook.m
到MATLAB路径下的文件夹。根据中描述的命名约定重新命名STF_make_rtw_hook文件使用约定.例如,将它与GRT目标一起使用grt.tlc
,重命名为grt_make_rtw_hook.m
.重命名
ert_make_rtw_hook
函数在文件内匹配文件名。类中的case语句中添加代码来实现所需的钩子
开关hookMethod
声明。