如果你想使用一个定制的系统目标文件构建一个模型,模型引用,您必须配置自定义目标文件系统来支持模型引用。金宝app
建立一个模型,引用其他模型:
使用一个定制的系统目标文件来源于GRT或ERT系统目标文件。
自定义系统目标文件必须声明模型引用合规——看到的声明模型引用合规。
模板makefile必须定义一些实体支持模型引用——看到的金宝app在TMF提供模型参考支持金宝app。
要申报的模型参考遵从你的目标,你必须实现一个回调函数,设置ModelReferenceCompliant
国旗,然后安装的回调函数SelectCallback
场的rtwgensettings
结构系统目标文件。回调函数触发当用户选择目标系统中的目标文件浏览器。例如,下面的系统目标文件代码安装一个SelectCallback
函数命名custom_select_callback_handler
:
rtwgensettings。SelectCallback= 'custom_select_callback_handler(hDlg,hSrc)';
的参数SelectCallback
函数(处理
,hSrc
)处理私人数据API使用的回调函数。这些句柄被限制使用回调函数在系统目标文件。他们应该通过没有变更。
你的回调函数应该设置ModelReferenceCompliant
标志如下:
slConfigUISetVal(处理,hSrc ModelReferenceCompliant ', '对');slConfigUISetEnabled(处理、hSrc ModelReferenceCompliant,假);hSrc.refreshDialog;
如果你会使用目标构建包含大型模型参考层次结构模型,考虑配置目标支持并行构建,如前所述金宝app减少构建时间参考模型通过使用并行构建。
配置并行构建的目标,你的回调函数也必须设置ParMdlRefBuildCompliant
标志如下:
slConfigUISetVal(处理,hSrc ParMdlRefBuildCompliant ', '对');slConfigUISetEnabled(处理、hSrc ParMdlRefBuildCompliant,假);hSrc.refreshDialog;
关于系统目标文件调API的更多信息,见slConfigUIGetVal
,slConfigUISetEnabled
,slConfigUISetVal
函数引用页面。
配置模板makefile (TMF)模型引用:
添加以下使变量和令牌生成makefile时扩展:
MODELREFS = | > MODELREFS < | MODELLIB = | > MODELLIB < | MODELREF_LINK_LIBS = | > MODELREF_LINK_LIBS < | MODELREF_LINK_RSPFILE = | > MODELREF_LINK_RSPFILE_NAME < | RELATIVE_PATH_TO_ANCHOR = | > RELATIVE_PATH_TO_ANCHOR < | MODELREF_TARGET_TYPE = | > MODELREF_TARGET_TYPE < |
下面的代码片段显示了引用makefile令牌是如何扩展模型。
MODELREFS = MODELLIB = engine3200cc_rtwlib。一个MODELREF_LINK_LIBS = MODELREF_LINK_RSPFILE = RELATIVE_PATH_TO_ANCHOR = . . / . . / . .MODELREF_TARGET_TYPE =环球套票
下面的代码片段显示了顶级makefile令牌是如何扩展模型,引用所引用的模型。
MODELREFS = engine3200cc传输MODELLIB = MODELREF_LINK_LIBS = engine3200cc_rtwlib。transmission_rtwlib。一个MODELREF_LINK_RSPFILE = RELATIVE_PATH_TO_ANCHOR = . .MODELREF_TARGET_TYPE =没有
令牌 | 扩大到 |
---|---|
MODELREFS 的顶级模特 |
参考模型的名称列表。 |
MODELLIB |
库的名称生成的模型。 |
MODELREF_LINK_LIBS 顶级模特的令牌 |
的参考模型库顶部链接的列表。 |
MODELREF_LINK_RSPFILE 顶级模特的令牌 |
响应文件的名称前模型链接。这个令牌是有效的只有支持链接器响应文件的构建环境。金宝app其使用的一个示例,请参阅 。 |
RELATIVE_PATH_TO_ANCHOR |
相对路径,从生成makefile的位置,MATLAB®工作文件夹。 |
MODELREF_TARGET_TYPE |
——目标正在建造的类型。可能的值是
|
如果你配置你的目标支持并行构建,如前所述金宝app减少构建时间参考模型通过使用并行构建,你还必须添加以下标记定义TMF:
START_DIR = | > START_DIR < | MASTER_ANCHOR_DIR = | > MASTER_ANCHOR_DIR < |
令牌 | 扩大到 |
---|---|
START_DIR |
目前的工作文件夹(松材线虫病 )构建开始。 |
MASTER_ANCHOR_DIR |
目前的工作文件夹(松材线虫病 )构建开始。 |
添加RELATIVE_PATH_TO_ANCHOR
包括整个路径包括
变量。
包括=我。我(RELATIVE_PATH_TO_ANCHOR) (ADD_INCLUDES)美元\ (USER_INCLUDES) (SHARED_INCLUDES)美元
改变src
变量在TMF最初只列出了常见的模块。额外的模块然后附加条件,如描述的下一步。例如,改变
src = $(模型)。(模块)ert_main加元。c (ADD_SRCS)美元(EXT_SRC)
来
src = $(模块)
创建变量来定义makefile的最终目标。您可以删除变量定义最终目标可能已经存在了。例如,删除
程序= . . / $(模型)
和替换它
ifeq ($ (MODELREF_TARGET_TYPE), NONE) #环球套票产品的顶级模特= (RELATIVE_PATH_TO_ANCHOR) /(模型)美元BIN_SETTING = (LD)美元(LDFLAGS) - o(产品)(SYSLIBS) BUILD_PRODUCT_TYPE =美元“可执行”# ERT建立目标src + = $(模型)。c ert_main。加元(EXT_SRC) # GRT建立目标# src + = $(模型)。c grt_main。c rt_sim。c (EXT_SRC)其他(解决)#美元被环球套票产品= $ (MODELLIB) BUILD_PRODUCT_TYPE = endif“图书馆”
请注意
如果makefile的模板与工具链,删除美元(模型). c
或(模型)。(TARGET_LANG_EXT)美元
从src
列表。
创建规则的最终目标makefile(取代现有的最终目标规则)。例如:
ifeq ($ (MODELREF_TARGET_TYPE), NONE) #名模环球套票(产品):美元(obj) (LIBS)美元(MODELREF_LINK_LIBS) (BIN_SETTING)美元美元(LINK_OBJS) (MODELREF_LINK_LIBS) (LIBS)美元@echo”创建的# # # $ (BUILD_PRODUCT_TYPE): $ @”其他#被环球套票(产品):美元(obj) (LIBS)美元@rm - f (MODELLIB) (ar)美元ruvs (MODELLIB) (LINK_OBJS)美元@echo“# # # $ (MODELLIB) "@echo "### Created $(BUILD_PRODUCT_TYPE): $@" endif
创建一个规则允许引用模型编译文件驻留在MATLAB工作文件夹(松材线虫病
)。
%。o: $ (RELATIVE_PATH_TO_ANCHOR) / %。加元(CC) - c (CFLAGS) <美元
请注意
如果您正在使用一个TMF不变量MODELREFS
,该文件可能被用于仿真软件的早期版本金宝app®软件。如果你想让你的TMF引用来支持模型,添加变量金宝appMODELREFS
使文件。
默认情况下,配置选项的价值系统目标文件中定义一个TLC-based定制目标必须是相同的参考模型和它的父模型。放松这一要求,包括modelReferenceParameterCheck
字段rtwoptions
结构元素定义了配置选项,设置字段的值“关闭”
。例如:
rtwoptions (2)。提示=“我的自定义参数”;rtwoptions (2)。类型=“复选框”;rtwoptions (2) .default = '在';rtwoptions (2)。modelReferenceParameterCheck = '在';rtwoptions (2)。tlcvariable =“mytlcvariable”;…
配置选项我的自定义参数可以引用不同模型及其母公司模型。看到定制系统的目标文件TLC-based信息系统目标文件rtwoptions结构字段汇总的列表rtwoptions
字段。
钩文件是可选的TLC和MATLAB程序文件调用定义阶段的构建过程。钩文件让你自定义构建过程和各个阶段之间交流信息的过程。
如果你适应定制目标代码生成兼容模型参考功能,可以考虑添加检查钩文件处理引用模型不同于顶级模特,防止资源冲突。
例如,考虑添加以下支票给你
:月31
_make_rtw_hook。m文件
%检查是否这是一个引用模型mdlRefTargetType = get_param (codeGenModelName ModelReferenceTargetType”);isNotModelRefTarget = strcmp (mdlRefTargetType, '没有');%,SIM卡,或者RTW如果isNotModelRefTarget %是特定于其他顶级模特%的代码的代码具体参考模型
你可能需要在TLC代码做一个类似的检查。
%如果! IsModelReferenceTarget() % %的代码是特定于其他顶级模特% % %的代码是特定于% endif被引用的模型