代码接口和代码接口设定
生成的应用程序和组件代码通过这些生成的代码接口与目标环境服务进行交互:
目标软件(如调度器)可以调用的入口函数
对目标软件的函数调用,例如平台服务函数
下图显示目标执行环境中组件和平台服务之间的交互示例。

箭头指示函数接口调用的方向。目标函数调度器调用组件入口函数:Initialize、F1、F2 和 Terminate。该组件调用目标平台服务来读取输入、写入输出、在可调用函数之间传输数据以及获取时间值。
为了使代码生成器生成能够与目标环境服务交互的代码,您必须通过使用以下各项的组合来使代码生成器了解服务接口要求:
顶层模型中的模型元素
代码接口配置
将模型元素与代码接口配置中定义的接口相关联的代码映射
下图显示以下各项之间的关系:
目标环境服务接口要求(部署流程的输入)
代码接口设定(如何使用 Simulink® 和 Embedded Coder® 工具将目标环境接口要求传达给代码生成器)
目标环境代码集成和执行(您对代码生成器输出所做的处理)

通过将表示接口的模型元素(如函数以及根级输入端口和输出端口)映射到代码接口配置文件中定义的代码接口,告知代码生成器如何生成 C 或 C++ 接口代码。例如,在 Simulink 编辑器中,您可以通过使用根级 Inport 或 In Bus Element 模块为从目标平台接收方服务读取数据的接口建模。对于应用程序部署,您可能还需要包含处理数据通信要求的自定义模块。为组件部署设计顶层模型时,请遵循生成代码的建模规范中推荐的建模规范。
代码生成器支持两种类型的代码接口:数据和服务。您可以使用代码映射编辑器或代码映射编程接口在 Embedded Coder 中设置映射。
对于 C 代码接口:
代码映射反映在 Embedded Coder 字典中定义的代码接口选择项。对于工程或组织,有人定义与目标执行环境的接口要求一致的代码接口配置。然后,对于您打算部署到该环境中的每个模型,您需要将模型与该配置相关联。
您可以根据工程模型的部署目标来创建和应用数据或服务代码接口配置。对于这两种类型的代码接口,您将每种类型的可调用入口函数接口配置为函数自定义模板,该模板定义代码生成器如何为函数生成代码。
下表比较您可以在 Embedded Coder 字典中定义的两种类型的 C 代码接口。
数据接口 | 在 R2022b 中: 服务接口 |
|---|---|
| 用于应用程序部署。 | 用于组件部署。 |
| 您将每个接口配置为存储类,它指定数据元素在生成代码中的外观和位置。存储类支持直接访问数据通信。 | 对于每个接口,您为生成的代码指定函数原型信息和数据通信方法要求。您可以根据目标平台的要求,为直接访问、执行期外或执行期间的数据通信配置接口。 |
| 代码生成器在生成代码时应用约束,以便更轻松地集成代码以用于特定目标环境。有关约束的详细信息,请参阅Service Interface Constraints and Limitations。 |
如果您需要使用数据接口来配置用于部署的组件,请参阅 Embedded Coder 支持包的组件部署规范。如果您根据规范设计和配置组件模型,代码生成器会生成符合特定目标平台的接口要求的代码。
对于 C++ 代码生成,您可以配置模型来使用数据代码接口。您不需要创建代码接口配置。在 Embedded Coder 中,您可以将在顶层模型中表示的函数映射到方法原型。您可以将在顶层模型中表示的数据元素映射到数据可见性和成员访问函数设置。