嵌入式编码器

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

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

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

了解公司如何使用嵌入式编码器为控制信号处理图像处理和计算机视觉,机器学习应用。

开始:

配置以生成代码

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

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

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

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

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

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

选择目标

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

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

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

对于Si金宝appmulink,您可以指定一种随时可以运行的配置,其中包括:

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

自动雷达目标- 生成C代码和运行时的界面,支持发展金宝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

  • 生成代码变种使用预处理程序的编译宏
  • 控制生成的每个文件的格式
  • 确定数据如何被全球的定义和引用
  • 指定的内容和评论安置

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

注释、跟踪和记录代码

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

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

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

金宝appSimulink代码生成报告强调算法和实现之间的双向可跟踪性。

执行和验证代码

嵌入式编码,您可以合并生成的代码到你的代码执行环境。

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

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

生成主程序

嵌入式编码器将基于您提供在实时环境中部署的代码信息的可扩展的主程序。此功能可以生成并从建立模型的完整定制的可执行文件。

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

嵌入式编码使用模型中指定的周期的采样时间生成单速率或多速率代码。对于多速率,多任务的机型,它采用了一个名为速度分组,对于基准利率任务和模型中的每个子速率任务生成独立的功能策略。您还可以使用Simulink的并发金宝app执行模型制作多线程代码的多核处理。

进行SIL和PIL测试

嵌入的用于SIL测试或使用Simulink仿真模式或S-功能块PIL测试嵌入式目标在Simulink生成的代码编金宝app码器能自动化执行。金宝appSimulink测试有助于自动化测试执行,并从最初的模拟结果的测试结果进行比较。可以进行结构代码覆盖分析,测量测试的完整性金宝app仿真软件覆盖或者与第三方工具集成。代码分析提供主机或目标处理器上的执行时间。

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

最新功能

减少数据拷贝

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

优化的C ++为可重用的函数

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

循环的SIMD矢量化

使用SIMD内部函数向量化循环和数组英特尔和ARM®处理器

SIL / PIL经理

一键完成后端到回用软件在环(SIL)和处理器在环(PIL)模拟测试

代码覆盖的代码视图

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

符号尺寸

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

校准和检测通过XCP和第三方工具

生成代码,它支持参数调谐和信号监测通过金宝app一个ASAM MCD-1 XCP通信信道以及第三方校准工具如ETAS INCA和矢量CANape的

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

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

看到发布说明对任何这些特征和对应的功能的详细说明。

编码峰会

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