嵌入式编码器

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

嵌入式编码器®为大规模生产中使用的嵌入式处理器生成可读、紧凑和快速的C和c++代码。它扩展MATLAB编码器™和Simulink编码器™与先进金宝app的优化精确控制生成的函数,文件和数据。这些优化提高了代码效率,并促进了与遗留代码、数据类型和校准参数的集成。您可以结合第三方开发工具来构建可执行文件,以便在嵌入式系统或快速原型板上进行交钥匙部署。

嵌入式编码器提供内置支持金宝appAUTOSARMISRA - C®, ASAP2软件标准。它还提供可跟踪性报告、代码文档和自动软件验证来支持金宝app做- 178IEC 61508.,ISO 26262.软件开发。嵌入式编码器代码是可移植的,可以在任何处理器上编译和执行。此外,Embedded Coder还提供了高级优化和设备驱动程序的支持金宝app包特定的硬件

了解公司如何使用Embedded Coder生成产品代码控制信号处理图像处理和计算机视觉,机器学习应用程序。

开始:

为代码生成进行配置

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

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

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

从Simulink的嵌入式编码器快速入门,你可以:金宝app

  • 为您的Simulink模型和子系统生成代码金宝app
  • 选择处理器和代码生成输出
  • 选择嵌入式编码器以优化RAM或执行速度

使用嵌入式编码器快速启动生产代码生成从Simulink。金宝app

选择目标

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

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

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

对于Si金宝appmulink,你指定一个准备运行的配置,包括:

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

AUTOSAR的目标- 生成支持开发的C代码和运行时界面金宝appAUTOSAR软件组件(需要AUTOSAR模块集)

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

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

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

使用自定义数据

Embedded Coder允许您定义和控制模型数据如何在生成的代码中显示,以促进软件集成。

对于MATLAB代码,嵌入式编码器支持所有MATLAB编码器数据金宝app定义,包括固定点对象和预定义存储类。

对于Si金宝appmulink模型,Embedded Coder支持以下金宝app数据字典和规范功能:

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

金宝appsimulink数据对象-提供预定义的存储类,包括constant、volatile、exported global、imported global、define directive、structure、bit field(包括bit-packed structure),以及get和set访问方法

模块封装数据对象-为通常在大规模生产中使用的高级数据对象提供预先配置的属性,例如用于校准或调优查找表的内存段

用户数据类型-允许您为复杂数据创建抽象类型,以便您可以精确地控制模型数据如何在生成的代码中出现、与任何遗留数据的接口以及扩展或替换Simulink内置类型金宝app

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

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

优化和包装代码

使用嵌入式编码器,可以控制功能边界,保留表达式并在多个块上应用优化,以进一步降低代码大小。数据通过全局变量或函数参数与生成的代码交换。您可以将生成的代码跟踪到模型中的块和信号。

用于从MATLAB代码和Simulink模型生成代码的嵌入式编码器选项使您能够:金宝app

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

其他嵌入式编码器优化和配置选项可用于Simulink模型,使您能够:金宝app

  • 使用宏进行预处理器编译生成代码变体
  • 控制每个生成文件的格式
  • 确定全局数据是如何定义和引用的
  • 指定评论的内容和放置

从Simulink模型生成SIMD代码。金宝app

注释、跟踪和记录代码

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

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

在Simu金宝applink中,Embedded Coder还提供了将高级需求作为代码注释插入到需求源(requires)的链接的能力金宝appSimulink要求™).Simulink代码生成的代码报告还包括金宝app代码接口描述、可跟踪性报告,以及生成的源文件和代码的显示。模型和生成的代码之间存在双向链接,便于在每一行代码及其对应的Simulink模型元素之间导航,包括子系统、块、MATLAB函数和代码,以及金宝app州流程®图表和转换。

金宝appSimulink代码生成报告,突出显示算法和实现之间的双向可追溯性。

执行和验证代码

嵌入式编码器使您可以将生成的代码合并到代码执行环境中。

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

通过Sim金宝appulink, Embedded Coder极大地扩展了Simulink Coder提供的实时执行框架。默认情况下,代码可以在有或没有实时操作系统(RTOS)的情况下执行,也可以在单任务、多任务、多核或异步模式下执行。您还可以使用嵌入式编码器(Embedded Coder for software-in-the-loop, SIL)和处理器(PIL)测试来验证代码执行结果。金宝app仿真软件TestTM金宝app仿真软件覆盖帮助自动化测试执行、结果比较和覆盖率分析。还支持代码执行概要分析。金宝app

生成主程序

嵌入式编码器根据您提供的信息,从而在实时环境中部署代码的信息生成可扩展的主程序。此功能允许您生成并构建模型中的完整自定义可执行文件。

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

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

执行SIL和PIL测试

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

执行由嵌入式编码器生成的代码的软件在环(SIL)和处理器在环(PIL)测试。

最新的特性

减少数据拷贝

为使用数据存储内存块在模型引用层次结构中存储大型总线结构的模型生成数据副本较少的代码

优化C ++以获得可重复使用的功能

为可重用函数生成c++代码,作为类中的私有方法,除非跨模型重用

SIMD向量化循环

使用SIMD内在机构为Untel和ARM®处理器的环保循环和数组

SIL / PIL Manager

使用循环(SIL)和循环处理器(PIL)模拟执行一键式背对背测试

代码视图中的代码覆盖范围

在代码视图中查看SIL和PIL测试的代码覆盖结果

象征性的维度

使用C动作语言在状态流图中使用符号维度

通过XCP和第三方工具进行校准和监控

通过ASAM MCD-1 XCP通信通金宝app道和第三方校准工具,生成支持参数调谐和信号监控的代码,例如ETAS印度和矢量点心

PX4自动驾驶支持嵌入式编码器金宝app

使用Cygwin作为Windows上推荐的工具链来构建和部署Pixhawk自动驾驶系统的算法

发布说明有关这些功能的详细信息和相应的功能。

编码器峰会

现场工程师和开发人员展示了软件设计、嵌入式代码生成等新特性。