嵌入式编码器
为嵌入式系统生成优化的C和c++代码
嵌入式编码器®为大规模生产中使用的嵌入式处理器生成可读、紧凑和快速的C和c++代码。它扩展MATLAB编码器™和Simulink编码器™与先进万博1manbetx的优化精确控制生成的函数,文件和数据。这些优化提高了代码效率,并促进了与遗留代码、数据类型和校准参数的集成。您可以结合第三方开发工具来构建可执行文件,以便在嵌入式系统或快速原型板上进行交钥匙部署。
嵌入式编码器提供了内置的支持万博1manbetxAUTOSAR,MISRA - C®, ASAP2软件标准。它还提供可跟踪性报告、代码文档和自动软件验证来支持万博1manbetx做- 178, IEC 61508,和ISO 26262软件开发。嵌入式编码器代码是可移植的,可以在任何处理器上编译和执行。此外,Embedded Coder还提供了高级优化和设备驱动程序的支持万博1manbetx包特定的硬件.
了解公司如何使用Embedded Coder生成产品代码控制,信号处理,图像处理和计算机视觉,机器学习应用程序。
开始:
为嵌入式编码器配置代码生成设置®,您可以使用MATLAB Coder应用程序MATLAB®或Simulink的嵌入式编码器快速入门。万博1manbetx您还可以使用MATLAB命令和脚本直接配置每个设置。
从MATLAB Coder应用程序,你可以:
- 为您的MATLAB文件和函数生成代码
- 选择处理器和代码生成输出
- 选择嵌入式编码器优化
从Simulink的嵌入式编码器快速入门,你可以:万博1manbetx
- 为您的Simulink模型和子系统生成代码万博1manbetx
- 选择处理器和代码生成输出
- 选择嵌入式编码器以优化RAM或执行速度
对于MATLAB,你指定以下输出目标之一:
- MEX-file
- C / c++静态库
- C / c++可执行文件
对于Si万博1manbetxmulink,你指定一个准备运行的配置,包括:
嵌入式实时目标-生成ANSI/ISO C, c++和封装的c++代码与浮点和定点数据,几乎在任何生产处理器上有效的实时执行
AUTOSAR的目标生成支持的C代码和运行时接口万博1manbetxAUTOSAR软件组件(需要AUTOSAR模块集)
共享库的目标-为主机平台执行生成一个共享库版本的代码,可以是Windows®动态链接库(.dll)文件或UNIX®共享对象(.so)文件
此外,MathWorks和第三方提供了MATLAB插件,扩展了Embedded Coder支持万博1manbetx特定的硬件包括手臂®,英特尔®意法半导体,NXP™®,以及德州仪器™。
Embedded Coder允许您定义和控制模型数据如何在生成的代码中显示,以促进软件集成。
对于MATLAB代码,Embedded Coder支持所有MAT万博1manbetxLAB Coder数据定义,包括定点对象和预定义的存储类。
对于Si万博1manbetxmulink模型,Embedded Code万博1manbetxr支持以下数据字典和规范功能:
嵌入式编码字典-允许查看和自定义代码定义,包括函数接口、存储类和内存段
万博1manbetx模型数据对象-提供预定义的存储类,包括constant、volatile、exported global、imported global、define directive、structure、bit field(包括bit-packed structure),以及get和set访问方法
模块封装数据对象-为通常在大规模生产中使用的高级数据对象提供预先配置的属性,例如用于校准或调优查找表的内存段
用户数据类型-允许您为复杂数据创建抽象类型,以便您可以精确地控制模型数据如何在生成的代码中出现、与任何遗留数据的接口以及扩展或替换Simulink内置类型万博1manbetx
Embedded Coder允许您访问Simulink中的ASAP2数据交换文件,使您能够使用ASAP2标准导出具有复杂数据定义万博1manbetx的模型数据。您可以修改内置功能以生成其他数据交换机制。
使用Embedded Coder,您可以控制函数边界,保留表达式,并对多个块应用优化,以进一步减少代码大小。数据通过全局变量或函数参数与生成的代码交换。您可以跟踪生成的代码到模型中的块和信号。
用于从MATLAB代码和Simulink模型生成代码的嵌入式编码器选项使您能够:万博1manbetx
- 为数学函数和运算符生成特定于处理器的代码
- 重用用于导出到遗留环境或外部环境的代码
- 消除不必要的初始化、终止、日志记录和错误处理代码
- 从仅整型应用程序中删除浮点代码
附加的嵌入式编码器优化和配置选项可用于Simulink模型,使您能够:万博1manbetx
- 使用宏生成用于预处理器编译的代码变体
- 控制每个生成文件的格式
- 确定如何定义和引用全局数据
- 指定评论的内容和位置
Embedded Coder提供了几个功能,用于检查MATLAB文件和函数或Simulink模型和子系统生成的代码。万博1manbetx使用这些功能,你可以:
- 生成描述代码模块、功能接口和静态代码度量的代码报告
- 用于生成全局数据、数据类型和函数的控件标识符格式
- 在生成的代码中包括MATLAB代码作为注释,包括函数帮助文本
在Simu万博1manbetxlink中,Embedded Coder还提供了将高级需求作为代码注释插入到需求源(requires)的链接的能力万博1manbetx仿真软件需求™).Simulink代码生成的代码报告还包括万博1manbetx代码接口描述、可跟踪性报告,以及生成的源文件和代码的显示。模型和生成的代码之间存在双向链接,便于在每一行代码及其对应的Simulink模型元素之间导航,包括子系统、块、MATLAB函数和代码,以及万博1manbetxStateflow®图表和转换。
Embedded Coder使您能够将生成的代码合并到代码执行环境中。
在MATLAB中,由Embedded Coder生成的代码使用与MATLAB Coder提供的相同的执行框架执行。
通过Sim万博1manbetxulink, Embedded Coder极大地扩展了Simulink Coder提供的实时执行框架。默认情况下,代码可以在有或没有实时操作系统(RTOS)的情况下执行,也可以在单任务、多任务、多核或异步模式下执行。您还可以使用嵌入式编码器(Embedded Coder for software-in-the-loop, SIL)和处理器(PIL)测试来验证代码执行结果。万博1manbetx仿真软件测试™和万博1manbetx仿真软件覆盖帮助自动化测试执行、结果比较和覆盖率分析。还支持代码执行概要分析。万博1manbetx
生成主程序
Embedded Coder基于您提供的用于在实时环境中部署代码的信息生成可扩展的主程序。此功能允许您从模型生成和构建一个完整的定制可执行文件。
执行多速率、多任务和多核代码
内嵌编码器使用模型中指定的周期采样时间生成单速率或多速率代码。对于多速率、多任务模型,它采用一种称为速率分组的策略,为基本速率任务和模型中的每个子任务生成单独的函数。您还可以使用Simulink并发执万博1manbetx行建模来生成用于多核处理的多线程代码。
执行SIL和PIL测试
Embedded Coder使用Simulink仿真模式或S-function块在Simulink中自动执行生成万博1manbetx的代码,用于SIL测试,或用于PIL测试的嵌入式目标。万博1manbetx仿真软件测试™帮助自动化测试执行,并将测试结果与原始模型的模拟结果进行比较。可以使用结构代码覆盖率分析来度量测试的完整性万博1manbetx仿真软件覆盖或者与第三方工具集成。代码分析提供了主机或目标处理器上的执行时间。