使用嵌入式编码器®,您可以从Simulink生成代码金宝app®包含一个或多个变体选择的模型。生成的代码包含控制每个变量选择的激活的预处理器条件。
请注意
金宝appSimu金宝applink支持使用带有变体Simulink函数的多实例引用模型来生成代码。
查阅有关使用STF_make_rtw_hook
文件以自定义构建过程,请参阅使用STF_make_rtw_hook文件自定义构建过程(金宝app仿真软件编码器)
金宝app仿真软件。参数
对象MATLAB®在构建模型和生成代码生成的预处理器条件时,变量允许您快速创建变量控制表达式的原型。然而,如果您想指定其他代码生成属性(如数据类型),您可以将MATLAB变量转换为金宝app仿真软件。参数
对象。
指定模型中您想替换MATLAB变量控制变量金宝app仿真软件。参数
对象。
模型=“my_model_containing_variant_choices”;open_system(模型);
获取变量控制表达式中引用的变量。
var = S金宝appimulink.VariantManager.findVariantControlVars(模型)
vars = 4x1带有字段的结构数组:Name Value Exists Source SourceType
创建用于指定变量控制值的外部头文件,以便在代码运行时导入变量定义。
headerFileName =[模型“_importedDefines.h”];headerPreamble = strrep(上层(headerFileName),“。”,“_”);fid = fopen (headerFileName,“w +”);fidErr = (fid == -1); / /输出如果(fidErr)流(创建头文件%s时出错:…\ n”,headerFileName);其他的流(使用变量控制创建头文件“%s”…变量定义。\ n \ n”,headerFileName);流(fid检测器,“ifndef % s \ n”, headerPreamble);流(fid检测器,“# define % s \ n”, headerPreamble);结束
变量控制变量定义为金宝app仿真软件。参数
对象可以有这些存储类之一。
定义
或ImportedDefine
指定头文件bfile
CompilerFlag
SystemConstant (AUTOSAR)
将数据定义为宏的自己的存储类
请注意
如果您使用启动
激活时间,指定对象支持的自定义存储类。金宝app有关支持的内置和自定义存储类的更多信息金宝app启动
激活时间看到不同激活时间的存储类.
循环遍历所有MATLAB变量,将它们转换成金宝app仿真软件。参数
对象。
数= 0;为countVars = 1:length(vars) var = vars(countVars).Name;val = var (countVars) value;如果isa (val,的金宝app仿真软件。参数的)%什么也不做继续;结束数=计数+ 1;%创建和配置Simulink。金宝app参数对象%对应于控制变量名。%指定存储类为Define(自定义)。newVal = 金宝appSimulink.Parameter (val);newVal。数据类型=“int16”;newVal.CoderInfo.StorageClass =“自定义”;newVal.CoderInfo.CustomStorageClass =的定义(自定义);newVal.CoderInfo.CustomAttributes.HeaderFile = headerFileName;金宝appSimulink.data。assigninGlobal(模型、var newVal);如果~ fidErr流(fid检测器,“# endif \ n”);文件关闭(fid);结束结束
请注意
对象的头文件可以为空定义
存储类。
如果你在a中表示变量选择不同的子系统块或变体模型块,为每个变量选择生成的代码被封装在C预处理器条件中#如果
,其他#
,# elif
,# endif
.
如果你用变异来源块或变体水槽块,为每个变量选择生成的代码被封装在C预处理器条件中#如果
和# endif
.
因此,在编译时选择活动变量,预处理器条件决定执行代码的哪一部分。
请注意
您必须拥有Embedded Coder®许可证才能生成代码。
在建模选项卡,单击金宝app模型设置.
选择代码生成面板,设置系统目标文件来ert.tlc
.
在报告窗格中,选择创建代码生成报告.
请注意
在代码的位置窗格中,如果紧凑的
选项从文件的包装格式下拉列表,model_types.h
文件不生成和内容model_types.h
文件被移动到model.h
文件。
选择代码生成面板,清楚忽略自定义存储类和应用.
在模型中,右键单击包含变量选择的块(不同的子系统,变异来源,变体水槽,或变体模型块),并选择块的参数.
确保表达式
(默认选项)变量控制方式参数。
从变体激活时间列表中,选择代码编译
.
金宝appSimulink在更新图或仿真过程中分析所有的变体选择。此分析为所有变体选择提供了代码生成准备就绪的早期验证。
构建的模型。