嵌入式编码器

嵌入式编码器

生成针对嵌入式系统优化的C和c++代码

开始:

代码生成配置

为Embedded Coder配置代码生成设置®,你使用MATLAB Coder应用程序MATLAB®或Simulink的嵌入式编码器快速入门。您还可以直接使用MATLAB命令和脚本配置每个设置。

从MATLAB Coder应用程序,你可以:

  • 为MATLAB文件和函数生成代码
  • 选择处理器和代码生成输出
  • 选择嵌入式编码器优化

从Simulink的嵌入式编码器快速入门,您可以:

  • 为您的Simulink模型和子系统生成代码
  • 选择处理器和代码生成输出
  • 选择嵌入式编码器以优化RAM或执行速度
使用嵌入式Coder快速启动从Simulink中快速启动生产代码生成。

使用嵌入式Coder快速启动从Simulink中快速启动生产代码生成。

选择目标

Embedded Coder使用配置对象和系统目标文件将您的MATLAB代码和Simulink模型转换为生产质量的源代码和可执行文件。

对于MATLAB,您可以指定以下输出目标之一:

  • MEX-file
  • C / c++静态库
  • C / c++可执行文件

对于Simulink,指定一个准备运行配置,包括:

嵌入式实时目标-生成ANSI/ISO C, c++和封装的c++代码与浮点和定点数据,以在几乎任何生产处理器上高效实时执行

AUTOSAR的目标-生成支持开发的C代码和运行时接口AUTOSAR软件组件(需要AUTOSAR Blockset)

共享库的目标-生成用于主机平台执行的代码的共享库版本,或者作为Windows®动态链接库(.dll)文件或UNIX®共享对象(.so)文件

此外,MathWorks和第三方提供了扩展Embedded Coder的MATLAB插件来支持特定的硬件包括手臂®,英特尔®意法半导体,NXP™®,以及德州仪器™。

使用硬件支持包在嵌入式设备上快速部署生成的代码。

使用硬件支持包在嵌入式设备上快速部署生成的代码。

使用自定义数据

嵌入式Coder使您能够定义和控制模型数据在生成代码中的显示方式,以促进软件集成。

对于MATLAB代码,嵌入式Coder支持所有MATLAB Coder数据定义,包括定点对象和预定义的存储类。

对于Simulink模型,Embedded Coder支持以下数据字典和规范功能:

嵌入式编码字典-允许您查看和自定义代码定义,包括函数接口、存储类和内存部分

模型数据对象—提供预定义的存储类,包括常量、volatile、导出全局、导入全局、定义指令、结构、位域(包括位包装结构)、get和set访问方法

模块打包数据对象—为通常用于大规模生产的高级数据对象提供预配置的属性,例如用于校准或调优查找表的内存段

用户数据类型-允许您为复杂数据创建抽象类型,这样您就可以精确地控制模型数据在生成代码中的显示方式,与任何遗留数据的接口,以及增强或替换Simulink内置类型

Embedded Coder允许您访问Simulink中的ASAP2数据交换文件,使您能够使用ASAP2标准导出具有复杂数据定义的模型数据。您可以修改内置功能以生成其他数据交换机制。

使用嵌入式编码器字典来定义和控制模型和数据在生成代码中的显示方式。

使用嵌入式编码器字典来定义和控制模型和数据在生成代码中的显示方式。

优化和包装代码

使用Embedded Coder,您可以控制函数边界,保留表达式,并对多个块应用优化,以进一步减少代码大小。数据通过全局变量或函数参数与生成的代码交换。您可以将生成的代码跟踪到模型中的块和信号。

从MATLAB代码和Simulink模型生成代码的嵌入式Coder选项使您能够:

  • 为数学函数和运算符生成特定于处理器的代码
  • 重用用于导出到遗留环境或外部环境的代码
  • 消除不必要的初始化、终止、日志记录和错误处理代码
  • 从纯整数应用程序中删除浮点代码

Simulink模型提供了额外的嵌入式编码器优化和配置选项,使您能够:

  • 使用宏生成用于预处理器编译的代码变体
  • 控制每个生成文件的格式
  • 确定如何定义和引用全局数据
  • 指定注释的内容和位置
从Simulink模型生成SIMD代码。

从Simulink模型生成SIMD代码。

注释、跟踪和记录代码

Embedded Coder提供了几个功能,用于检查MATLAB文件和函数或Simulink模型和子系统的生成代码。使用这些功能,您可以:

  • 生成描述代码模块、函数接口和静态代码度量的代码报告
  • 生成的全局数据、数据类型和函数的控件标识符格式
  • 在生成的代码中包含MATLAB代码作为注释,包括函数帮助文本

在Simulink中,Embedded Coder还提供了将高级需求作为代码注释插入的能力,该代码注释带有到需求源的链接要求工具箱™).用于Simulink代码生成的代码报告还包括代码接口描述、可追溯性报告以及生成的源文件和代码的显示。模型和生成的代码之间存在双向链接,使得在每一行代码及其对应的Simulink模型元素(包括子系统、块、MATLAB函数和代码)之间导航变得容易Stateflow®图表和转换。

Simulink代码生成报告突出了算法和实现之间的双向可追溯性。

Simulink代码生成报告突出了算法和实现之间的双向可追溯性。

执行和验证代码

嵌入式Coder使您能够将生成的代码合并到代码执行环境中。

在MATLAB中,由嵌入式编码器生成的代码使用与MATLAB编码器提供的相同的执行框架执行。

通过Simulink, Embedded Coder显著扩展了Simulink Coder提供的实时执行框架。默认情况下,代码可以在使用实时操作系统(RTOS)的情况下执行,也可以在单任务、多任务、多核或异步模式下执行。您还可以使用嵌入式Coder对软件在循环(SIL)和处理器在循环(PIL)测试验证代码执行结果。仿真软件测试™而且仿真软件覆盖帮助自动化测试执行、结果比较和覆盖分析。还支持代码执行分析。

生成主程序

Embedded Coder根据您提供的用于在实时环境中部署代码的信息生成可扩展的主程序。该功能允许您从模型生成和构建完整的自定义可执行文件。

执行多速率、多任务和多核代码

嵌入式编码器使用模型中指定的周期采样时间生成单速率或多速率代码。对于多速率多任务模型,它采用一种称为速率分组的策略,该策略为基本速率任务和模型中的每个子任务生成单独的函数。您还可以使用Simulink并发执行建模为多核处理生成多线程代码。

执行SIL和PIL测试

Embedded Coder自动执行在Simulink中生成的代码,用于SIL测试,或在使用Simulink模拟模式或s函数块的嵌入式目标上执行PIL测试。仿真软件测试™帮助自动化测试执行,并将测试结果与来自原始模型的模拟结果进行比较。结构代码覆盖分析可以用来度量测试的完整性仿真软件覆盖或者与第三方工具集成。代码分析提供主机或目标处理器上的执行时间。

对Embedded Coder生成的代码执行软件在循环(SIL)和处理器在循环(PIL)测试。

对Embedded Coder生成的代码执行软件在循环(SIL)和处理器在循环(PIL)测试。

Baidu
map