主要内容

legacy_code

使用遗留代码工具

语法

Legacy_code('help')
规格= Legacy_code('初始化')
lefacy_code('sfcn_cmex_generate',规格
lefacy_code('编译',规格compilerOptions
legacy_code(“generate_for_sim”,规格型号名称
legacy_code(“slblock_generate”,规格型号名称
legacy_code(“sfcn_tlc_generate”,规格
Legacy_code('sfcn_makecfg_generate',规格
Legacy_code('RTWMakecFG_GENED',规格
legacy_code(“backward_compatibility”)

描述

legacy_code函数创建一个matlab®结构,用于注册现有C或c++代码的规范和生成的s函数。此外,该函数还可以生成、编译和链接,并为指定的s函数创建一个屏蔽块。其他选项包括生成

  • TLC文件模拟在加速器模式或代码生成

  • 一个rtwmakecfg.m您可以自定义以指定驻留在不同目录中的依赖源和头文件的文件,而不是生成的S函数

Legacy_code('help')显示使用遗留代码工具的说明。

规格= Legacy_code('初始化')初始化遗留代码工具的数据结构,规格,它寄存遗留代码工具生成的现有C或C ++代码和S-Function的属性的特征。

lefacy_code('sfcn_cmex_generate',规格生成由遗留代码工具数据结构指定的s函数源文件,规格

lefacy_code('编译',规格compilerOptions根据数据结构编译并链接由遗留代码工具生成的s函数,规格,以及你可能指定的编译器选项。方法必须支持编译器选项金宝app墨西哥人函数。

legacy_code(“generate_for_sim”,规格型号名称生成,编译和链接S-函数在一步中。如果是options.usetlcwithaccel.“遗留代码工具”数据结构的字段设置为逻辑1 (真正的),该函数还生成用于加速仿真的TLC文件。

legacy_code(“slblock_generate”,规格型号名称基于数据结构生成由传统代码工具生成的S函数的屏蔽S函数块,规格.该块出现在Simulink中金宝app®模型指定的型号名称.如果你省略型号名称,块显示在空模型编辑器窗口中。

legacy_code(“sfcn_tlc_generate”,规格生成基于数据结构的传统代码工具生成的S-function的TLC文件,规格.如果您愿意,此选项是相关的:

  • Force Accelerator mode在Sim金宝appulink软件中使用TLC内联代码生成的s函数。参见的描述sssetoptions.SimStruct功能和ss_option_use_tlc_with_accelerator.更多信息。

  • 利用金宝app仿真软件编码器™软件从你的Simulink模型中生成代码。金宝app有关详细信息,请参见使用遗留代码工具将外部代码导入外部代码的调用(金宝app仿真软件编码器)

Legacy_code('sfcn_makecfg_generate',规格生成一个答案_makecfg.m基于数据结构的传统代码工具生成的S-函数的文件,规格.如果你使用金宝appSimulink编码器要从Simulink模型中生成代码,可以使用此选项为s金宝app函数构建过程指定其他项,如源文件夹、预处理器宏和链接对象。例如,您可以指定s -函数依赖的源文件,这些源文件位于包含生成的s -函数可执行文件的文件夹之外的其他文件夹中。有关详细信息,请参见使用makecfg定制生成的s函数makefile(金宝app仿真软件编码器)使用遗留代码工具将外部代码导入外部代码的调用(金宝app仿真软件编码器)

Legacy_code('RTWMakecFG_GENED',规格生成一个rtwmakecfg.m基于数据结构的传统代码工具生成的S-函数的文件,规格.如果你使用金宝appSimulink编码器要从Simulink模型中生成代码,可以使用此选项为s金宝app函数构建过程指定其他项,如源文件夹、预处理器宏和链接对象。例如,您可以指定s -函数依赖的源文件,这些源文件位于包含生成的s -函数可执行文件的文件夹之外的其他文件夹中。有关详细信息,请参见使用rtwmakecfg。m API来定制生成的makefile(金宝app仿真软件编码器)使用遗留代码工具将外部代码导入外部代码的调用(金宝app仿真软件编码器)

legacy_code(“backward_compatibility”)将使用“遗留代码工具”的语法自动更新为本参考页中描述的受支持的语法金宝app使用遗留代码工具集成C函数

输入参数

规格

具有以下字段的结构:

函数的名字

SFunctionName(必选)-一个字符向量,指定由遗留代码工具生成的s函数的名称。

定义遗留代码工具功能规范

  • InitializeConditionsFcnSpec- 一个非空字符向量,指定S函数调用初始化和重置状态的函数。您必须使用Simulink软件可以解释的令牌来声明此函数金宝app声明遗留代码工具功能规范

  • outputfcnspec.- 一个非空字符向量,指定每个时间步骤的S函数调用的函数。您必须使用Simulink软件可以解释的令牌来声明此函数金宝app声明遗留代码工具功能规范

  • StartFcnSpec-一个字符向量,指定s函数开始执行时调用的函数。这个函数可以访问s函数的参数参数和工作数据。您必须使用Simulink软件可以解释的令牌来声明此函数金宝app声明遗留代码工具功能规范

  • TerminateFcnSpec- 一个字符向量,指定S函数调用终止执行时的函数。这个函数可以访问s函数的参数参数和工作数据。您必须使用Simulink软件可以解释的令牌来声明此函数金宝app声明遗留代码工具功能规范

定义编译资源

  • 头文件- 指定编译所需的标题文件的文件名的字符向量的单元格数组。

  • 源文件—指定编译所需源文件的字符向量单元数组。可以使用绝对路径名或相对路径名指定源文件。

  • hostlibfiles.- 指定主机编译所需的库文件的字符向量的单元格数组。您可以使用绝对或相对路径名称指定库文件。

  • TargetLibFiles—字符向量的单元格数组,指定目标(即独立)编译所需的库文件。您可以使用绝对或相对路径名称指定库文件。

  • IncPaths—字符向量的单元格数组,指定包含头文件的目录。可以使用绝对路径名或相对路径名指定目录。

  • srcPaths.- 指定包含源文件的目录的字符向量的单元格数组。可以使用绝对路径名或相对路径名指定目录。

  • LibPaths—字符向量的单元格数组,指定包含主机和目标库文件的目录。可以使用绝对路径名或相对路径名指定目录。

指定采样时间

采样时间- 以下之一:

  • “继承”(默认) - 从源块继承采样时间。

  • '参数化'- 采样时间表示为可调参数。生成的代码可以通过调用MEX API函数来访问该参数,例如mxGetPrmxGetData

  • 修复 - 您明确指定的采样时间。有关如何指定采样时间的信息,请参阅指定样品时间

如果指定此字段,则必须最后指定。

定义功能选项

选项- 控制S函数选项的结构。结构的字段包括:

  • canBeCalledConditionally—指定s函数设置的逻辑值ss_option_can_be_called_conditionsally选择。默认值为true (1).

  • convertNDArrayToRowMajor—指定矩阵在以列为主的格式和以行为主的格式之间自动转换的逻辑值。列主格式由MATLAB、Simulink和生成的代码使用。金宝appc使用row-major格式。缺省值为错误的0).如果当前指定该选项的以前版本,convert2DMatrixToRowMajor,函数自动指定新的convertNDArrayToRowMajor选择。

    请注意

    此选项不支持复杂数据的2-D矩阵。金宝app

  • isMacro—指定遗留代码是否为C宏的逻辑值。缺省值为false (0).

  • isVolatile—指定s函数设置的逻辑值ss_option_nonvolatile.选择。默认值为true (1).

  • 语言—指定两者之一的字符向量“C”“c++”作为遗留代码工具将生成的s函数的目标语言。缺省值是“C”

    请注意

    遗留代码工具可以与C ++函数进行界面,但不是C ++对象。在周围的工作,看遗留代码工具限制在Simuli金宝appnk文档中。

  • outputsConditionallyWritten—一个逻辑值,指定遗留代码是否有条件地写入输出端口。如果真正的,生成的s函数指定与每个输出端口相关联的内存不能被覆盖,并且是全局的(SS_NOT_REUSABLE_AND_GLOBAL).如果错误的,与每个输出端口相关联的内存可重用,并且是本地的(ss_reusable_and_local.).缺省值是错误的0).有关详细信息,请参见ssSetOutputPortOptimOpts

  • singleCPPMexFile—逻辑值,如果真正的,指定生成的代码:

    • 要求您生成并管理INLINED的S函数,仅为一个文件(. cpp)而不是两个(.c.tlc).

    • 按照模型配置参数的要求,维护模型代码风格(括号的使用级别以及表达式中操作数顺序和if语句中条件表达式的保存)。

    缺省值是错误的

    限制

    您不能设置singleCPPMexFile字段真正的如果

    • Options.language =“c++”

    • 对象使用下列Simulink对象之一金宝appIsAlias财产设定为真正的

      • 金宝appsimulink.bus.

      • 金宝app仿真软件。AliasType

      • 金宝app仿真软件。NumericType

    • 遗留代码工具功能规范包括一个void *void * *表示状态参数的标量工作数据

    • 头文件遗留代码工具结构的字段指定多个头文件

  • 金宝appsupportsMultipleExecInstances—一个逻辑值,指定是否包含对ss金宝appsupportsmultipleexecinstances.函数。缺省值是错误的0).

  • 金宝appsupportcodereuseacrodsmodels.—一个逻辑值,指定生成的s函数是否可以在模型引用层次结构中重用。如果真正的时,生成的s函数包含ssSet金宝appSupportedForCodeReuseAcrossModels函数调用。代码生成器生成s函数的代码slprj \ ert \ _sharedutils文件夹中。

  • 金宝appsupportCoverage- 指定生成的S函数是否必须与模型覆盖范围兼容的逻辑值。缺省值是错误的0).

  • 金宝appsupportCoverageAndDesignVerifier—一个逻辑值,指定生成的s函数是否必须与Model Coverage兼容金宝app仿真软件设计校验™.缺省值是错误的0).

  • USETLCWithacel.—指定s函数设置的逻辑值ss_option_use_tlc_with_accelerator.选择。默认值为true (1).

型号名称

Simulink模型的名称,金宝app当您指定时,遗留代码工具将插入所生成的屏蔽s函数块legacy_code动作角色向量'slblock_generate'.如果忽略此参数,则该块将出现在一个空的模型编辑器窗口中。

介绍了R2006b