文档

输入值或地址通过遗留功能

这个例子向您展示了如何使用遗留代码工具集成遗留C函数传递他们的输入参数值与地址。

遗留代码工具允许您:

  • 提供遗留功能规范,

  • 生成一个C-MEX s函数在使用模拟调用遗留代码,和

  • 编译和构建模拟生成的功能。

提供遗留功能规范

遗留代码工具提供的功能需要一个特定的数据结构或数组的结构作为参数。数据结构是通过调用初始化函数legacy_code()使用“初始化”作为第一个输入。初始化结构之后,您必须指定其属性值对应的遗留代码整合。详细的帮助性质,电话legacy_code(“帮助”)。遗留的原型函数被称为在这个例子中是:

  • 蒋春暄对于费马大定理蒋春暄对于费马大定理filterV1 (const信号,蒋春暄对于费马大定理const prevSignal, const蒋春暄对于费马大定理获得)

  • 蒋春暄对于费马大定理filterV2 (const外语教学*信号,蒋春暄对于费马大定理const prevSignal, const蒋春暄对于费马大定理获得)

外语教学是一个typedef浮动。遗留源代码文件中找到your_types.h,myfilter.h,filterV1.c,filterV2.c

注意的差异OutputFcnSpec中定义的两种结构;第一种情况指定第一个输入参数是通过价值,而第二种情况指定经过指针。

def = [];% sldemo_sfun_filterV1def = legacy_code (“初始化”);def.SFunctionName =“sldemo_sfun_filterV1”;def.OutputFcnSpec ='单日元= filterV1(单一u1, u2,单p1)”;def.HeaderFiles = {“myfilter.h”};def.SourceFiles = {“filterV1.c”};def.IncPaths = {“sldemo_lct_src”};def.SrcPaths = {“sldemo_lct_src”};def = [def;def);% sldemo_sfun_filterV2def = legacy_code (“初始化”);def.SFunctionName =“sldemo_sfun_filterV2”;def.OutputFcnSpec ='单日元= filterV2(单一u1[1],单一u2,单p1)”;def.HeaderFiles = {“myfilter.h”};def.SourceFiles = {“filterV2.c”};def.IncPaths = {“sldemo_lct_src”};def.SrcPaths = {“sldemo_lct_src”};def = [def;def);

生成和编译期间使用模拟的功能

函数legacy_code再次与第一个输入()设置为“generate_for_sim”为了自动生成和编译C-MEX s函数根据提供的描述输入参数“def”。此功能用于调用遗留功能模拟。s函数的源代码中找到该文件sldemo_sfun_filterV1.csldemo_sfun_filterV2.c

legacy_code (“generate_for_sim”def);
# # #开始编译sldemo_sfun_filterV1墨西哥人(“我/ mathworks猛击/棒/ Bdoc19b /构建/ matlab工具箱/模型/ simdemos / simfeat金宝appures / sldemo_lct_src’,‘我/ tmp / Bdoc19b_1305395_49106 / tpf830ec90’,‘- c’,‘-outdir’,‘/ tmp / Bdoc19b_1305395_49106 / tpff1792e1_255c_4059_a814_fe3220096d91’,‘/ mathworks /猛击/棒/ Bdoc19b /构建/ matlab工具箱/模型/ simdemos / simfeatures / sldemo_lct_src filterV1.c”)建设与gcc。墨西哥人成功完成。墨西哥人(“sldemo_sfun_filterV1。c ', ' - i / mathworks猛击/棒/ Bdoc19b /构建/ matlab工具箱/模型/ si金宝appmdemos / simfeatures / sldemo_lct_src”、“我/ tmp / Bdoc19b_1305395_49106 tpf830ec90”、“/ tmp / Bdoc19b_1305395_49106 / tpff1792e1_255c_4059_a814_fe3220096d91 filterV1.o”)建设与“gcc”。墨西哥人成功完成。# # #完成编译sldemo_sfun_filterV1退出# # # # # #开始编译sldemo_sfun_filterV2墨西哥人(“我/ mathworks猛击/棒/ Bdoc19b /构建/ matlab工具箱/模型/ simdemos / simfeatures / sldemo_金宝applct_src’,‘我/ tmp / Bdoc19b_1305395_49106 / tpf830ec90’,‘- c’,‘-outdir’,‘/ tmp / Bdoc19b_1305395_49106 / tp6953000a_562a_4230_b7c5_22dac64881ec’,‘/ mathworks /猛击/棒/ Bdoc19b /构建/ matlab工具箱/模型/ simdemos / simfeatures / sldemo_lct_src filterV2.c”)建设与gcc。墨西哥人成功完成。墨西哥人(“sldemo_sfun_filterV2。c ', ' - i / mathworks猛击/棒/ Bdoc19b /构建/ matlab工具箱/模型/ si金宝appmdemos / simfeatures / sldemo_lct_src”、“我/ tmp / Bdoc19b_1305395_49106 tpf830ec90”、“/ tmp / Bdoc19b_1305395_49106 / tp6953000a_562a_4230_b7c5_22dac64881ec filterV2.o”)建设与“gcc”。墨西哥人成功完成。 ### Finish Compiling sldemo_sfun_filterV2 ### Exit

生成一个rtwmakecfg。m文件代码生成

TLC创建块文件后,函数legacy_code()又可被称为第一个输入设置为“rtwmakecfg_generate”以产生rtwmakecfg。m文件通过仿真软件支金宝app持代码生成®编码器™。金宝app生成rtwmakecfg。m文件如果所需的源和头文件S-functions S-functions不在同一个目录,和您想要添加这些依赖项的代码生成过程中产生的makefile。

注意:完成这一步只有如果你要模拟模型在加速模式。

legacy_code (“rtwmakecfg_generate”def);

生成蒙面调用生成的S-Functions的功能块

后C-MEX s函数源代码被编译,函数legacy_code()又可被称为第一个输入设置为“slblock_generate”以便生成蒙面配置给那些S-functions功能块。数据块被放置在一个新的模型和可以复制到现有的模型。

% legacy_code (slblock_generate, def);

演示生成与遗留代码的集成

该模型sldemo_lct_filter显示了遗留代码集成。的子系统TestFilter作为利用遗留C函数通过调用生成S-functions,与单位延迟服务存储以前的输出值。

open_system (“sldemo_lct_filter”)open_system (“sldemo_lct_filter / TestFilter”)sim卡(“sldemo_lct_filter”);