Main Content

MATLAB 代码中生成代码的 Embedded Coder 功能

Embedded Coder® 产品为 MATLAB® Coder™ 产品扩展了可用于嵌入式软件开发的功能。您可以生成具有专业人工代码的清晰度和效率的代码。例如,您可以:

  • 生成紧凑、快速的代码,这对实时仿真器、目标系统快速原型构建板、大规模生产中使用的微处理器以及嵌入式系统至关重要。

  • 自定义生成的代码的外观。

  • 针对特定于应用的要求对生成的代码进行优化。

  • 启用追溯选项,帮助您验证生成的代码。

Embedded Coder 产品是对 MATLAB Coder 产品的扩展,提供了以下针对 C/C++ 代码生成的选项和优化。

目的工程设置代码配置对象属性更多信息
执行时间
控制浮点数据和运算的生成仅支持纯整数PurelyIntegerCode不适用
简化生成的代码中位于循环内的数组索引简化数组索引EnableStrengthReductionSimplify Multiply Operations for Array Indexing in Loops
替换生成的代码中的函数和运算符,以满足应用程序特定的代码要求自定义代码选项卡上的代码替换库CodeReplacementLibraryEmbedded Coder 提供了额外的库,而且允许创建和使用自定义代码。请参阅代码替换自定义
为函数和运算符创建和注册应用程序特定的实现不适用不适用代码替换自定义
代码外观
指定在生成的代码中使用单行注释还是多行注释注释样式CommentStyleSpecify Comment Style for C/C++ Code
包含 MATLAB 源代码作为具有可追溯性标记的注释。在代码生成报告中,可追溯性标记链接到对应的 MATLAB 源代码MATLAB 源代码作为注释MATLABSourceComments在生成的 C/C++ 代码中包含注释
在函数前注中生成 MATLAB 函数帮助文本 MATLAB 函数帮助文本MATLABFcnDesc在生成的 C/C++ 代码中包含注释
在生成的代码中包括注释,这些注释包含链接到 MATLAB 代码的需求汇总。在代码生成报告中,这些注释是指向需求编辑器中的需求的超链接作为注释的需求汇总ReqsInCodeRequirements Traceability for Code Generated from MATLAB Code (Requirements Toolbox)
将 if-elseif-else 模式转换为 switch-case 语句将 if-elseif-else 模式转换为 switch-case 语句ConvertIfToSwitch控制 C 代码的样式
指定在生成的外部函数的声明中包含外部关键字在函数声明中保留 extern 关键字PreserveExternInFcnDecls不适用
指定生成的代码中的括号级别圆括号ParenthesesLevel不适用
指定是否在生成的代码中将二次幂的乘法替换为有符号的左移位使用有符号左移位进行定点运算和 2 次幂的乘法EnableSignedLeftShiftsControl Signed Left Shifts in Generated Code
指定是否允许在生成的代码中进行有符号右移位允许有符号整数右移EnableSignedRightShifts不适用
控制生成的代码中的数据类型转换所有设置选项卡上的强制转换模式CastingModeControl Data Type Casts in Generated Code
指定生成的代码的缩进样式所有设置选项卡上的缩进样式
所有设置 选项卡上的缩进大小
IndentStyle
IndentSize
Specify Indent Style for C/C++ Code
指定在生成的代码中换行符之前的最大列数所有设置选项卡上的列限制ColumnLimit不适用
在生成的代码中为 MATLAB 数据类型指定自定义名称启用自定义数据类型替换EnableCustomReplacementTypes
ReplacementTypes
Customize Data Type Replacement
从外部头文件导入自定义数据类型定义 从外部头文件导入自定义类型IsExtern
HeaderFiles
Import Custom Data Type Definitions from External Header Files
自定义生成的 C/C++ 文件名生成的源文件和头文件名称格式CustomFileNameStrCustomize C/C++ File Names Generated from MATLAB Code
自定义生成的全局变量标识符 全局变量CustomSymbolStrGlobalVarCustomize Generated Identifiers
自定义生成的全局类型标识符全局类型CustomSymbolStrTypeCustomize Generated Identifiers
自定义全局类型标识符中包含的生成字段名称全局类型的字段名称CustomSymbolStrFieldCustomize Generated Identifiers
自定义生成的局部函数标识符局部函数CustomSymbolStrFcnCustomize Generated Identifiers
自定义为本地临时变量生成的标识符局部临时变量CustomSymbolStrTmpVarCustomize Generated Identifiers
自定义为常量宏生成的标识符常量宏CustomSymbolStrMacroCustomize Generated Identifiers
自定义为 EMX 数组类型(可嵌入式 mxArray 类型)生成的标识符EMX 数组类型CustomSymbolStrEMXArrayCustomize Generated Identifiers
自定义为 EMX 数组(可嵌入式 mxArray)工具函数生成的标识符EMX 数组工具函数CustomSymbolStrEMXArrayFcnCustomize Generated Identifiers
自定义生成的代码中的函数接口所有设置选项卡上的需要初始化函数
所有设置选项卡上的需要终止函数
IncludeInitializeFcn
IncludeTerminateFcn
不适用
自定义文件前注和函数前注不适用CodeTemplate
控制生成的代码中全局变量的声明和定义不适用不适用
生成符合 MISRA™ C/C++ 和 AUTOSAR C++ 规范的代码MISRA 合规性窗格请参阅 coder.setupMISRAConfig 参考页Generate C/C++ Code with Improved MISRA and AUTOSAR Compliance
调试
生成静态代码度量报告,其中包括生成的文件信息、行数和内存使用量静态代码度量GenerateCodeMetricsReportGenerating a Static Code Metrics Report for Code Generated from MATLAB Code
生成代码替换报告,总结从所选代码替换库中使用的替换代码替换GenerateCodeReplacementReport
在代码生成报告中突出显示单精度、双精度和耗费大量资源的定点运算突出显示潜在的数据类型问题HighlightPotentialDataTypeIssuesHighlight Potential Data Type Issues in a Report
自定义代码
替换生成的代码中的函数和运算符,以满足应用程序特定的代码要求代码替换库CodeReplacementLibraryEmbedded Coder 提供了额外的库,而且允许创建和使用自定义代码。请参阅代码替换自定义
为函数和运算符创建和注册应用程序特定的实现不适用不适用代码替换自定义
验证
在 MATLAB 源代码和生成的 C/C++ 代码之间交互追溯启用代码可追溯性EnableTraceabilityInteractively Trace Between MATLAB Code and Generated C/C++ Code
通过执行软件在环和处理器在环仿真验证生成的代码不适用VerificationModeCode Verification Through Software-in-the-Loop and Processor-in-the-Loop Execution
执行软件在环或处理器在环期间调试代码调试窗格上的对 SIL 或 PIL 启用源代码级别调试SILPILDebuggingDebug Generated Code During SIL or PIL Execution
在软件在环和处理器在环执行期间的探查执行时间调试窗格上的对 SIL/PIL 启用入口函数执行探查CodeExecutionProfilingSIL 和 PIL 的执行时间探查
验证和探查 ARM 优化的代码 硬件窗格上的硬件板Hardware
使用集成的工作流对生成的 C/C++ 代码运行 Polyspace® 验证不适用不适用由 MATLAB Coder 生成的 C/C++ 代码的 Polyspace 验证
为生成的 C/C++ 代码和自定义 C/C++ 代码提取覆盖率数据所有设置选项卡上的启用 C/C++ 代码覆盖率CodeCoveragegetCodeCoverageData