模型代码接口
R2026b要生成可与目标平台服务交互的代码,代码生成器必须了解目标平台接口要求。为此,第一步是通过包含特定模型元素在顶层模型中表示所需接口。例如,您可以通过使用根级 In Bus Element 或 Inport 模块对用于从目标平台接收方服务读取数据的接口进行建模。
下表列出了典型代码接口以及在顶层模型中表示它们的方式。
| 代码接口类型 | 模型元素或模式 |
|---|---|
| 可调用的基于速率的入口函数 | 配置为单任务或多任务执行的基于速率的模型中的模块,或在 Simulink 调度编辑器中设置为分区的模块 |
| 可调用的导出函数入口点 | 导出函数模型,使用 Function-Call Subsystem、函数调用 Model、Simulink Function、Message Triggered Subsystem 或 S-Function 模块定义函数 |
| 可调用的初始化函数入口点 | Initialize Function 模块 |
| 可调用的终止函数入口点 | Terminate Function 模块 |
| 调用目标平台接收方服务 | In Bus Element 或 Inport 模块 |
| 调用目标平台发送方服务 | Out Bus Element 或 Outport 模块 |
| 调用目标平台数据传输服务 | 连接交换数据并在生成代码中生成可调用函数的两个模块的信号线。可调用函数是目标环境软件可以调用的生成的入口函数。 |
| 访问目标平台非易失性内存 | Measurement service interface for persistent data, Initialize Function 和 Terminate Function 模块,或 Simulink Function 和 Function Caller 模块 |
| 在状态变量和根级输出变量之间重用内存 | 将状态变量建模为信号的函数环回模式,或对状态变量建模的 Delay 模块 |
| 调用目标平台计时器服务以获取绝对或已用时间值 | 限定作用域的 Simulink Function 模块(用于表示服务)和包含 Function Caller 模块的库模块(用于调用服务),或 Discrete Time Integrator 或 Weighted Sample Time 模块(适用于配置服务接口的模型,需要 Embedded Coder®)。 |
| 消息通信 | 直接连接到根级 Outport 模块的 Send 模块,以及直接连接到根级 Inport 模块的 Receive 模块 |
| 客户端-服务器通信 | Simulink Function 和 Function Caller 模块 |
| 可调参数和参数参量 | 存储在模型工作区中的参数对象 |
| 测量的数据 | 信号(模块的输出端口)、状态(模块上的状态)和 Datastore Memory 模块 |
| 自定义服务接口 | 自定义模块 |
以下主题提供有关不同接口类型的详细信息:
建模规范可能会有所帮助,具体取决于您的部署目标以及您如何为代码生成器配置代码接口。在某些情况下,您可能需要创建涉及创建自定义模块的自定义表示。
有关建模规范的信息,请参阅建模规范和模块用法、建模规范、生成代码的建模规范和 Embedded Coder 支持包的组件部署规范。
有关创建自定义模块的信息,请参阅自定义模块的代码生成。