主要内容

C Caller

Simulink 中集成 C 代码

  • C Caller block

库:
Simulink / User-Defined Functions

描述

C Caller 模块将您的外部 C 代码集成到 Simulink® 中。此模块导入并列出您的外部 C 代码中的函数,并使您能够选择已解析的 C 函数以集成到您的 Simulink 模型中。C Caller 模块独立支持代码生成。对于更复杂的模型,代码生成取决于您的 Simulink 模型的能力。

要使用 C Caller 模块,请使用配置参数下的仿真目标定义您的源代码和任何支持文件。然后,使用库浏览器 > Simulink > 用户定义函数C Caller 模块置于 Simulink 画布上。要更改定义的源代码文件及其依赖关系,请通过点击模块对话框中的 Configure custom code settings button. 转至配置参数中的仿真目标选项卡。在更改源代码或任何依赖关系后,请通过点击模块对话框上的 Refresh custom code button. 刷新函数列表。要浏览源代码中的函数定义,请使用 Go to function button. 图标访问您的源文件。

您可以使用 addGlobalArg 函数将自定义代码中的全局变量作为全局参量添加到模块,或使用 deleteGlobalArg 函数从模块中删除全局参量。 (自 R2024b 起)

示例

端口

输入

全部展开

输入端口数量及其名称通过您的外部 C 代码中的选定函数推断。要向 C Caller 模块提供数据,请将输入信号连接到输入端口。

输入标签与输入端口名称相同,除非通过从模块对话框编辑端口设定下的标签列对其进行了更改。如果您将标签重命名为输入端口,C Caller 模块会更改端口名称。

对于输入变量,您可以使用作用域列将输入作用域更改为参数或常量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

输出

全部展开

输出端口数量及其名称通过您的外部 C 代码中的选定函数推断。要从您的 C Caller 模块发送数据,请将模块连接到您的 C Caller 模块的输出端口。

输出端口标签与输出端口名称相同,除非您通过从模块对话框编辑端口设定下的标签列对其进行了更改。如果您将标签重命名为输入端口,C Caller 模块会更改端口名称。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus | string

参数

全部展开

C Caller 模块解析的函数的名称,指定为字符向量或字符串标量。有关可用函数的列表,请参阅可用函数

可调: Yes

编程用法

模块参数FunctionName
类型:字符向量或字符串标量

myFunctionName = get_param(gcb,"FunctionName")
myFunctionName =

    'mean_filter'

端口属性,指定为表。该表指示模块的每个输入和输出元素的属性。如果作用域是输入,您可以将此变量修改为参数常量。这些属性包括

名称 - 演示从源代码推断的变量名称。

粗体参量名称指示端口或参数是全局参量。

作用域 - 指示源代码中变量的角色。如果变量是 C Caller 模块源代码中的输入参量,您可以将作用域类型更改为常量或参数。如果变量是源代码中的输出参量,您无法更改作用域类型。

标签 - 为 Simulink 模型的输入或输出变量加标签。您可以使用此表更改标签。如果作用域是参数,请在此字段中输入参数名称。如果作用域是常量,则输入常量值。

类型 - 指示来自端口的数据类型。

大小 - 指示输入和输出数据的大小。

名称、作用域、类型和大小从您的源代码推断。

编程用法

模块参数FunctionPortSpecification
类型:FunctionPortSpecification 对象

可映射到 C Caller 模块的所有可用函数的列表,指定为元胞数组。

您模型中的 C Caller 模块导入外部源代码中的所有函数,并在模块对话框上的函数名称旁边显示函数名称。要在模块中选择和使用函数,请确认函数名称出现在可用函数表中。如果其中一个函数缺失,请通过点击模块对话框上的 Refresh custom code button. 重新加载源代码。要更改函数名称,请修改您的源代码并点击刷新按钮重新加载。

编程用法

模块参数AvailableFunctions
类型:元胞数组

allAvailableFunctions = get_param(gcb, "AvailableFunctions")
allAvailableFunctions =

  1×1 cell array

    {'add'}

采样周期,以秒为单位指定。请参阅 采样时间的类型指定采样时间

编程用法

模块参数SampleTime
类型:字符串标量或字符向量
默认值"-1"

模块特性

数据类型

Booleana | busa | doublea | enumerateda | fixed pointa | integera | singlea | stringa

直接馈通

多维信号

a

可变大小信号

过零检测

a 实际支持的数据类型或功能取决于模块实施。

详细信息

全部展开

扩展功能

全部展开

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2018b 中推出

全部展开