主要内容

自定义生成ASAP2文件

请注意

在未来的版本中,将不支持基于TLC的定制。要自定义ASAP2文件,请参见自定义生成ASAP2文件(嵌入式编码)

关于ASAP2文件定制

嵌入式编码器®product提供了许多目标语言编译器(TLC)文件,使您能够自定义从Simulink生成的ASAP2文件金宝app®模型。

的ASAP2文件结构MATLAB路径

ASAP2相关文件被组织在以下文件夹中:

  • 用于生成ASAP2文件的TLC文件

    matlabroot/ rtw / c / tlc /兆瓦开放)文件夹包含生成ASAP2文件的TLC文件,asamlib.tlcasap2lib.tlcasap2main.tlc,asap2grouplib.tlc.这些文件是由模型配置参数的设置所包含的系统目标文件.(见支持ASAP2的系统目标文件金宝app.)

  • ASAP2目标文件

    matlabroot/ / asap2 / asap2工具箱/ rtw /目标开放)文件夹包含ASAP2系统目标文件和其他控制文件。

  • 可定制的TLC文件

    matlabroot/工具箱/ rtw /目标/ asap2 / asap2 /用户开放)文件夹中包含您可以修改以自定义ASAP2文件内容的文件。

  • ASAP2模板

    matlabroot/工具箱/ rtw /目标/ asap2 / asap2 / user /模板开放)文件夹包含定义每种类型的模板特征在ASAP2文件中。

定制ASAP2文件的内容

ASAP2相关的TLC文件使您能够自定义从Simulink模型生成的ASAP2文件的外观。金宝app类中包含的文件进行修改或添加matlabroot/工具箱/ rtw /目标/ asap2 / asap2 /用户开放)文件夹中。本节将此文件夹称为asap2 /用户文件夹中。

提供的用户自定义文件分为两组:

  • 静态文件定义ASAP2文件中与使用生成代码的环境相关的部分。它们描述特定于用户或项目的信息。静态文件不依赖于模型。

  • 动态文件定义了ASAP2文件中基于源模型结构生成的部分。

ASAP2文件的定制流程如下:

  1. 复制一份asap2 /用户文件夹,然后进行修改。

  2. 移除旧的asap2 /用户来自MATLAB的文件夹®路径,或添加新的asap2 /用户文件夹到MATLAB路径上面的旧文件夹。MATLAB会话使用ASAP2设置文件,asap2setup.tlc,在新文件夹中。

    asap2setup.tlc指定ASAP2文件生成过程中要包含在TLC路径中的文件夹和文件。修改asap2setup.tlc来控制包含在TLC路径中的文件夹和文件夹。

  3. 修改ASAP2文件的静态部分。这些包括

    • 中指定的项目和头符号asap2setup.tlc

    • 文件的静态部分,比如文件头和文件尾,A2MLMOD_COMMON,等等asap2userlib.tlc

    • 通过修改现有ASAP2模板或定义新的ASAP2模板,指定ASAP2文件动态内容的外观。ASAP2文件受影响的部分包括

      RECORD_LAYOUT:修改ASAP2模板文件的部分内容。

      特征:修改ASAP2模板文件的部分内容。的外观的详细信息特征记录,请参阅ASAP2模板

    • 测量:在asap2userlib.tlc

    • COMPU_METHOD:在asap2userlib.tlc

ASAP2模板

的出现特征ASAP2文件中的记录是使用不同的模板控制每种类型的特征.的asap2 /用户文件夹包含标量的模板定义文件,一维查找表块和二维查找表块。您可以修改这些模板定义文件,也可以根据需要创建其他模板。

新建ASAP2模板的操作步骤如下:

  1. 创建模板定义文件。看到创建模板定义文件

  2. 在TLC路径中包含模板定义文件。该路径在ASAP2安装文件中指定,asap2setup.tlc

创建模板定义文件

本节描述组成ASAP2模板定义文件的组件。此描述以代码示例的形式从asap2lookup1d.tlc的模板定义文件Lookup1D模板。该模板对应于Lookup1D参数组。

请注意

创建新模板时,使用相应的参数组名代替Lookup1D在显示的代码中。

模板注册功能

input参数是与该模板关联的参数组的名称:

% < LibASAP2RegisterTemplate (Lookup1D) >

函数

可以为每种数据类型任意指定记录布局名称(别名)。此函数由该文件的其他组件使用。

function ASAP2UserFcnRecordLayoutAlias_Lookup1D(dtId) void %switch dtId %case tSS_UINT8 %return "Lookup1D_UBYTE"…% endswitch % endfunction

函数来写入RECORD_LAYOUT定义

这个函数写RECORD_LAYOUT与此模板关联的定义。该函数由ASAP2文件生成过程中涉及的内置函数调用。函数名必须定义为如下所示,模板名在下划线后:

%function ASAP2UserFcnWriteRecordLayout_Lookup1D() Output /begin RECORD_LAYOUT %…/end RECORD_LAYOUT %结束函数

函数写特征

此函数写入特征与该模板关联。该函数由ASAP2文件生成过程中涉及的内置函数调用。函数名必须定义为如下所示,模板名在下划线之后。

此函数的输入参数是指向参数组记录的指针。所示的示例是aLookup1D有两个成员的参数组。对象的引用x而且y数据记录从参数组记录中获取,如图所示。

该函数调用许多内置函数来获取所需的信息。例如,LibASAP2GetSymbol返回指定数据记录的符号(名称):

function ASAP2UserFcnWriteCharacteristic_Lookup1D(paramGroup) Output %assign xParam = paramGroup. member [0]. member参考%assign yParam = paramGroup.Member[1]。Reference %assign dtId = LibASAP2GetDataTypeId(xParam) /begin CHARACTERISTIC /* Name */ % /*长标识符*/ "%"…结束函数

自定义计算方法名称

在生成的ASAP2文件中,计算方法将电子控制单元(ECU)测量和校准量的内部表示转换为面向物理模型的表示。金宝app仿真软件编码器™软件提供了自定义计算方法名称的能力。您可以提供更直观的名称,增强ASAP2文件的可读性,或者满足组织要求的名称。

要自定义计算方法名称,请使用MATLAB函数getCompuMethodName,定义为matlabroot/工具箱/ rtw /目标/ asap2 / asap2 / user /getCompuMethodName.m

getCompuMethodName函数构造一个计算方法名称。函数原型为

cmName= getCompuMethodName (dataTypeNamecmUnits

在哪里dataTypeName与计算方法关联的数据类型的名称,cmUnits单位是否如单位的属性金宝app仿真软件。参数金宝app仿真软件。信号对象(例如,rpm米/秒),cmName返回构造的计算方法名称。

函数返回的默认构造名称具有以下格式

<数据类型> < localPrefix > _ < cmUnits >

在哪里

  • < local_Prefix >是本地前缀,CM_,定义为matlabroot/工具箱/ rtw /目标/ asap2 / asap2 / user /getCompuMethodName.m

  • <数据类型>而且< cmUnits >参数是否指定给getCompuMethodName函数。

此外,在生成的ASAP2文件中,构造的名称前缀为< ASAP2CompuMethodName_Prefix >中定义的模型前缀matlabroot/工具箱/ rtw /目标/ asap2 / asap2 / user /asap2setup.tlc

例如,如果调用getCompuMethodName函数与dataTypeName论点“int16”cmUnits论点“米/秒”,并为模型生成ASAP2文件myModel,计算方法名称将出现在生成的文件中,如下所示:

/begin COMPU_METHOD /* CompuMethod名称*/myModel_CM_int16_m_s/*单位*/ "m/s"…/结束COMPU_METHOD

抑制FIX_AXIS的计算方法

ASAP2规范的1.51及以后版本声明,对于查找表轴描述(整数数据类型和无文档单位)的某些情况,不需要计算方法,并且必须将Conversion method参数设置为该值NO_COMPU_METHOD.可以使用目标语言编译器(TLC)选项控制是否在不需要时抑制计算方法ASAP2GenNoCompuMethod.默认情况下禁用此TLC选项。如果启用该选项,ASAP2文件生成在不需要时不会生成查找表轴描述的计算方法,而是生成该值NO_COMPU_METHOD.例如:

/begin CHARACTERISTIC /* Name */ lu1d_fix_axisTable_data…/begin AXIS_DESCR…/*转换方法*/NO_COMPU_METHOD.../结束特点

ASAP2GenNoCompuMethod选项定义在matlabroot/工具箱/ rtw /目标/ asap2 / asap2 / user /asap2setup.tlc

相关的话题