文件

从模型和生成的代码呼叫外部C代码

通过使用遗留代码工具来调用现有的,外部函数或从生成的代码。

学习如何:

  • 评估C功能作为Simulink®模型仿真的一部分。金宝app

  • 从您从模型生成的代码中调用C函数。

有关示例模型的信息,请参阅从嵌入式系统的控制算法生成C代码

更换过程

打开示例模型,RTWDEMO_PCG_EVAL_P4

对于许多基于模型的设计应用,除了Simulink®模型之外,设计还包括一组已测试和验证的现有C功能。金宝app您可以将这些功能集成到Simulink®模型中并生成使用该功能的代码。金宝app

在此示例中,您可以创建一个调用现有C函数的自定义Simulink®块。金宝app然后,您将块包含在模型中,并通过Simulink®中的模型仿真测试整个系统。金宝app

在示例模型中,您可以使用对现有C功能的呼叫替换PI控制器中的查找块(Lookup Tables)。该函数在文件中定义简单的简单

看法简单的

看法简单

创建调用C函数的块

要指定对现有C函数的调用,请使用S函数块。您可以使用遗留代码工具自动创建S函数块。在该工具中,您首先为您的现有C函数指定一个接口。然后,该工具使用该接口来创建S函数块。

使用遗留代码工具为现有C函数创建S函数块简单的

1。创建一个结构以包含函数接口的定义。

def = letacacy_code('初始化'

您可以使用该结构def要将功能界面定义到现有C代码。

2。填充结构的字段。

3.创建S函数。

lefacy_code('sfcn_cmex_generate',def)

4.编译S函数。

lefacy_code('编译',def)

5。创建S函数块。

lefacy_code('slblock_generate',def)

生成的S函数块调用C函数简单的。您现在可以在模型中使用此S函数块。

6。创建TLC文件。

lefacy_code('sfcn_tlc_generate',def)

此命令创建一个tlc文件,它是s函数的组件,它指定如何为块生成代码。

通过模拟验证外部代码

在Simulink®模型中集成现有C代码时,验证生成的S函数块。金宝app

要验证查找块的替换,请比较查找块产生的模拟结果,其中包含新的S函数块产生的结果。

1。打开验证模型。

  • 正弦波块从[-2:2]产生输出值。

  • 查找表的输入范围来自[-1:1]。

  • 查找表输出输入的绝对值。

  • 查找表遍历输入限制的输出。

2。运行验证模型。

该图显示了验证结果。现有的C代码和Simulink®表块会产生相同的输出值。金宝app

验证C代码作为Simulink®模型的一部分金宝app

在将现有的C函数代码验证为独立组件后,验证模型中的S函数。要完成验证,请使用测试线束模型。

1。打开测试线束。

2。运行测试线束。

仿真结果匹配金色值。

从生成的代码调用C函数

代码生成器使用TLC文件处理像任何其他块的S函数块。代码生成器可以实现表达折叠使用S函数块,将多个计算组合成单个输出计算的操作。

1。构建完整模型。

2。检查生成的代码pi_control_reusable.c.

生成的代码现在调用简单C函数。

这些数字显示C代码集成之前和之后生成的代码。在集成之前,代码调用生成的查找例程。集成后,生成的代码调用C函数简单

相关话题