从 MATLAB 代码中生成代码的 Embedded Coder 功能
Embedded Coder® 产品为 MATLAB® Coder™ 产品扩展了可用于嵌入式软件开发的功能。您可以生成具有专业人工代码的清晰度和效率的代码。例如,您可以:
生成紧凑、快速的代码,这对实时仿真器、目标系统快速原型构建板、大规模生产中使用的微处理器以及嵌入式系统至关重要。
自定义生成的代码的外观。
针对特定于应用的要求对生成的代码进行优化。
启用追溯选项,帮助您验证生成的代码。
Embedded Coder 产品是对 MATLAB Coder 产品的扩展,提供了以下针对 C/C++ 代码生成的选项和优化。
目的 | 工程设置 | 代码配置对象属性 | 更多信息 |
---|---|---|---|
执行时间 | |||
控制浮点数据和运算的生成 | 仅支持纯整数 | PurelyIntegerCode | 不适用 |
简化生成的代码中位于循环内的数组索引 | 简化数组索引 | EnableStrengthReduction | Simplify Multiply Operations for Array Indexing in Loops |
替换生成的代码中的函数和运算符,以满足应用程序特定的代码要求 | 自定义代码选项卡上的代码替换库 | CodeReplacementLibrary | Embedded Coder 提供了额外的库,而且允许创建和使用自定义代码。请参阅代码替换自定义。 |
为函数和运算符创建和注册应用程序特定的实现 | 不适用 | 不适用 | 代码替换自定义 |
代码外观 | |||
指定在生成的代码中使用单行注释还是多行注释 | 注释样式 | CommentStyle | Specify Comment Style for C/C++ Code |
包含 MATLAB 源代码作为具有可追溯性标记的注释。在代码生成报告中,可追溯性标记链接到对应的 MATLAB 源代码 | MATLAB 源代码作为注释 | MATLABSourceComments | 在生成的 C/C++ 代码中包含注释 |
在函数前注中生成 MATLAB 函数帮助文本 | MATLAB 函数帮助文本 | MATLABFcnDesc | 在生成的 C/C++ 代码中包含注释 |
在生成的代码中包括注释,这些注释包含链接到 MATLAB 代码的需求汇总。在代码生成报告中,这些注释是指向需求编辑器中的需求的超链接 | 作为注释的需求汇总 | ReqsInCode | 从 MATLAB 代码生成的代码的需求可追溯性 (Requirements Toolbox) |
将 if-elseif-else 模式转换为 switch-case 语句 | 将 if-elseif-else 模式转换为 switch-case 语句 | ConvertIfToSwitch | 控制 C 代码的样式 |
指定在生成的外部函数的声明中包含外部关键字 | 在函数声明中保留 extern 关键字 | PreserveExternInFcnDecls | 不适用 |
指定生成的代码中的括号级别 | 圆括号 | ParenthesesLevel | 不适用 |
指定是否在生成的代码中将二次幂的乘法替换为有符号的左移位 | 使用有符号左移位进行定点运算和 2 次幂的乘法 | EnableSignedLeftShifts | Control Signed Left Shifts in Generated Code |
指定是否允许在生成的代码中进行有符号右移位 | 允许有符号整数右移 | EnableSignedRightShifts | 不适用 |
控制生成的代码中的数据类型转换 | 所有设置选项卡上的强制转换模式 | CastingMode | Control 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++ 文件名 | 生成的源文件和头文件名称格式 | CustomFileNameStr | Customize C/C++ File Names Generated from MATLAB Code |
自定义生成的全局变量标识符 | 全局变量 | CustomSymbolStrGlobalVar | Customize Generated Identifiers |
自定义生成的全局类型标识符 | 全局类型 | CustomSymbolStrType | Customize Generated Identifiers |
自定义全局类型标识符中包含的生成字段名称 | 全局类型的字段名称 | CustomSymbolStrField | Customize Generated Identifiers |
自定义生成的局部函数标识符 | 局部函数 | CustomSymbolStrFcn | Customize Generated Identifiers |
自定义为本地临时变量生成的标识符 | 局部临时变量 | CustomSymbolStrTmpVar | Customize Generated Identifiers |
自定义为常量宏生成的标识符 | 常量宏 | CustomSymbolStrMacro | Customize Generated Identifiers |
自定义为 EMX 数组类型(可嵌入式 mxArray 类型)生成的标识符 | EMX 数组类型 | CustomSymbolStrEMXArray | Customize Generated Identifiers |
自定义为 EMX 数组(可嵌入式 mxArray)工具函数生成的标识符 | EMX 数组工具函数 | CustomSymbolStrEMXArrayFcn | Customize Generated Identifiers |
自定义生成的代码中的函数接口 | 所有设置选项卡上的需要初始化函数 所有设置选项卡上的需要终止函数 | IncludeInitializeFcn IncludeTerminateFcn | 不适用 |
自定义文件前注和函数前注 | 不适用 | CodeTemplate | |
控制生成的代码中全局变量的声明和定义 | 不适用 | 不适用 | |
生成符合 MISRA™ C/C++ 和 AUTOSAR C++ 规范的代码 | MISRA 合规性窗格 | 请参阅 coder.setupMISRAConfig 参考页 | Generate C/C++ Code with Improved MISRA and AUTOSAR Compliance |
调试 | |||
生成静态代码度量报告,其中包括生成的文件信息、行数和内存使用量 | 静态代码度量 | GenerateCodeMetricsReport | Generating a Static Code Metrics Report for Code Generated from MATLAB Code |
生成代码替换报告,总结从所选代码替换库中使用的替换 | 代码替换 | GenerateCodeReplacementReport | |
在代码生成报告中突出显示单精度、双精度和耗费大量资源的定点运算 | 突出显示潜在的数据类型问题 | HighlightPotentialDataTypeIssues | Highlight Potential Data Type Issues in a Report |
自定义代码 | |||
替换生成的代码中的函数和运算符,以满足应用程序特定的代码要求 | 代码替换库 | CodeReplacementLibrary | Embedded Coder 提供了额外的库,而且允许创建和使用自定义代码。请参阅代码替换自定义。 |
为函数和运算符创建和注册应用程序特定的实现 | 不适用 | 不适用 | 代码替换自定义 |
验证 | |||
在 MATLAB 源代码和生成的 C/C++ 代码之间交互追溯 | 启用代码可追溯性 | EnableTraceability | Interactively Trace Between MATLAB Code and Generated C/C++ Code |
通过执行软件在环和处理器在环仿真验证生成的代码 | 不适用 | VerificationMode | Code Verification Through Software-in-the-Loop and Processor-in-the-Loop Execution |
执行软件在环或处理器在环期间调试代码 | 调试窗格上的对 SIL 或 PIL 启用源代码级别调试 | SILPILDebugging | Debug Generated Code During SIL or PIL Execution |
在软件在环和处理器在环执行期间的探查执行时间 | 调试窗格上的对 SIL/PIL 启用入口函数执行探查 | CodeExecutionProfiling | SIL 和 PIL 的执行时间探查 |
验证和探查 ARM 优化的代码 | 硬件窗格上的硬件板 | Hardware | |
使用集成的工作流对生成的 C/C++ 代码运行 Polyspace® 验证 | 不适用 | 不适用 | 由 MATLAB Coder 生成的 C/C++ 代码的 Polyspace 验证 |
为生成的 C/C++ 代码和自定义 C/C++ 代码提取覆盖率数据 | 所有设置选项卡上的启用 C/C++ 代码覆盖率 | CodeCoverage | getCodeCoverageData |