文档

legacy_code

使用遗留代码工具

语法

legacy_code(“帮助”)
规格= legacy_code(初始化)
legacy_code(“sfcn_cmex_generate”,规格
legacy_code(“编译”,规格compilerOptions
legacy_code(“generate_for_sim”,规格modelname
legacy_code(“slblock_generate”,规格modelname
legacy_code(“sfcn_tlc_generate”,规格
legacy_code(“sfcn_makecfg_generate”,规格
legacy_code(“rtwmakecfg_generate”,规格
legacy_code(“backward_compatibility”)

描述

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

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

  • 一个rtwmakecfg.m文件,您可以自定义以指定位于与生成的s -函数不同目录中的依赖源文件和头文件

legacy_code(“帮助”)显示使用遗留代码工具的说明。

规格= legacy_code(初始化)初始化遗留代码工具数据结构,规格,它注册现有C或c++代码的特征和遗留代码工具生成的s函数的属性。

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

legacy_code(“编译”,规格compilerOptions根据数据结构编译并链接遗留代码工具生成的s函数,规格,以及您可能指定的编译器选项。控件必须支持编译器选项万博1manbetx墨西哥人(MATLAB)功能。

legacy_code(“generate_for_sim”,规格modelname生成、编译和链接s函数只需一步。如果Options.useTlcWithAccel“遗留代码工具”数据结构的字段设置为逻辑1 (真正的),该函数还生成一个TLC文件,用于加速模拟。

legacy_code(“slblock_generate”,规格modelname为遗留代码工具生成的基于数据结构的s函数生成屏蔽s函数块,规格.该块出现在Simulink中万博1manbetx®指定的模型modelname.如果你省略了modelname,该块出现在一个空的模型编辑器窗口中。

legacy_code(“sfcn_tlc_generate”,规格根据数据结构为遗留代码工具生成的s函数生成TLC文件,规格.如果你想:

  • Force Accelerator模式在Simuli万博1manbetxnk软件中使用TLC内联代码生成s函数。的描述ssSetOptionsSimStruct函数和SS_OPTION_USE_TLC_WITH_ACCELERATORs函数选项获取更多信息。

  • 使用万博1manbetx仿真软件编码器™软件从Simulink模型生成代码。万博1manbetx有关更多信息,请参见使用遗留代码工具将对外部代码的调用导入生成的代码中(万博1manbetx仿真软件编码器)。

legacy_code(“sfcn_makecfg_generate”,规格生成一个sFunction_makecfg.m遗留代码工具根据数据结构生成的s函数规格.此选项仅在使用万博1manbetx仿真软件编码器软件从Simulink模型生成代码。万博1manbetx有关更多信息,请参见使用makecfg为S-Functions定制生成的makefile文件(万博1manbetxSimulink Coder)和使用遗留代码工具将对外部代码的调用导入生成的代码中(万博1manbetx仿真软件编码器)。

legacy_code(“rtwmakecfg_generate”,规格生成一个rtwmakecfg.m遗留代码工具根据数据结构生成的s函数规格.此选项仅在使用万博1manbetx仿真软件编码器软件从Simulink模型生成代码。万博1manbetx有关更多信息,请参见使用rtwmakecfg。m API自定义生成的Makefiles(万博1manbetxSimulink Coder)和使用遗留代码工具将对外部代码的调用导入生成的代码中(万博1manbetx仿真软件编码器)。

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

输入参数

规格

一个包含以下字段的结构:

命名s函数

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

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

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

  • OutputFcnSpec-一个非空的字符向量,指定s函数在每个时间步调用的函数。声明此函数时,必须使用Simulink软件可以解释的令牌万博1manbetx声明遗留代码工具功能规范

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

  • TerminateFcnSpec-一个字符向量,指定s函数终止执行时调用的函数。这个函数只能访问s函数的参数。声明此函数时,必须使用Simulink软件可以解释的令牌万博1manbetx声明遗留代码工具功能规范

定义编译资源

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

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

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

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

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

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

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

指定采样时间

SampleTime-下列其中一项:

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

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

  • 固定-你明确指定的采样时间。有关如何指定采样时间的信息,请参见指定采样时间

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

定义s函数选项

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

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

  • isVolatile—指定s函数设置的逻辑值SS_OPTION_NONVOLATILE选择。缺省值为true (1).

  • canBeCalledConditionally—指定s函数设置的逻辑值SS_OPTION_CAN_BE_CALLED_CONDITIONALLY选择。缺省值为true (1).

  • useTlcWithAccel—指定s函数设置的逻辑值SS_OPTION_USE_TLC_WITH_ACCELERATOR选择。缺省值为true (1).

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

    请注意

    遗留代码工具可以与c++函数交互,但不能与c++对象交互。为了解决问题,请看遗留代码工具限制在Simuli万博1manbetxnk文档中。

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

    • 要求您生成和管理内联s -函数仅作为一个文件(. cpp)而不是两个(.c而且.tlc).

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

    缺省值为

    限制

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

    • Options.language =“c++”

    • 控件使用下列Simulink对象之一万博1manbetxIsAlias属性设置为真正的

      • 万博1manbetx仿真软件。公共汽车

      • 万博1manbetx仿真软件。AliasType

      • 万博1manbetx仿真软件。NumericType

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

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

  • 万博1manbetxsupportsMultipleExecInstances对象的调用ss万博1manbetxSupportsMultipleExecInstances函数。缺省值为0).

  • convertNDMatrixToRowMajor—一个逻辑值,指定矩阵在列主格式和行主格式之间的自动转换。列主格式被MATLAB、Simulink和生成的代码所使用。万博1manbetxc使用行-主行格式。缺省值为0).如果当前指定的是该选项的以前版本,convert2DMatrixToRowMajor时,函数自动指定newconvertNDMatrixToRowMajor选择。

    请注意

    此选项不支持复杂数据的2-D矩阵。万博1manbetx

  • 万博1manbetxsupportCoverage-指定生成的s函数是否必须与Model Coverage兼容的逻辑值。缺省值为0).

  • 万博1manbetxsupportCoverageAndDesignVerifier-一个逻辑值,指定生成的s函数是否必须与Model Coverage和兼容万博1manbetxSimulink设计验证器™.缺省值为0).

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

modelname

遗留代码工具要将指定时生成的万博1manbetx屏蔽s函数块插入其中的Simulink模型的名称legacy_code用动作字符向量“slblock_generate”.如果省略此参数,则块将出现在空模型编辑器窗口中。

在R2006b中引入

这个话题有用吗?