Embedded Coder为 MATLAB Coder 产品扩展了可用于嵌入式软件开发的功能。您可以生成具有专业人工代码的清晰度和效率的代码。例如,您可以:
- 生成紧凑、快速的代码,这对实时仿真器、目标系统快速原型构建板、大规模生产中使用的微处理器以及嵌入式系统至关重要。
- 自定义生成的代码的外观。
- 针对特定于应用的要求对生成的代码进行优化。
- 启用追溯选项,帮助您验证生成的代码。
Embedded Coder 产品是对 MATLAB Coder 产品的扩展,提供了以下针对 C/C++ 代码生成的选项和优化。
目的 | 工程设置 | 代码配置对象属性 |
控制浮点数据和运算的生成 | 仅支持纯整数 | PurelyIntegerCode |
简化生成的代码中位于循环内的数组索引 | 简化数组索引 | EnableStrengthReduction |
替换生成的代码中的函数和运算符,以满足应用程序特定的代码要求 | 自定义代码选项卡上的代码替换库 | CodeReplacementLibrary |
为函数和运算符创建和注册应用程序特定的实现 | 不适用 | 不适用 |
指定在生成的代码中使用单行注释还是多行注释 | 注释样式 | CommentStyle |
包含 MATLAB 源代码作为具有可追溯性标记的注释。在代码生成报告中,可追溯性标记链接到对应的 MATLAB 源代码 | MATLAB 源代码作为注释 | MATLABSourceComments |
在函数前注中生成 MATLAB 函数帮助文本 | MATLAB 函数帮助文本 | MATLABFcnDesc |
在生成的代码中包括注释,这些注释包含链接到 MATLAB 代码的需求汇总。在代码生成报告中,这些注释是指向需求编辑器中的需求的超链接 | 作为注释的需求汇总 | ReqsInCode |
将 if-elseif-else 模式转换为 switch-case 语句 | 将 if-elseif-else 模式转换为 switch-case 语句 | ConvertIfToSwitch |
指定在生成的外部函数的声明中包含外部关键字 | 在函数声明中保留 extern 关键字 | PreserveExternInFcnDecls |
指定生成的代码中的括号级别 | 圆括号 | ParenthesesLevel |
指定是否在生成的代码中将二次幂的乘法替换为有符号的左移位 | 使用有符号左移位进行定点运算和 2 次幂的乘法 | EnableSignedLeftShifts |
指定是否允许在生成的代码中进行有符号右移位 | 允许有符号整数右移 | EnableSignedRightShifts |
控制生成的代码中的数据类型转换 | 所有设置选项卡上的强制转换模式 | CastingMode |
指定生成的代码的缩进样式 | 所有设置选项卡上的缩进样式 | IndentStyle |
指定在生成的代码中换行符之前的最大列数 | 所有设置选项卡上的列限制 | ColumnLimit |
在生成的代码中为 MATLAB 数据类型指定自定义名称 | 启用自定义数据类型替换 | EnableCustomReplacementTypes |
从外部头文件导入自定义数据类型定义 | 从外部头文件导入自定义类型 | IsExtern |
自定义生成的 C/C++ 文件名 | 生成的源文件和头文件名称格式 | CustomFileNameStr |
自定义生成的全局变量标识符 | 全局变量 | CustomSymbolStrGlobalVar |
自定义生成的全局类型标识符 | 全局类型 | CustomSymbolStrType |
自定义全局类型标识符中包含的生成字段名称 | 全局类型的字段名称 | CustomSymbolStrField |
自定义生成的局部函数标识符 | 局部函数 | CustomSymbolStrFcn |
自定义为本地临时变量生成的标识符 | 局部临时变量 | CustomSymbolStrTmpVar |
自定义为常量宏生成的标识符 | 常量宏 | CustomSymbolStrMacro |
自定义为 EMX 数组类型(可嵌入式 mxArray 类型)生成的标识符 | EMX 数组类型 | CustomSymbolStrEMXArray |
自定义为 EMX 数组(可嵌入式 mxArray)工具函数生成的标识符 | EMX 数组工具函数 | CustomSymbolStrEMXArrayFcn |
自定义生成的代码中的函数接口 | 所有设置选项卡上的需要初始化函数 | IncludeInitializeFcn |
自定义文件前注和函数前注 | 不适用 | CodeTemplate |
控制生成的代码中全局变量的声明和定义 | 不适用 | 不适用 |
生成静态代码度量报告,其中包括生成的文件信息、行数和内存使用量 | 静态代码度量 | GenerateCodeMetricsReport |
生成代码替换报告,总结从所选代码替换库中使用的替换 | 代码替换 | GenerateCodeReplacementReport |
在代码生成报告中突出显示单精度、双精度和耗费大量资源的定点运算 | 突出显示潜在的数据类型问题 | HighlightPotentialDataTypeIssues |
替换生成的代码中的函数和运算符,以满足应用程序特定的代码要求 | 代码替换库 | CodeReplacementLibrary |
为函数和运算符创建和注册应用程序特定的实现 | 不适用 | 不适用 |
在 MATLAB 源代码和生成的 C/C++ 代码之间交互追溯 | 启用代码可追溯性 | EnableTraceability |
通过执行软件在环和处理器在环仿真验证生成的代码 | 不适用 | VerificationMode |
执行软件在环或处理器在环期间调试代码 | 调试窗格上的对 SIL 或 PIL 启用源代码级别调试 | SILPILDebugging |
在软件在环和处理器在环执行期间的探查执行时间 | 调试窗格上的对 SIL/PIL 启用入口函数执行探查 | CodeExecutionProfiling |
验证和探查 ARM 优化的代码 | 硬件窗格上的硬件板 | Hardware |
使用集成的工作流对生成的 C/C++ 代码运行 Polyspace® 验证 | 不适用 | 不适用 |