嵌入式编码器

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

嵌入式编码器®为批量生产中使用的嵌入式处理器生成可读,紧凑且快速的C和C ++代码。它扩展了MATLAB编码器™和SIMULINK CODER金宝app™,具有先进的优化,以精确控制生成的功能,文件和数据。这些优化提高了代码效率,并促进与传统代码,数据类型和校准参数集成。您可以包含一个第三方开发工具,为嵌入式系统或快速原型制作板上构建用于交钥匙部署的可执行文件。

嵌入式编码器提供了内置的支持金宝app仿奥斯卡臭臭C.®,以及ASAP2软件标准。它还提供可追溯性报告,代码文档和自动软件验证来支持金宝appDO-178.,IEC 61508,和ISO 26262软件开发。嵌入式编码器代码是可移植的,可以在任何处理器上编译和执行。此外,嵌入式编码器提供了具有高级优化和设备驱动程序的支持软件包金宝app具体的硬件

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

开始:

为代码生成进行配置

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

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

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

从嵌入式编码器快速启动Simulink,您可以:金宝app

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

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

选择目标

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

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

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

对于Si金宝appmulink,您可以指定一个现成的配置之一,其中包括:

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

AUTOSAR的目标生成支持的C代码和运行时接口金宝app仿奥斯卡软件组件(需要AutoSar SlockSet)

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

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

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

使用自定义数据

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

对于MATLAB代码,Embedded Coder支持所有MAT金宝appLAB Coder数据定义,包括定点对象和预定义的存储类。

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

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

金宝app模型数据对象- 提供预定义的存储类,包括常量,易失性,导出的全局,导入的全局,定义指令,结构,比特字段(包括位打包结构),并获取和设置访问方法

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

用户数据类型- 允许您为复杂数据创建抽象类型,因此您可以精确控制模型数据如何出现在生成的代码中,与任何传统数据的接口,以及增强或替换Simulink内置类型金宝app

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

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

优化和包装代码

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

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

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

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

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

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

评论,跟踪和记录代码

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

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

通过Sim金宝appulink,嵌入式编码器还提供了将高级要求作为代码注释插入到需求源的代码评论(需要金宝app仿真软件需求™)。Simulink代码生成的代码报告还包括金宝app代码接口描述,可追溯性报告和生成的源文件和代码的显示。模型和生成的代码之间存在双向链路,使得在每一行代码和其相应的Simulink模型元素之间易于导航,包括子系统,块,MATLAB函数和代码,以及金宝appStateflow®图表和转换。

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

执行和验证代码

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

在MATLAB中,由Embedded Coder生成的代码使用与MATLAB Coder提供的相同的执行框架执行。

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

生成主程序

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

执行多速率,多址和多核代码

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

执行SIL和PIL测试

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

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