Simulink Coder

在实时环境中执行代码

Simulink Coder 提供了实时执行生成的代码并将其合并到用户执行环境中的完整框架。 它根据用户在模型中指定的周期采样次数生成单采样率或多采样率代码。

执行模式

可使用或不使用 RTOS,在单任务、多任务或异步模式下部署代码。

单任务模式

在单任务模式下,简单的调度程序以单线程执行来调用生成的代码,防止不同速率之间的抢占。

多任务模式

在多任务模式下,通过确定性单调速率调度程序调用生成的代码,允许不同速率之间的抢占。在裸机环境中以嵌套中断来抢占代码。在 RTOS 环境中则使用任务优先级和任务抢占。

异步模式

在异步模式下,使用 Simulink S 函数指定非周期性采样率,即异步采样率。 Simulink Coder 将这些采样率转换为用户执行环境所需的代码。用户为硬件中断之类的事件建模并生成代码,然后作为独立的任务触发各子系统。 可以使用所含的异步块库作为模板,以创建适用于其他环境的库。

实时部署

Simulink 和 Simulink Coder 为实时部署提供了一整套独立于目标的功能。其中包括:

  • 可以为模型中的每个采样率指定的任务优先级
  • 产品级质量计数器以及计算绝对时间和实耗时间的计时器
  • 采样率转移块,用于指定各采样率之间的数据传输机制(例如信号量、互斥和双缓冲),从而使您可以权衡数据完整性、确定性和性能
  • 对合并每种采样率的错误处理逻辑进行超限检测

现有代码集成

通过合并已有的用于仿真和代码生成的自定义 C、Fortran、Ada 和 C++ 代码,可以自定义生成的代码及其运行时环境。 Simulink Coder 中的自定义工具包括目标语言编译器 (TLC)、自定义代码块、模板联编文件 (makefile)、构建过程 API 和 S 函数生成器。 使用代码继承工具 (Legacy Code Tool),可以快速地将现有 C 和 C++ 函数集成到 Simulink 模块中,这对于集成通常用于嵌入式系统的离散时间代码特别有用。

下一页: 调优参数和记录数据

试用 Simulink Coder

获取试用版软件

包括 Eclipse ™ 的免费实用教程

索取教程