嵌入式编码器

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

嵌入式编码器®生成可读的,紧凑的,和快速的C和C ++用于在大规模生产中使用的嵌入式处理器代码。它扩展MATLAB编码器™和Simulink编码器™与高级万博1manbetx优化用于所产生的功能,文件和数据的精确控制。这些优化提高编码效率,促进与遗留代码,数据类型和校准参数集成。您可以将第三方开发工具来构建嵌入式系统或快速原型板上交钥匙部署的可执行文件。

嵌入式编码器提供内置支持万博1manbetxAUTOSAR,MISRA C®和ASAP2软件标准。它还提供了追踪报告,代码文档和自动化软件验证,以支持万博1manbetx做- 178,IEC 61508ISO 26262软件开发。嵌入式编码是可移植的,可以在任何处理器上编译和执行。此外,嵌入式编码器提供支持包与先进的优化和设备驱动程序万博1manbetx具体硬件

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

开始:

配置代码生成

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

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

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

从嵌入式编码器快速启动Simulink,你可以:万博1manbetx

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

使用嵌入式编码器快速启动jumpstart生产代码生成从Simulink。万博1manbetx

选择目标

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

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

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

对于Si万博1manbetxmulink,您可以指定一种随时可以运行的配置,其中包括:

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

AUTOSAR的目标-生成C代码和运行时接口,支持的开发万博1manbetxAUTOSAR软件组件(需要AUTOSAR块集)

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

此外,MathWorks公司和第三方提供扩展嵌入式编码,以支持MATLAB的附加组件万博1manbetx具体硬件包括ARM®英特尔®,NXP™,意法半导体®,以及德州仪器™。

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

处理自定义数据

嵌入式编码,可以定义和控制生成的代码模型数据出现如何促进软件集成。

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

对于Si万博1manbetxmulink模型,嵌入式编码器支持以下数据字典和规范功能:万博1manbetx

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

万博1manbetx模型数据对象- 提供预定义存储类,包括常量,易挥发,远销全球,全球进口的,定义指令,结构,位字段(包括比特封装结构),以及获取和设置访问方法

模块封装数据对象- 提供先进的数据预先配置的属性的对象通常在大规模生产中使用,诸如存储器段来校准或调整查找表

用户数据类型- 允许您创建抽象类型复杂的数据,因此可以精确控制模型数据如何显示在生成的代码,接口与任何遗留数据,并增强或替换Simulink的内置类型万博1manbetx

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

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

优化和打包代码

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

从MATLAB代码和Simulink模型生成代码的嵌入式编码器选项使您能够:万博1manbetx

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

额外的嵌入式编码器优化和配置选项可用于Simulink模型,使您能够:万博1manbetx

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

从Simulink模型生成SIMD代码。万博1manbetx

评论,跟踪和记录代码

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

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

使用Sim万博1manbetxulink,嵌入式编码器还提供了将高级需求作为代码注释插入到需求源(require)的能力万博1manbetx仿真软件需求™)。对于Simulink的代码生成的代码报告万博1manbetx还包括一个代码的接口描述,可追溯性报告,和生成的源文件和代码的显示。模型和生成的代码之间存在双向链接,因此很容易每行代码和其相应的Simulink模型元件,包括子系统,块,MATLAB函数和代码之间导航,并万博1manbetxStateflow®图表和转换。

万博1manbetxSimulink代码生成报告强调了算法和实现之间的双向跟踪。

执行和验证代码

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

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

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

生成主计划

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

执行多速率,多任务和多内核代码

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

进行SIL和PIL测试

嵌入式编码器使用Simulink仿真模式或s功能块,自动执行在Simulink中生成的代码进行SIL测试,或在嵌万博1manbetx入式目标上进行PIL测试。万博1manbetx仿真软件测试™帮助自动化测试执行和测试结果与来自原始模型的模拟结果的比较。结构代码覆盖率分析可以用来测量测试的完整性万博1manbetxSimulink的覆盖范围或者与第三方工具集成。代码分析提供了主机或目标处理器上的执行时间。

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

最新的特性

对Arm的FFT代码替换库支持万博1manbetx

使用Arm Cortex-A和Cortex-M处理器的代码替换库为快速傅里叶变换(FFT)生成优化代码

减少数据拷贝

为在子系统内和跨模型引用边界存储大型总线结构的数据存储内存块生成具有较少数据副本的代码

优化多维数组

通过重用多维数组是保持尺寸的缓冲区减少内存

按位运算符

通过从逻辑运算符块生成按位运算符来减少ROM

多线程图像处理工具箱功能

通过为具有多线程功能的图像处理工具箱函数生成代码来提高执行速度

循环的SIMD向量化

使用SIMD intrinsics为Intel和Arm处理器向量化循环和数组

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

通过ASAM MCD-1 XCP通信通万博1manbetx道和第三方校准工具(如ETAS INCA和Vector CANape)生成支持参数调优和信号监控的代码

看到发行说明了解这些特性和相应功能的详细信息。

编码器峰会

观看现场工程师和开发人员提出了新的功能,软件设计,嵌入式代码生成,等等。