嵌入式编码

产生用于嵌入式系统的优化的C和C ++代码

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

嵌入式编码器为金宝appAUTOSAR,MISRA - C®,以及ASAP2软件标准。它还提供了跟踪报告、代码文档和自动软件验证来支持金宝appDO-178,国际电工委员会61508,ISO 26262标准软件开发。嵌入式编码代码是便携式的,并且可以被编译并在任何处理器执行。此外,嵌入式编码提供支持的产品具有先进的优化和设备驱动程序金宝app特定的硬件.

了解企业如何生成生产代码与嵌入式编码器,用于控制,信号处理,图像处理和计算机视觉,机器学习应用。

入门:

配置以生成代码

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

从MATLAB编码器的应用程序,你可以:

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

从嵌入式编码快速入门Simulink中,您可以:金宝app

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

采用嵌入式编码快速启动从Simulink中的JumpStart产品代码生成。金宝app

选择目标

嵌入式编码器使用配置对象和系统目标文件到您的MATLAB代码和Simulink模型转化为产品质量的源代码和可执行文件。金宝app

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

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

对于Si金宝appmulink中,您所指定的现成运行的配置,其中包括一个:

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

AUTOSAR目标-生成支持金宝appAUTOSAR软件组件(需要AUTOSAR模块组)

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

此外,MathWorks和第三方提供了MATLAB附加组件,可以扩展嵌入式编码器以支持金宝app特定的硬件包括手臂®,英特尔®意法半导体,NXP™®,和德州仪器™.

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

使用自定义数据

嵌入式编码器使您能够定义和控制模型数据如何出现在生成的代码中,从而促进软件集成。

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

对于Si金宝appmulink模型,嵌入式编码支持以下数据字典和规范功能:金宝app

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

金宝appSimulink数据对象-提供预定义的存储类,包括常量、volatile、导出全局变量、导入全局变量、定义指令、结构、位域(包括位打包结构)、获取和设置访问方法

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

用户数据类型-允许您为复杂数据创建抽象类型,这样您就可以精确地控制模型数据如何出现在生成的代码中,与任何遗留数据交互,以及增强或替换Simulink内置类型金宝app

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

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

优化和打包代码

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

从MATLAB代码和Simulink模型生成代码嵌入式编码选项使您可以:金宝app

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

Simulink模型还提供了其他嵌入式编码器优化和配置选项,使您能够:金宝app

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

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

注释、跟踪和记录代码

嵌入式编码提供了检查生成的代码为您的MATLAB文件和函数或您的Simulink模型和子系统的几个功能。金宝app利用这些功能,您可以:

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

使用Sim金宝appulink,嵌入式编码还提供了插入高层次的需求与链接到需求的源代码注释的功能(需要金宝appSimulink要求™)。Simulink代码生成的代码报告还包括金宝app代码接口描述、可跟踪性报告以及生成的源文件和代码的显示。模型与生成的代码之间存在双向链接,使得在每一行代码及其对应的Simulink模型元素(包括子系统、块、MATLAB函数和代码)之间进行导航变得容易金宝app状态流®图表和过渡。

金宝appSimulink的代码生成报告,强调算法和实现之间的双向追溯。

执行和验证码

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

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

使用Sim金宝appulink,嵌入式编码显著扩展了Simulink的编码器提供的实时执行框架。默认情况下,代码可具有或不具有实时操作系统(RTOS)和在单任务,多任务,多芯,或异步模式中执行。您也可以使用嵌入式编码器,用于软件在环(SIL)和处理器在环(PIL)测试验证代码的执行结果。金宝appSimulink的TestTM金宝app仿真软件覆盖帮助自动化测试执行,结果比较,并覆盖分析。还支持执行代码分析分析。金宝app

生成主程序

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

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

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

执行SIL和PIL测试

嵌入式编码器使用Simulink仿真模式或S功能块在Simulink中自动执行生成的代码,以进行SIL测试或在嵌金宝app入式目标上执行PIL测试。金宝appSimulink的测试帮助自动执行测试,并将测试结果与原始模型中的模拟结果进行比较。可以使用金宝app仿真软件覆盖或与第三方工具的集成。代码分析分析提供主机或目标处理器的执行时间。

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

最新功能

减少数据拷贝

生成用少的数据拷贝代码使用数据存储内存块大的总线结构存储在一个模型引用层次模型

可重用函数的C++优化

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

SIMD矢量化的循环

使用SIMD内部函数对英特尔和Arm处理器的循环和阵列进行矢量化

SIL/PIL经理

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

代码视图中的代码覆盖率

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

符号尺寸

使用用C语言行动在Stateflow图符号尺寸

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

生成支持通过ASAM MCD-1xcp金宝app通信信道和第三方校准工具(如ETAS INCA和Vector CANape)进行参数调整和信号监测的代码

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

使用Cygwin作为Windows上推荐的工具链来构建和部署Pixhawk autopilots算法

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

编码器峰会

观看现场工程师和开发人员介绍软件设计、嵌入式代码生成等新功能。