主要内容

为代码生成准备包含变量的模型

使用嵌入式编码器®,您可以从Simulink生成代码金宝app®包含一个或多个变体选择的模型。生成的代码包含控制每个变量选择的激活的预处理器条件。

请注意

金宝appSimu金宝applink支持使用多实例引用模型和不同的Simulink函数来生成代码。

有关如何使用STF_make_rtw_hook文件以自定义生成过程,请参见使用STF_make_rtw_hook文件自定义构建过程(金宝app仿真软件编码器)

转换变量控制变量为金宝app仿真软件。参数对象

MATLAB®变量允许您在构建模型和生成用于代码生成的预处理器条件时快速创建变量控制表达式的原型。但是,如果您想指定其他代码生成属性(例如数据类型),则可以将MATLAB变量转换为金宝app仿真软件。参数对象。

  1. 指定要在其中替换MATLAB变量控制变量的模型金宝app仿真软件。参数对象。

    模型=“my_model_containing_variant_choices”;open_system(模型);
  2. 获取变量控制表达式中引用的变量。

    vars = 金宝appSimulink.VariantManager.findVariantControlVars(模型)
    vars = 4x1带字段的结构数组
  3. 创建用于指定变量控制值的外部头文件,以便在代码运行时导入变量定义。

    headerFileName =[模型“_importedDefines.h”];headerPreamble = strrep(upper(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指定头文件

    • CompilerFlag

    • SystemConstant (AUTOSAR)

    • 将数据定义为宏的自己的存储类

    请注意

    如果使用启动激活时间,指定对象支持的自定义存储类。金宝app控件支持的内置和自定义存储类的详细信息金宝app启动激活时间见不同变体激活时间的存储类

  4. 遍历所有MATLAB变量并将它们转换为金宝app仿真软件。参数对象。

    计数= 0;countars = 1:长度(vars) var = vars(countars).Name;val = vars(countars).Value;如果isa (val,的金宝app仿真软件。参数的%什么都不做继续结束Count = Count +1;创建和配置Simulink。金宝app参数对象%对应于控制变量名。指定存储类为定义(自定义)。newVal = 金宝appSimulink.Parameter(val);newVal。数据类型=“int16”;newVal.CoderInfo.StorageClass =“自定义”;newVal.CoderInfo.CustomStorageClass =的定义(自定义);newVal.CoderInfo.CustomAttributes.HeaderFile = headerFileName;金宝appSimulink.data。assigninGlobal(model, var, newVal);如果~ fidErr流(fid检测器,“# endif \ n”);文件关闭(fid);结束结束

请注意

的头文件可以为空定义存储类。

配置预处理器条件生成模型

如果您表示变量选择不同的子系统块或变体模型块,为每个变量选择生成的代码包含在C预处理器条件中#如果,其他#,# elif,# endif

如果您使用变异来源块或变体水槽块,为每个变量选择生成的代码包含在C预处理器条件中#如果而且# endif

因此,在编译时选择活动变量,预处理器条件决定执行代码的哪些部分。

请注意

您必须拥有Embedded Coder®许可证才能生成代码。

  1. 建模在“Simulink”金宝app工具条的页签中,单击模型设置

  2. 选择代码生成窗格,并设置系统目标文件ert.tlc

  3. 报告窗格中,选择创建代码生成报告

    请注意

    代码的位置窗格中,如果紧凑的选项是从文件包装格式下拉列表,model_types.h文件未生成和内容model_types.h文件被移动到model.h文件。

  4. 选择代码生成窗格,清除忽略自定义存储类而且应用

  5. 在您的模型中,右键单击包含变量选择的块(不同的子系统,变异来源,变体水槽,或变体模型Block)并选择块的参数

  6. 确保表达式(默认选项)变型控制方式参数。

  7. 变体激活时间列表中,选择代码编译

    金宝appSimulink在更新图或模拟过程中分析所有的变量选择。该分析为所有变体选择的代码生成就绪性提供了早期验证。

  8. 构建模型。

相关的例子

更多关于