主要内容

编码器。EmbeddedCodeConfig

配置参数用于C/ c++代码生成MATLAB代码与嵌入式编码器

描述

一个编码器。EmbeddedCodeConfig对象包含用于codegen使用嵌入式编码器生成静态库、动态链接库或可执行程序®.将对象传递给codegen函数,使用配置选择。

创建

创建一个编码器。EmbeddedCodeConfig对象,使用coder.config函数。

一旦你创建了编码器。EmbeddedCodeConfig对象,您可以在命令行以编程方式或使用配置参数对话框以交互方式修改其属性。看到在命令行工作流中交互式地指定配置参数

属性

全部展开

工具链的编译器优化或调试设置,指定为本表中的值之一。

价值 描述
“加快构建”

优化构建以缩短构建时间。

“快跑”

优化构建以更快地运行可执行文件。

“调试”

为调试优化构建。

“指定”

使CustomToolchainOptions属性用于自定义所选工具链中的工具的设置。如果工具链属性设置为自动定位已安装的工具链,然后设置BuildConfiguration“指定”变化工具链到所定位的工具链。

动态数组优化,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器通过优化动态数组访问来改进生成的C代码的执行时间。

代码生成器不会优化动态数组访问。

看到优化动态数组访问

生成的C/ c++代码中变量的数据类型强制转换级别,指定为本表中的值之一。

价值 描述
“名义”

此值为默认值。

生成使用默认C编译器数据类型转换的C/ c++代码。例如:

短addone(短x) {int i;I = x + 1;If (i > 32767) {i = 32767;}返回(短)i;}

“标准”

生成C/ c++代码,转换数据类型以符合MISRA®标准。例如:

短addone(短x) {int i;I = (int)x + (int)1;If (i > (int)32767) {i = (int)32767;}返回(短)i;}

“明确”

生成显式强制转换数据类型值的C/ c++代码。例如:

短addone(短x) {int i;I = (int)x + 1;If (i > 32767) {i = 32767;}返回(短)i;}

看到在生成的代码中控制数据类型转换(嵌入式编码)

设置此选项以指定是否要生成或使用现有的clang-format文件来格式化生成的代码。选择格式化文件选择方法,该方法指定为表中的值之一。

价值 描述
“生成”

此值为默认值。

创建一个clang-format根据您的配置设置为您的构建文件。的clang-format文件在codegen文件夹中。

“现有”

类对生成的代码进行格式化clang-format您选择的文件。使用clang-format允许对所生成代码的格式进行详细控制。

代码生成器搜索现有的clang-format文件中的代码生成文件夹,然后是代码生成文件夹上面的文件夹树。代码生成器查找名称包含的文件_clang-format或者是.clang-format它找到的文件。如果无法找到所需的文件,代码生成器将使用内置格式规范。

有关更多信息,请参见https://clang.llvm.org/docs/ClangFormatStyleOptions.html

在软件在循环(SIL)或处理器在循环(PIL)执行期间的执行时间分析,指定为本表中的值之一。

价值 描述

此值为默认值。

在SIL或PIL执行期间禁用执行时间分析。

真正的 在SIL或PIL执行期间启用执行时分析。

看到SIL和PIL的执行时间分析(嵌入式编码)

生成的代码的代码格式化选项,指定为表中的值之一。

价值 描述
“Clang-format”

类对生成的代码进行格式化clang-format文件。

“汽车”

使用内部启发式来确定生成的代码是否被格式化clang-format或者MathWorks®格式化工具。

来确定所生成的代码是否被格式化clang-format,在coder.config对象,设置冗长选项“详细”

“MathWorks”

使代码生成器恢复到MathWorks格式化工具。

生成的代码中文件和函数横幅的代码生成模板。默认情况下,CodeTemplate为空,代码生成器将生成默认横幅。要生成自定义横幅,请设置CodeTemplate到一个编码器。MATLABCodeTemplate从代码生成模板(CGT)文件创建的对象。看到为C/ c++代码生成自定义文件和函数横幅(嵌入式编码)

生成代码的代码替换库,指定为本表中的值之一:

价值 描述
“没有”

此值为默认值。

不使用代码替换库。

命名代码替换库

生成对特定平台、编译器或标准代码替换库的调用。命名库的列表取决于:

  • 安装支持包。万博1manbetx

  • 系统目标文件、语言、语言标准和设备供应商配置。

  • 是否使用嵌入式编码器产品创建和注册代码替换库。

兼容库依赖于以下参数:

  • TargetLang

  • TargetLangStandard

  • ProdHWDeviceType在硬件实现中配置对象。

嵌入式Coder提供了更多的库以及创建和使用自定义代码替换库的能力。

MATLAB®编码器™的最小集# include所选代码替换库所需的头文件的语句。

在设置此参数之前,请验证编译器是否支持要使用的库。万博1manbetx如果选择了编译器不支持的参数值,则可能发生编译器错误。万博1manbetx

请注意

MATLAB编码器软件不支持TLC回调。万博1manbetx

在生成的代码中换行前的最大列数,指定为范围[45,65536]的正整数。

关于换行符位置的其他规则可以优先于您指定的列限制。

生成的代码中的注释样式,指定为本表中的值之一。

价值 描述
“汽车” 对于C,生成多行注释。对于c++,生成单行注释。
单行的 生成前面为的单行注释//
“多行” 生成以分隔的单行或多行注释/*而且* /

对于C代码生成,只在编译器支持单行注释样式的情况下指定单行注释样式。万博1manbetx

依赖:GenerateComments启用此参数。

看到为C/ c++代码指定注释样式(嵌入式编码)

编译时递归的函数特化的最大数目,指定为正整数。要在MATLAB代码中禁止递归,请设置CompileTimeRecursionLimit为0。默认的编译时递归限制对于大多数需要这种类型递归的递归函数来说足够大。如果由于编译时递归限制而导致代码生成失败,而您想要编译时递归,请尝试增加限制。或者,更改MATLAB代码,使代码生成器使用运行时递归。看到达到编译时递归限制

常量文件夹执行的最大指令数。在某些情况下,代码生成需要特定的指令保持不变。如果常数折叠在这些指令被常数折叠之前停止,代码生成就会失败。在这种情况下,增加的值ConstantFoldingTimeout

看到生成代码中的MATLAB编码器优化

转换if-elseif-else模式切换实例生成的代码中的语句,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不进行转换if-elseif-else模式切换实例语句。

真正的 代码生成器尝试转换if-elseif-else模式切换实例语句。代码生成器生成一个切换实例仅当所有潜在的大小写表达式都是标量整数值时才使用语句。

看到控制C代码风格(嵌入式编码)

是否生成包含枚举类或普通C枚举的c++ 11代码,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器在生成的c++ 11代码中为MATLAB枚举生成枚举类。看到枚举的代码生成

代码生成器在生成的c++ 11代码中为MATLAB枚举生成普通C枚举。

依赖:

  • 设置TargetLang“c++”启用此参数。

用于生成c++代码时的接口类的名称CppInterfaceStyle设置为“方法”.在这种情况下,为MATLAB入口点函数生成的代码由包含在c++类中的方法组成,类的名称由CppInterfaceClassName.此属性在设置时不起作用CppInterfaceStyle“功能”

看到使用类接口生成c++代码

用于生成代码的MATLAB入口点函数的c++代码的界面样式。默认情况下,入口点函数变成c++函数。如果你愿意“方法”,那么入口点函数就变成了c++类中的方法。使用属性指定类的名称CppInterfaceClassName

看到使用类接口生成c++代码

依赖:

  • 设置TargetLang“c++”启用此参数。

是否为MATLAB代码中的包生成c++名称空间,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器为MATLAB代码中的包生成c++名称空间。看到将生成的c++代码组织到命名空间中

代码生成器不会为MATLAB代码中的包生成c++名称空间。

依赖:

  • 设置TargetLang“c++”启用此参数。

数据类型:逻辑

生成的c++代码的命名空间。除非指定非空字符向量,否则代码生成器不会在名称空间中生成代码。

看到将生成的c++代码组织到命名空间中

依赖:

  • 设置TargetLang“c++”启用此参数。

为MathWorks代码生成的c++代码的命名空间。如果将此属性指定为空字符向量,则代码生成器不会生成这样的名称空间。

看到将生成的c++代码组织到命名空间中

依赖:

  • 设置TargetLang“c++”启用此参数。

数据类型:字符

是否为MATLAB类生成c++类或C风格结构,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器为MATLAB类生成c++类。看到生成MATLAB类的c++类

代码生成器为MATLAB类生成C风格的结构。

当使用GPU Coder™时,代码生成器总是禁用此参数。

依赖:

  • 设置TargetLang“c++”启用此参数。

数据类型:逻辑

BLAS库的回调类调用为MATLAB代码中某些低级向量和矩阵操作生成的代码,指定为字符向量。

如果您为某些低级向量和矩阵函数指定了BLAS回调类,代码生成器将通过使用到BLAS库的CBLAS C接口来生成BLAS调用。回调类提供CBLAS头文件的名称、CBLAS数据类型的名称以及链接到BLAS库所需的信息。如果此参数为空,代码生成器将生成矩阵函数的代码,而不是BLAS调用。

看到通过使用BLAS调用加速生成的独立代码中的矩阵操作

宏,它指定使用附加字符和令牌自定义生成的文件名。有关更多信息,请参见自定义从MATLAB代码生成的C/ c++文件名(嵌入式编码)

在MATLAB代码中为FFT函数生成的代码中用于FFTW库调用的回调类,指定为字符向量。

为了提高FFT函数的执行速度,代码生成器会调用回调类中指定的FFTW库。如果此参数为空,代码生成器将使用自己的FFT函数算法,而不是调用FFTW库。

看到通过使用FFTW库调用加速生成的独立代码中的快速傅里叶变换

出现在从MATLAB代码生成的每个C/ c++头文件顶部附近的自定义代码,除非rtwtypes.h而且rtwhalf.h,指定为字符向量。

在编译生成的代码时要添加到Include路径中的Include文件夹。将包含文件夹列表指定为字符串数组、字符向量的单元格数组或字符向量。

多个文件夹名,指定为此表中的值之一。

价值 描述
字符串数组

中的字符串数组。CustomInclude.例如,cfg。CustomInclude = ["C:\项目","C:\自定义文件"];

字符向量的单元格数组

中字符向量的单元格数组CustomInclude.例如,cfg。CustomInclude = {'C:\项目','C:\自定义文件'};

特征向量

分隔包含文件夹pathsep字符CustomInclude.例如,cfg。CustomInclude = ['C:\项目' pathsep 'C:\自定义文件'];

请注意

在未来的版本中,将不再使用字符向量在代码配置对象中指定多个条目。使用字符向量的字符串数组和单元格数组。有关更多信息,请参见兼容性的考虑

要包含在生成的初始化函数中的自定义代码,指定为字符向量。

LAPACK库的回调类调用MATLAB代码中为某些线性代数函数生成的代码,指定为字符向量。

如果为某些线性代数函数指定LAPACK回调类,则代码生成器通过使用LAPACK库的LAPACKE C接口来生成LAPACK调用。回调类提供LAPACKE头文件的名称以及链接到LAPACK库所需的信息。如果此参数为空,代码生成器将生成用于线性代数函数的代码,而不是LAPACK调用。

看到通过使用LAPACK调用加速生成的独立代码中的线性代数

与生成的代码链接的静态库文件,指定为字符串数组、单元格数组的字符向量或字符向量。

多个静态库文件名,指定为本表中的值之一。

价值 描述
字符串数组

中的字符串数组。CustomLibrary.例如,cfg。CustomLibrary = ["myLib1.lib","myLib2.lib"];

字符向量的单元格数组

中字符向量的单元格数组CustomLibrary.例如,cfg。CustomLibrary = {'myLib1.lib','myLib2.lib'};

特征向量

分隔静态库文件名pathsep字符CustomLibrary.例如,cfg。CustomLibrary = ['myLib1.]lib' pathsep 'myLib2.lib'];

请注意

在未来的版本中,将不再使用字符向量在代码配置对象中指定多个条目。使用字符向量的字符串数组和单元格数组。有关更多信息,请参见兼容性的考虑

要编译并与生成的代码链接的源文件,指定为字符串数组、字符向量的单元格数组或字符向量。

构建过程首先在当前文件夹中搜索源文件,然后在您指定的包含文件夹中搜索CustomInclude.如果具有相同名称的源文件出现在搜索路径上的多个文件夹中,则构建过程可能使用与您指定的文件不同的文件。

假设你指定foo.cpp作为源文件。如果foo.c而且foo.cpp都在搜索路径上,您无法确定构建过程是否使用foo.cfoo.cpp

多个源文件名,指定为本表中的值之一。

价值 描述
字符串数组

中的字符串数组。CustomSource.例如,cfg。CustomSource = ["mySrc1.c","mySrc2.c"];

字符向量的单元格数组

中字符向量的单元格数组CustomSource.例如,cfg。CustomSource = {'mySrc1.c','mySrc2.c'};

特征向量

用a分隔源文件名pathsep字符CustomSource.例如,cfg。CustomSource = ['mySrc1.c' pathsep 'mySrc2.c'];

请注意

在未来的版本中,将不再使用字符向量在代码配置对象中指定多个条目。使用字符向量的字符串数组和单元格数组。有关更多信息,请参见兼容性的考虑

指定代码以出现在每个生成的代码的顶部附近.c. cpp文件(除了rtwhalf.crtwhalf.cpp),在任何功能之外。将code指定为字符向量。

不要指定C静态函数定义。

生成EMX数组类型(可嵌入mxArray类型)的自定义标识符格式,指定为字符向量。若要指定格式,请参见自定义生成标识符(嵌入式编码)

生成EMX Array(可嵌入mxArrays)实用函数的自定义标识符格式,指定为字符向量。若要指定格式,请参见自定义生成标识符(嵌入式编码)

生成的本地函数标识符的自定义标识符格式,指定为字符向量。若要指定格式,请参见自定义生成标识符(嵌入式编码)

全局类型标识符中生成的字段名的自定义标识符格式,指定为字符向量。若要指定格式,请参见自定义生成标识符(嵌入式编码)

生成的全局变量标识符的自定义标识符格式,指定为字符向量。若要指定格式,请参见自定义生成标识符(嵌入式编码)

生成的常量宏标识符的自定义标识符格式,指定为字符向量。若要指定格式,请参见自定义生成标识符(嵌入式编码)

生成的本地临时变量标识符的自定义标识符格式,指定为字符向量。若要指定格式,请参见自定义生成标识符(嵌入式编码)

生成的全局类型标识符的自定义标识符格式,指定为字符向量。若要指定格式,请参见自定义生成标识符(嵌入式编码)

出现在生成的终止函数中的代码,指定为字符向量。

所选工具链中的工具的自定义设置,指定为单元格数组。

依赖关系:

  • 工具链属性确定单元格数组中出现哪些工具和选项。

  • 设置BuildConfiguration财产指定使CustomToolchainOptions

首先,获取当前设置。例如:

CFG = code .config(“自由”);cfg。BuildConfiguration =“指定”;Opt = cfg。CustomToolchainOptions

然后,编辑中的值选择

这些值来自工具链定义文件和第三方编译器选项。看到自定义工具链注册

生成的代码中的数据类型替换,指定为本表中的值之一。

价值 描述
“CBuiltIn”

此值为默认值。

代码生成器使用内置的C数据类型。

“CoderTypeDefs” 代码生成器使用预定义的数据类型rtwtypes.h

深度学习网络代码生成的配置对象,指定为本表中的对象之一。

对象 需要 描述
编码器。MklDNNConfig

  • 深度学习工具箱™

  • 深度学习库的MATLAB编码器接口万博1manbetx支持包

一个编码器。MklDNNConfig对象包含特定于使用Intel进行深度学习的c++代码生成的参数®MKL-DNN。要创建编码器。MklDNNConfig对象,使用编码器。DeepLearningConfig.例如:

CFG = code .config(墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“mkldnn”);

看到基于mml - dnn的深度学习网络代码生成

编码器。一个RMNEONConfig

  • 深度学习工具箱

  • 深度学习库的MATLAB编码器接口万博1manbetx支持包

一个编码器。一个RMNEONConfig对象包含特定于使用ARM进行深度学习的c++代码生成的参数®计算库。要创建编码器。一个RMNEONConfig对象,使用编码器。DeepLearningConfig.例如:

CFG = code .config(“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“arm-compute”);

看到基于ARM计算库的深度学习网络代码生成

编码器。CuDNNConfig(GPU编码器)

  • 深度学习工具箱

  • GPU编码器

  • 用于深度学习库的GPU编码器接口万博1manbetx支持包

一个编码器。CuDNNConfig对象包含特定于CUDA的参数®使用cuDNN库进行深度学习的代码生成。要创建编码器。CuDNNConfig对象,使用编码器。DeepLearningConfig.例如:

cfg = code . gpuconfig (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“cudnn”);

看到基于cuDNN的深度学习网络代码生成(GPU编码器)

编码器。TensorRTConfig(GPU编码器)

  • 深度学习工具箱

  • GPU编码器

  • 用于深度学习库的GPU编码器接口万博1manbetx支持包

一个编码器。TensorRTConfig对象包含特定于CUDA代码生成的参数,用于使用TensorRT库进行深度学习。要创建编码器。TensorRTConfig对象,使用编码器。DeepLearningConfig.例如:

cfg = code . gpuconfig (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“tensorrt”);

看到基于TensorRT的深度学习网络代码生成(GPU编码器)

依赖:如果DeepLearningConfig是集,codegenTargetLangc++

对象描述,指定为字符向量。

动态内存分配模式,指定为该表中的一个值。

价值 描述
“阈值”

此值为默认值。

代码生成器在堆上为大小(以字节为单位)大于或等于的可变大小数组动态分配内存DynamicMemoryAllocationThreshold

“AllVariableSizeArrays” 代码生成器动态地为堆上所有可变大小的数组分配内存。
“关闭”

代码生成器静态地为堆栈上的可变大小数组分配内存。

无界可变大小数组需要动态内存分配。

依赖关系:

  • EnableVariableSizing启用此参数。

  • 设置这个DynamicMemoryAllocation“阈值”使DynamicMemoryAllocationThreshold参数。

看到生成可变大小数据的代码

在生成的C/ c++函数的接口上动态分配数组的实现,指定为本表中的值之一。

价值 描述
“汽车”

这是默认值。如果你设置TargetLang参数“c++”“C”,此值对应地表现为相同的标志。

“C”

生成的代码使用C样式emxArray实现动态分配数组的数据结构。看到在生成的函数接口中使用C数组

“c++”

如果你设置TargetLang参数“C”,该值被禁用。

生成的代码使用编码器:数组类模板来实现动态分配的数组。看到在生成的函数接口中使用动态分配的c++数组

当使用GPU Coder时,代码生成器总是使用C风格emxArray数据结构。

依赖:

  • EnableVariableSizing启用此参数。

固定大小和可变大小数组的动态内存分配的大小阈值,指定为正整数。代码生成器对大小(以字节为单位)大于或等于阈值的固定大小和可变大小数组使用动态内存分配。

依赖:

  • 设置DynamicMemoryAllocation“阈值”启用此参数。

看到生成可变大小数据的代码

自动外部函数调用,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器将一些常见的可视化函数视为外部函数。您不必将这些函数声明为外部函数coder.extrinsic.此功能减少了使代码适合于代码生成所花费的时间。

代码生成器不会将常见的可视化函数视为外部函数,除非您将它们声明为外部函数coder.extrinsic

一些常见的可视化函数是情节disp,数字.看到使用MATLAB引擎在生成的代码中执行函数调用

自动并行化循环,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不会自动并行化循环。

真正的

代码生成器自动并行化生成的代码中的循环。自动并行化可以显著提高生成代码的执行速度。看到自动并行化生成代码中的循环

当使用GPU编码器,代码生成器总是启用自动并行化循环。

数据类型:逻辑

的自动并行化报告循环,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

如果你设置EnableAutoParallelization真正的时,代码生成器生成用于自动并行化的代码生成报告循环

的自动并行化代码生成器不会生成代码生成报告循环。

生成的C/ c++代码中MATLAB数据类型的自定义名称,指定为表中的值之一。

价值 描述

此值为默认值。

不允许为MATLAB数据类型自定义名称。

真正的

允许自定义MATLAB数据类型的名称。使用指定自定义名称ReplacementTypes.设置EnableCustomReplacementTypes真正的使ReplacementTypes参数。

生成的代码中的隐式扩展功能,指定为本表中列出的值之一。

价值 描述
真正的

此值为默认值。

代码生成器支持在生成的代码中进行隐式展开。代码生成器在生成的代码中包含修改,以应用隐式展开。看到基本操作的兼容数组大小

生成的代码不遵循隐式展开规则。

数据类型:逻辑

memcpy优化,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

如果可能,代码生成器使用memcpy优化。若要优化复制连续数组元素的代码,可以使用memcpy优化将代码替换为memcpy调用。当在编译时知道要复制的元素数量时,代码生成器使用MemcpyThreshold属性确定是否使用优化。看到memcpy优化

代码生成器不使用memcpy优化。

当使用GPU编码器时,代码生成器总是禁用的Memcpy优化。

并行化的parfor-loops,指定为该表中的一个值。

价值 描述
真正的

此值为默认值。

如果可能的话,代码生成器使用OpenMP库生成并行运行的循环迭代。

代码生成器处理parfor循环,循环。

看到parfor

OpenMP库的使用与即时(JIT)编译不兼容。如果EnableJIT而且EnableOpenMP真正的,代码生成器使用JIT编译和处理parfor循环,循环。

当使用GPU编码器,代码生成器总是处理parfor循环,循环。

运行时递归支持,指定为本表中的值之一。万博1manbetx

价值 描述
真正的

此值为默认值。

在生成的代码中允许使用递归函数。

在生成的代码中不允许使用递归函数。

一些编码标准,如MISRA,不允许递归。增加生成与MISRA C兼容的代码的可能性®,设置EnableRuntimeRecursion

如果你的MATLAB代码需要运行时递归和EnableRuntimeRecursion,代码生成失败。

看到递归函数的代码生成

在生成的C/ c++代码中用带符号的左移位替换乘数的2次方,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器使用带符号的左移进行2的幂乘法。生成的C代码使用带符号左移运算8的示例如下:

I <<= 3;

代码生成器对2的幂乘法不使用带符号的左移。生成的C代码中,不使用带符号的左移运算乘法8的例子如下:

I = I * 8;

GPU编码器总是设置EnableSignedLeftShifts属性为true。

一些编码标准,如MISRA,不允许对有符号整数进行按位操作。若要增加生成MISRA C兼容代码的可能性,请设置EnableSignedLeftShifts

看到生成代码中的控件符号左移(嵌入式编码)

生成的代码中有符号的右移位,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器使用有符号的右移。生成的使用有符号右移的C代码示例如下:

I >>= 3

代码生成器在生成的代码中用函数调用替换有符号整数的右移。例如:

i = asr_s32(i, 3U);

GPU编码器总是设置EnableSignedRightShifts属性为true。

一些编码标准,如MISRA,不允许对有符号整数进行按位操作。要增加生成MISRA-C:2004兼容代码的可能性,请设置EnableSignedRightShifts

强度折减优化,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不使用强度降低优化。

真正的

代码生成器尝试使用强度降低优化来简化生成代码中循环中的数组索引。在可能的情况下,对于循环中的数组下标,代码生成器将乘法操作替换为加法操作。乘法操作可能会很昂贵。当目标平台上的C/ c++编译器没有优化数组索引时,强度约减优化是有用的。即使优化替换了生成代码中的乘法操作,C/ c++编译器也有可能生成乘法指令。

代码生成报告中的可跟踪性,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成报告包括代码可追溯性。看到MATLAB代码与生成的C/ c++代码的交互跟踪(嵌入式编码)

代码生成报告不包括代码可跟踪性。

可变大小的数组支持,指定为本表中的值之一万博1manbetx。

价值 描述
真正的

此值为默认值。

代码生成允许使用可变大小的数组。

代码生成不允许使用可变大小的数组。

依赖:

  • 使动态内存分配

看到可变大小数组的代码生成

文件分区模式指定为此表中的值之一。

价值 描述
“MapMFileToCFile”

此值为默认值。

代码生成器为每个MATLAB语言文件生成单独的C/ c++文件。

“SingleFile” 代码生成器为映射到MATLAB入口点函数的C/ c++函数生成单个文件。代码生成器为实用函数生成单独的C/ c++文件。

看到MATLAB编码器如何分区生成代码

静态代码度量报告,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不会在代码生成时运行静态代码度量分析。您可以稍后通过单击运行分析并生成报告代码度量总结代码生成报告的TAB。

真正的

代码生成器运行静态代码度量分析,并在代码生成时生成报告。

要打开代码指标报告,请单击代码度量链接到总结代码生成报告的TAB。

依赖:

  • 代码生成器仅在以下情况下才生成静态代码度量报告GenerateReport真正的或者如果你指定报告选项codegen报告。

看到为从MATLAB代码生成的代码生成静态代码度量报告(嵌入式编码)

只生成源代码,指定为此表中的值之一。

价值 描述

此值为默认值。

代码生成器生成C/ c++源代码并构建目标代码。

真正的

代码生成器生成C/ c++源代码,但不调用make命令或构建目标代码。当您在修改MATLAB代码和生成C/ c++代码之间迭代时,只生成代码可以节省时间。

代码替换报告,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不会生成代码替换报告。

真正的

代码生成器生成一个代码替换报告,该报告总结了所选代码替换库中的替换。该报告提供了每个代码替换实例和触发替换的MATLAB代码行之间的映射。

生成的代码中的注释,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器在生成的代码中放置注释。

代码生成器不会在生成的代码中放置注释。

所有switch语句的默认大小写,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器可能不会为某些switch语句生成默认大小写。

真正的 代码生成器为生成的代码中的所有switch语句生成默认大小写。

一些编码标准,如MISRA,要求switch语句使用默认大小写。

示例C/ c++主文件生成,指定为本表中的值之一。

价值 描述
“GenerateCodeOnly”

此值为默认值。

代码生成器生成一个示例C/ c++ main函数,但不编译它。

“DoNotGenerate”

代码生成器不生成示例C/ c++主函数。

“GenerateCodeAndCompile”

代码生成器生成一个示例C/ c++主函数并编译它以创建一个测试可执行文件。此可执行文件不返回输出。

如果GenCodeOnly参数是真正的,代码生成器不编译C/ c++的主函数。

main函数示例是一个模板,用于帮助您编写调用生成的C/ c++代码的C/ c++ main函数。看到使用示例Main函数合并生成的代码

生成过程中生成的Makefile,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器在构建过程中生成一个makefile。

代码生成器在构建过程中不会生成makefile。在代码生成后命令中指定代码生成后处理的指令,包括编译和链接。看到构建过程定制

为非有限数据生成支持文件,指万博1manbetx定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器为非有限数据生成支持文件(万博1manbetx而且)仅当生成的代码使用非有限数据时。

代码生成器总是为非有限数据生成支持文件(万博1manbetx而且).

依赖:

  • 设置万博1manbetxSupportNonFinite真正的启用此参数。

代码生成报告,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器仅在发生错误或警告消息或设置LaunchReport真正的

真正的 代码生成器生成一个代码生成报告。

对象,该对象指定硬件板。要创建编码器。硬件对象,使用coder.hardware.例如:

CFG = code .config('lib');Hw =编码器。硬件(覆盆子π);cfg。硬件= hw;

使用前coder.hardware时,必须安装硬件板的支持包。万博1manbetx

依赖关系:

  • 设置硬件为特定的硬件板定制硬件实现对象和其他配置参数。

  • 如果DeepLearningConfig设置为编码器。一个RMNEONConfig对象和硬件那么是空的codegen设置GenCodeOnly财产真正的

注意:

  • 假设你创建了一个编码器。CodeConfig对象cfg并在另一个MATLAB会话中使用它。如果MATLAB主机计算机的第二次会话没有指定的硬件板cfg。硬件属性安装在其上时,此参数将恢复为默认值。默认值为[].设置硬件板选项MATLAB主机在应用中就相当于使用cfg。硬件而且cfg.HardwareImplementation.ProdHWDeviceType使用它们的默认值。

要指定用于PIL执行的硬件板,请参见在命令行使用ARM Cortex-A进行PIL执行(嵌入式编码)

硬件实现对象,为C/ c++代码生成指定特定于硬件的配置参数。coder.config创建一个编码器。EmbeddedCodeConfig对象的HardwareImplementation属性设置为编码器。HardwareImplementation对象,使用MATLAB主机的默认参数值。

为了防止由于包含多个头文件而导致的编译错误,代码生成器将生成任意一个头文件#如果未定义# pragma一旦在生成的头文件中构造。如果项目使用使用相同预处理器宏的不同文件,则使用# pragma一旦构造。的编译行为# pragma一旦不标准化。

指定HeaderGuardStyle作为该表中的值之一。

价值 描述
UseIncludeGuard

代码生成器生成#如果未定义风格# include警卫。

UsePragmaOnce 代码生成器生成# pragma一旦风格# include警卫。

突出显示代码生成报告中潜在的数据类型问题,指定为此表中的值之一。

价值 描述

此值为默认值。

此代码生成报告没有突出显示潜在的数据类型问题。

真正的

代码生成报告强调了在生成的C/ c++代码中导致单精度或双精度操作的MATLAB代码。如果您使用的是Fixed-Point Designer™,那么报告还会突出显示MATLAB代码中的表达式,这些表达式会在生成的代码中导致昂贵的定点操作。

显示潜在的行主布局效率问题,指定为本表中的值之一。

价值 描述
真正的

代码生成报告显示了由于行主布局而导致的潜在效率问题。(此值为默认值。)

代码生成报告不显示与数组布局相关的问题。

看到行-主数组布局代码设计

初始化函数生成,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器生成一个初始化函数。

代码生成器不产生初始化函数。如果你设置IncludeInitializeFcn初始化函数是必需的,例如,调用非有限数据的支持代码(万博1manbetx),则程式码生成器会产生错误讯息。

看到在生成的代码中需要非空初始化函数的MATLAB代码模式(嵌入式编码)

当使用GPU Coder时,代码生成器总是产生一个初始化函数。

终止函数生成,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器生成一个终止函数。

代码生成器不产生终止函数。如果你设置IncludeTerminateFcn并且需要一个终止函数,例如,为了释放内存,代码生成器会发出警告。

当使用GPU Coder时,代码生成器总是产生一个终止函数。

每个缩进级别的字符数,指定为范围[2,8]内的正整数。

在生成的代码中放置花括号的样式,指定为本表中的值之一。

价值 描述
“k和r”

此值为默认值。

对于函数中的块,开大括号与其控制语句在同一行。例如:

Void addone(const double x[6], double z[6]) {int i0;For (i0 = 0;I0 < 6;I0 ++) {z[I0] = x[I0] + 1.0;}}

“奥尔曼”

对于函数中的块,开大括号在它自己的行上,与它的控制语句处于相同的缩进级别。例如:

Void addone(const double x[6], double z[6]) {int i0;For (i0 = 0;I0 < 6;I0 ++) {z[I0] = x[I0] + 1.0;}}

浮点数和双零的赋值memset,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

如果可能,代码生成器使用memset浮点零分配到连续数组元素的优化。要指定连续的数组元素,可以使用memset优化使用memset调用。当要赋值的元素数量在编译时已知时,代码生成器使用MemcpyThreshold属性确定是否使用优化。看到memset优化

代码生成器不使用memset浮点数和双零分配到连续数组元素的优化。

在MathWorks调用另一个MathWorks函数(指定为本表中的值之一)的所有调用站点上的内联行为。

价值 描述
“速度”

此值为默认值。

使用内部启发式来确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。

“总是”

总是在调用站点执行内联。

“可读性”

几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。结果是高可读性的代码。

“永远”

永远不要内联函数调用。结果是最大的可读性。这种设置可能会显著降低生成代码的性能。

即使你选择了“总是”或者是“永远”选项的设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)coder.inline(“不”)置于函数体中的指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互

看到控制内联以优化生成代码的性能和可读性

在您编写的函数调用MathWorks函数或MathWorks函数调用您编写的函数的所有调用站点上的内联行为。指定为本表中的值之一。

价值 描述
“速度”

此值为默认值。

使用内部启发式来确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。

“总是”

总是在调用站点执行内联。

“可读性”

几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。结果是高可读性的代码。

“永远”

永远不要内联函数调用。结果是最大的可读性。这种设置可能会显著降低生成代码的性能。

即使你选择了“总是”或者是“永远”选项的设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)coder.inline(“不”)置于函数体中的指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互

看到控制内联以优化生成代码的性能和可读性

在您编写的函数调用另一个您编写的函数(指定为本表中的值之一)的所有调用站点上的内联行为。

价值 描述
“速度”

此值为默认值。

使用内部启发式来确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。

“总是”

总是在调用站点执行内联。

“可读性”

几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。结果是高可读性的代码。

“永远”

永远不要内联函数调用。结果是最大的可读性。这种设置可能会显著降低生成代码的性能。

即使你选择了“总是”或者是“永远”选项的设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)coder.inline(“不”)置于函数体中的指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互

看到控制内联以优化生成代码的性能和可读性

自动打开生成报告的代码,指定为本表中的值之一。

价值 描述

此值为默认值。

如果发生错误或警告,或者如果GenerateReport真正的时,代码生成器生成报告,但不打开报告。

真正的 代码生成器生成并打开代码生成报告。

迭代次数少于此阈值的循环可以由代码生成器自动展开。这个阈值适用于所有循环和parfor-循环在你的MATLAB代码。对于个人来说循环,coder.unroll放在循环前面的指令优先于循环展开优化。这个阈值也适用于某些情况-在代码生成期间产生的循环。

看到展开for-Loops和parfor-Loops

MATLAB函数帮助文本在函数横幅中生成的代码指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器在生成的代码中包含MATLAB函数帮助文本中的函数横幅。

代码生成器将帮助文本视为用户注释。

如果未选中,MATLAB编码器将帮助文本视为用户注释。

依赖关系:

  • GenerateComments启用此参数。

在生成的代码中包含MATLAB源代码作为注释,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不会在生成的代码中插入MATLAB源代码作为注释。代码生成器在函数横幅中不包含MATLAB函数签名。

真正的

代码生成器在生成的代码中插入MATLAB源代码作为注释。可追溯性标记立即位于源代码的每一行之前。可追溯性标签帮助您定位相应的MATLAB源代码。看到跟踪生成的C/ c++代码到MATLAB源代码

如果您使用了Embedded Coder,那么在代码生成报告中,可追溯性标记将链接到源代码。

代码生成器还在函数横幅中包含MATLAB函数签名。

依赖:

  • GenerateComments启用此参数。

看到跟踪生成的C/ c++代码到MATLAB源代码

生成的标识符中的最大字符数,指定为范围[31,2048]内的正整数。此属性应用于生成的函数、类型定义和变量名。要避免目标C/ c++编译器截断标识符,请指定一个与目标C/ c++编译器最大标识符长度匹配的值。

此属性不适用于导出的标识符,例如为入口点函数或emxArray API函数生成的名称。如果导出的标识符长度超过目标C/ c++编译器的最大标识符长度,目标C/ c++编译器将截断导出的标识符。

默认值:

  • 如果TargetLang设置为“C”的默认值MaxIdLength31

  • 如果TargetLang设置为“c++”的默认值MaxIdLength1024

memcpy或memset优化的最小大小(以字节为单位),指定为正整数。

若要优化复制连续数组元素的生成代码,代码生成器会尝试将代码替换为memcpy调用。为优化将文字常量赋值给连续数组元素的生成代码,代码生成器会尝试将代码替换为memset调用。

字节数是要复制或赋值的数组元素的数量乘以C/ c++数据类型所需的字节数。

如果要复制或赋值的元素数量是可变的(在编译时不知道),代码生成器将忽略MemcpyThreshold财产。

看到memcpy优化而且memset优化

多实例、可重入代码,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不会生成多实例、可重入的代码。

真正的

代码生成器生成可重用的、可重入的多实例代码。

看到可重入代码

GPU Coder产品不支持此选项。万博1manbetx

对象名称,指定为字符向量。

并行运行的最大CPU线程数-循环在生成的C/ c++代码中,指定为正整数。

看到在生成的代码中指定并行for循环运行的最大线程数

从生成的C/ c++代码构建的输出,指定为本表中的值之一。

价值 描述
“自由” 静态库
“DLL” 动态链接库
EXE” 可执行程序

生成的代码中的括号级别,指定为本表中的值之一。

价值 描述
“名义”

此值为默认值。

代码生成器插入圆括号以平衡可读性和视觉复杂性。例如:

Out = (In2 - In1 > 1.0) && (In2 > 2.0));

“最大”

代码生成器包含圆括号来指定含义,而不依赖运算符优先级。使用此设置生成的代码符合MISRA要求。例如:

Out = ((In2 - In1) > 1.0) && (In2 > 2.0));

“最低”

代码生成器在ANSI要求的地方插入圆括号®C或c++,或重写默认优先级。例如:

Out = In2 - In1 > 1.0 && In2 > 2.0;

如果生成使用最低级别的C/ c++代码,对于某些编译器中的某些设置,您可以收到编译器警告。要消除这些警告,请尝试标称水平。

通过引用入口点函数传递结构,入口点函数指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

生成的代码通过引用传递结构,这通过最小化入口点函数边界的参数副本数量来减少内存使用和执行时间。

请注意

写入结构参数字段的入口点函数将覆盖输入值。

生成的代码按值传递结构。

此参数仅应用于入口点函数。

看到在生成的代码中通过引用或值传递结构参数

命令用于自定义生成处理后的MEX功能生成codegen,指定为字符向量。

看到构建过程定制

保存走读生生成的代码中的函数声明中的关键字,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器包括走读生关键字用于外部函数的声明。

代码生成器删除走读生关键字从函数声明。

生成使用n维索引的代码,该索引指定为本表中的值之一。

价值 描述

生成使用一维索引的代码。(此值为默认值。)

真正的 生成使用n维索引的代码。

看到生成使用n维索引的代码

在生成的C/ c++代码中保留未使用的类属性或结构字段,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器通过删除生成代码中未使用的属性和字段来生成C/ c++代码。

真正的

代码生成器通过保留生成代码中未使用的属性和字段来生成C/ c++代码。

看到在生成的C/ c++代码中删除未使用的类属性(嵌入式编码)

要保存在生成的代码中的变量名,指定为本表中的值之一。

价值 描述
“没有”

此值为默认值。

代码生成器不必保留任何变量名。它可以重用任何满足变量重用要求的变量。

如果您的代码使用大型结构或数组,设置PreserveVariableNames“没有”可以减少内存使用或提高执行速度。

“用户名”

代码生成器保留与MATLAB代码中定义的变量对应的名称。它不会将您的变量名替换为另一个名称,也不会将您的名称用于另一个变量。为了提高可读性,设置PreserveVariableNames“用户名”.然后,您可以更容易地将生成代码中的变量追溯到MATLAB代码中的变量。

设置PreserveVariableNames“用户名”不会阻止优化从生成的代码中删除变量,也不会阻止C/ c++编译器重用生成的二进制代码中的变量。

“所有”

保留所有变量名。该参数值禁止变量重用。只能将其用于测试或调试,而不能用于生产代码。

看到在生成的代码中保留变量名

检测浮点代码,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器允许浮点数据和操作。

真正的

代码生成器不允许浮点数据或操作。如果代码生成器检测到浮点数据或操作,代码生成将以错误结束。

依赖:

  • 设置PurelyIntegerCode真正的禁用万博1manbetxSupportNonFinite参数。设置PurelyIntegerCode使万博1manbetxSupportNonFinite参数。

为这些MATLAB内置数据类型指定自定义名称:uint8uint16uint32uint64int8int16int32int64字符,逻辑在生成的C/ c++代码中。

依赖:

将有关代码生成的信息导出到其中的变量的名称,指定为字符向量。代码生成器在基本MATLAB工作区中创建此变量。此变量包含有关代码生成设置、输入文件、生成文件和代码生成消息的信息。

看到以编程方式访问代码生成报告信息而且编码器。ReportInfo属性

潜在差异报告,指定为本表中的值之一:

价值 描述
真正的 代码生成器报告生成的代码和MATLAB代码之间的潜在行为差异。代码生成报告的选项卡上列出了潜在的差异。电位差是在运行时仅在某些条件下发生的差。
代码生成器不会报告潜在的差异。

看到潜在差异报告

代码生成器不能用于函数或变量的名称列表,指定为字符串数组、字符向量的单元格数组或字符向量。

多个保留名称,指定为此表中的一个值。

价值 描述
字符串数组

中的字符串数组。ReservedNameArray.例如,cfg。ReservedNameArray = ["reserve1","reserve2","reserve3"]

字符向量的单元格数组

中字符向量的单元格数组ReservedNameArray.例如,cfg。ReservedNameArray = {'reserve1','reserve2','reserve3'}

特征向量

中以分号分隔的保留名称列表ReservedNameArray.例如,cfg。reservenamearray = 'reserve1;reserve2;reserve3'

请注意

在未来的版本中,将不再使用字符向量在代码配置对象中指定多个条目。使用字符向量的字符串数组和单元格数组。有关更多信息,请参见兼容性的考虑

生成使用行主数组布局的代码,该布局指定为本表中的值之一。

价值 描述

生成使用列主数组布局的代码。(此值为默认值。)

真正的 生成使用行主数组布局的代码。

看到生成使用行主数组布局的代码

在生成的入口点函数的开始处生成对初始化函数的调用,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

在生成的入口点函数的开头包含对initialize函数的调用。生成的代码包括检查,以确保initialize函数只被调用一次,即使存在多个入口点函数。

生成的入口点函数不包括对初始化函数的调用。

依赖:

  • 设置IncludeInitializeFcn而且IncludeTerminateFcn真正的启用此参数。

  • 设置MultiInstanceCode真正的禁用此参数。

看到使用生成的初始化和终止函数

生成的代码中的运行时错误检测和报告,指定为本表中的值之一。

价值 描述

此值为默认值。

生成的代码不会检查错误,例如超出范围的数组索引。

真正的

生成的代码检查错误,例如越界的数组索引。

错误报告软件使用将错误消息写入stderr.它使用中止终止应用程序。如果而且中止不可用,你必须提供它们。的中止函数突然终止程序。如果您的系统支持信号,您可以捕万博1manbetx获中止信号(SIGABRT)这样你就可以控制程序的终止。

错误信息是英文的。

看到生成独立的C/ c++代码来检测和报告运行时错误

整数溢出支持,指定为本表中的值之一万博1manbetx。

价值 描述
真正的

此值为默认值。

代码生成器生成处理整数溢出的代码。溢出饱和到数据类型可以表示的最小值或最大值。

代码生成器不会生成处理整数溢出的代码。不要设置SaturateOnIntegerOverflow除非您确定您的代码不依赖于整数溢出支持。万博1manbetx如果禁用整数溢出支持,并且启用了运行时错误检查,则生成的代码将为万博1manbetx溢出生成一个错误。如果禁用整数溢出支持并禁用运行时错误检查,则溢出行为取决于目标C万博1manbetx编译器。在C标准中,整数溢出的行为是未定义的。然而,大多数C编译器在溢出时自动换行。

此参数仅适用于MATLAB内置整数类型。它不适用于双精度、单精度或定点数据类型。

看到禁用对整数溢出或万博1manbetx非有限的支持

在循环软件(SIL)执行期间生成的代码的源代码级调试,指定为本表中的值之一。

价值 描述

此值为默认值。

在SIL执行期间禁用所生成代码的调试。

真正的

使调试器能够在软件在循环(SIL)执行期间观察代码行为。

万博1manbetx调试器支持:

  • 在Windows上®微软®Visual c++®调试器。

  • 在Linux上®, GNU®数据显示调试器(DDD)。

看到在SIL执行期间调试生成的代码(嵌入式编码)

SIL或PIL执行的常量输入检查模式,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

SIL或PIL执行将测试文件为常量输入参数提供的值与代码生成时指定的值进行比较。如果值不匹配,则发生错误。

SIL或PIL执行不会将测试文件为常量输入参数提供的值与代码生成时指定的值进行比较。SIL或PIL执行使用在代码生成时指定的值。如果测试文件使用不同的值,那么MATLAB中的结果可能与SIL或PIL执行中的结果不同。

可以通过设置来加速SIL或PIL的执行SILPILCheckConstantInputs

看到通过禁用固定输入检查和全局数据同步来加速SIL/PIL执行(嵌入式编码)

SIL或PIL执行的全局数据同步模式,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

SIL或PIL执行将SIL或PIL执行环境中的全局变量值与MATLAB工作空间中的值同步。如果一个全局变量是常量,并且它在SIL或PIL执行环境中的值与其在MATLAB工作空间中的值不同,则会发生错误。

SIL或PIL执行不会将SIL或PIL执行环境中的全局变量的值与MATLAB工作空间中的值同步。如果这些值没有同步,MATLAB中的结果可能与SIL或PIL执行中的结果不同。

可以通过设置来加速SIL或PIL的执行SILPILSyncGlobalData

看到通过禁用固定输入检查和全局数据同步来加速SIL/PIL执行(嵌入式编码)

在软件在环(SIL)或处理器在环(PIL)执行期间显示通信I/O信息,指定为本表中的值之一。

价值 描述
“关闭”

此值为默认值。

在SIL或PIL执行期间,代码生成器不显示通信I/O信息。

“上”

代码生成器在SIL或PIL执行期间显示通信I/O信息。

看到处理主机与目标器通信故障(嵌入式编码)

每个应用程序的最大堆栈使用量(以字节为单位),指定为正整数。设置一个低于可用堆栈大小的限制。否则,可能会发生运行时堆栈溢出。C编译器检测并报告堆栈溢出。

看到禁用对整数溢出或万博1manbetx非有限的支持

万博1manbetx支持非有限值,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

如果GenerateNonFiniteFilesIfUsed设置为真正的,代码生成器生成支持非有限值的代码(万博1manbetx而且)只在使用时才使用。

如果GenerateNonFiniteFilesIfUsed设置为,代码生成器总是生成支持非有限值的代码(万博1manbetx而且).

代码生成器不会生成支持非有限值的代码。万博1manbetx

看到禁用对整数溢出或万博1manbetx非有限的支持

在生成的代码中使用的语言,指定为“C”“c++”.如果指定c++,代码生成器将C代码包装到.cpp文件中,以便您可以使用c++编译器并与外部c++应用程序进行接口。它不生成c++类。

当使用GPU编码器时,代码生成集TargetLangc++

依赖:如果DeepLearningConfig是集,codegenTargetLangc++

“汽车”选项使用TargetLang设置为选择生成的代码使用哪种语言标准。默认的语言标准取决于您选择的语言。对于C,默认库为“C99 (ISO)”.对于c++,默认的库是“c++ 11 (ISO)”

所生成代码使用的语言标准,指定为以下字符向量之一:

  • “C89 /人私下偷偷收藏盒式(ANSI)”

  • “C99 (ISO)”

  • “c++ 03 (ISO)”

  • “c++ 11 (ISO)”

代码生成器使用标准库调用数学和其他操作。

看到改变语言标准

用于构建C/ c++库或可执行程序的工具链,指定为字符向量。可用工具链的列表取决于主机平台,并且可以包括您添加的自定义工具链。如果未指定工具链,代码生成器将定位已安装的工具链。

注意:

  • 假设你创建了一个编码器。CodeConfig对象cfg并在另一个MATLAB会话中使用它。中指定的工具链,则用于第二个会话的MATLAB主机没有cfg。工具链属性安装在其上时,此参数将恢复为默认值。默认值为自动定位已安装的工具链

代码生成进度显示,指定为此表中的值之一。

价值 描述

此值为默认值。

代码生成器不显示代码生成进度。

真正的

代码生成器显示代码生成进度,包括代码生成阶段和编译器输出。

是否在MATLAB命令行中显示代码生成进度的状态,指定为本表中的值之一。

价值 描述
“沉默”

如果代码生成成功而没有警告,则所有消息都将被抑制,包括在生成报告时。

显示警告和错误信息。

“信息”

此值为默认值。

相比之下“沉默”模式,如果代码生成成功,将显示以下附加消息:

  • 代码生成成功

  • 链接到生成的报告(如果有的话)

“详细”

中显示的消息之外“信息”将显示模式、代码生成状态和目标生成日志消息。

代码验证模式,指定为本表中的值之一。

价值 描述
“没有” 正常执行
“银” 软件在循环(SIL)执行
“公益诉讼” 循环中处理器(PIL)执行

看到通过软件在环和处理器在环执行的代码验证(嵌入式编码)

例子

全部折叠

编写一个可以生成代码的MATLAB函数。本例使用了该函数myadd返回输入的和。

函数C = myadd(a,b) C = a + b;结束

为生成独立的C/ c++代码(静态库、动态链接库或可执行程序)创建一个配置对象。例如,为生成静态库创建一个配置对象。

CFG = code .config(“自由”);

如果安装了嵌入式编码器,coder.config创建一个编码器。EmbeddedCodeConfig对象。

更改不希望使用默认值的属性的值。例如,将生成的代码中的注释样式更改为单行注释,前面是//

cfg。CommentStyle =单行的

CommentStyle属性仅在嵌入式编码器配置对象中可用。

使用以下命令生成代码codegen.将配置对象传递给codegen通过使用配置选择。指定输入参数为标量双精度。

codegenmyadd配置cfgarg游戏{1}报告

选择功能

为生成类型使用默认配置参数“自由”“DLL”,或EXE”,使用codegen选项配置:自由配置:dll,或配置:exe,分别。然后,您不必创建配置对象并将其传递给codegen

版本历史

在R2011a中引入

全部展开

不建议从R2022a开始

在未来的版本中改变行为

在未来的版本中改变行为