Bootstrap

Embedded Coder代码生成优化

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
IndentSize

指定在生成的代码中换行符之前的最大列数

所有设置选项卡上的列限制

ColumnLimit

在生成的代码中为 MATLAB 数据类型指定自定义名称

启用自定义数据类型替换

EnableCustomReplacementTypes
ReplacementTypes

从外部头文件导入自定义数据类型定义

从外部头文件导入自定义类型

IsExtern
HeaderFiles

自定义生成的 C/C++ 文件名

生成的源文件和头文件名称格式

CustomFileNameStr

自定义生成的全局变量标识符

全局变量

CustomSymbolStrGlobalVar

自定义生成的全局类型标识符

全局类型

CustomSymbolStrType

自定义全局类型标识符中包含的生成字段名称

全局类型的字段名称

CustomSymbolStrField

自定义生成的局部函数标识符

局部函数

CustomSymbolStrFcn

自定义为本地临时变量生成的标识符

局部临时变量

CustomSymbolStrTmpVar

自定义为常量宏生成的标识符

常量宏

CustomSymbolStrMacro

自定义为 EMX 数组类型(可嵌入式 mxArray 类型)生成的标识符

EMX 数组类型

CustomSymbolStrEMXArray

自定义为 EMX 数组(可嵌入式 mxArray)工具函数生成的标识符

EMX 数组工具函数

CustomSymbolStrEMXArrayFcn

自定义生成的代码中的函数接口

所有设置选项卡上的需要初始化函数
所有设置选项卡上的需要终止函数

IncludeInitializeFcn
IncludeTerminateFcn

自定义文件前注和函数前注

不适用

CodeTemplate

控制生成的代码中全局变量的声明和定义

不适用

不适用

生成静态代码度量报告,其中包括生成的文件信息、行数和内存使用量

静态代码度量

GenerateCodeMetricsReport

生成代码替换报告,总结从所选代码替换库中使用的替换

代码替换

GenerateCodeReplacementReport

在代码生成报告中突出显示单精度、双精度和耗费大量资源的定点运算

突出显示潜在的数据类型问题

HighlightPotentialDataTypeIssues

替换生成的代码中的函数和运算符,以满足应用程序特定的代码要求

代码替换库

CodeReplacementLibrary

为函数和运算符创建和注册应用程序特定的实现

不适用

不适用

在 MATLAB 源代码和生成的 C/C++ 代码之间交互追溯

启用代码可追溯性

EnableTraceability

通过执行软件在环和处理器在环仿真验证生成的代码

不适用

VerificationMode

执行软件在环或处理器在环期间调试代码

调试窗格上的对 SIL 或 PIL 启用源代码级别调试

SILPILDebugging

在软件在环和处理器在环执行期间的探查执行时间

调试窗格上的对 SIL/PIL 启用入口函数执行探查

CodeExecutionProfiling

验证和探查 ARM 优化的代码

硬件窗格上的硬件板

Hardware

使用集成的工作流对生成的 C/C++ 代码运行 Polyspace® 验证

不适用

不适用

;