coder.EmbeddedCodeConfig

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

描述

一个coder.EmbeddedCodeConfig对象包含配置参数代码生成用途,用于产生一个静态库,动态链接库,或与嵌入式编码的可执行程序®。传递对象到代码生成使用配置选择。

创建

描述

例子

cfg = coder.config (build_type)创建指定生成类型,它可以是一个静态库,动态链接库,或可执行程序代码生成配置对象。如果安装了嵌入式编码器产品,它创建了一个coder.EmbeddedCodeConfig宾语。否则,它会创建一个coder.CodeConfig宾语。

cfg = coder.config (build_type'ecoder',真)创建一个coder.EmbeddedCodeConfig对象即使未安装嵌入式编码产物指定的输出类型。但是,您可以使用未生成代码coder.EmbeddedCodeConfig对象,除非您已经安装了嵌入式编码器。

输入参数

展开全部

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

价值 描述
'LIB' 静态库
'DLL' 动态链接库
'可执行程序' 可执行程序

属性

展开全部

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

价值 描述
“更快的构建”

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

“快跑”

优化构建了更快的运行可执行文件。

“调试”

优化构建用于调试。

“指定”

使CustomToolchainOptions属性在选定的工具链工具的设置定制。如果工具链属性设置为“自动定位安装的工具链”,然后设置BuildConfiguration“指定”变化工具链到定位的工具链。

数据类型转换为电平在所生成的C / C ++代码的变量,指定为在此表中的值之一。

价值 描述
“名义”

此值是默认值。

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

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

“标准”

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

短addone(短x) {int i;I =(int)的X +(INT)1;如果(ⅰ>(INT)32767){I =(int)的32767;}我返回(短);}

“明确”

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

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

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

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

价值 描述

此值是默认值。

一个SIL或者PIL执行期间禁止执行时间剖析。

真正的 一个SIL或PIL执行期间使执行时间分析。

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

在生成的代码文件和功能的横幅代码生成模板。默认情况下,CodeTemplate为空,代码生成器生成默认的横幅。制作自定义横幅,设置CodeTemplatecoder.MATLABCodeTemplate从一个代码生成模板(CGT)文件创建的对象。看到生成C / C ++代码,自定义文件和横幅功能(嵌入式编码)。

对生成的代码,指定为在该表中的值的一个码替换库:

价值 描述
'没有'

此值是默认值。

不使用代码替代库。

命名代码替换库

生成对特定平台、编译器或标准代码替换库的调用。指定的图书馆名单取决于:

  • 安装支持包。万博1manbetx

  • 系统目标文件,语言,标准数学库,以及设备供应商的配置。

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

兼容的库取决于这些参数:

  • TargetLang

  • TargetLangStandard

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

嵌入式编码提供了更多的图书馆和创造的能力,并使用自定义的代码替换库。

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++代码时,接口类的名称CppInterfaceStyle调成“方法”。在这种情况下,为MATLAB入口点函数的所产生的代码包括与名称按指定包含在C ++类的方法CppInterfaceClassName。此属性在设置时无效CppInterfaceStyle“功能”

看到生成C ++代码与类接口

接口为MATLAB的入口点函数您生成从码生成的C ++代码的风格。默认情况下,入口点函数成为C ++函数。如果您选择“方法”,然后入口点的功能成为一个C ++类的方法。通过使用属性指定类的名称CppInterfaceClassName

看到生成C ++代码与类接口

命名空间所生成C ++代码。除非你指定一个非空字符向量代码生成器并不在命名空间中生成代码。

看到C ++代码生成

是否为MATLAB类生成c++类或C样式结构,指定为此表中的值之一。

价值 描述
真正的

此值是默认值。

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

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

相关性:

  • 设置TargetLang'C ++'启用此参数。

数据类型:逻辑

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

如果指定了BLAS回调类,某些低层次的向量和矩阵的功能,代码生成器使用CBLAS C接口的BLAS库BLAS产生来电。回调类提供的名字你CBLAS头文件,CBLAS数据类型的名称,以及需要连接到信息到您的BLAS库。如果该参数为空,则代码产生器产生用于矩阵功能,而不是一个BLAS呼叫代码。

看到加快矩阵运算所产生独立代码利用BLAS电话

宏指定与其他字符和标记生成的文件名的定制。欲了解更多信息,请参阅自定义由MATLAB代码生成的C/ c++文件名(嵌入式编码)。

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

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

看到加快快速利用FFTW库调用傅立叶变换所产生独立代码

定制代码,邻近从MATLAB代码生成的各C / C ++头文件,指定为字符向量的顶部出现。

包含的文件夹添加到编译生成的代码时,包括路径。指定的文件夹中包含的字符向量列表。在字符向量,独立包括由文件夹pathsep的性格。例如:

CFG = coder.config( 'LIB', 'ecoder',TRUE);cfg.CustomInclude = [ 'C:\项目' pathsep 'C:\自定义文件'];

自定义代码以包括在所生成的初始化函数,指定为字符向量。

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

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

看到加快线性代数中生成的独立代码利用LAPACK电话

静态库文件,以便与所产生的代码链路,指定为字符向量。在特征向量,独立的库通过文件名pathsep的性格。

源文件编译和链接与所生成的代码,指定为字符向量。在字符向量,单独的源文件名由pathsep的性格。

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

假设你指定Foo.cpp中作为源文件。如果foo.c的Foo.cpp中都在搜索路径,你不能确定是否构建过程使用foo.c的Foo.cpp中

指定要显示在生成的顶部附近的代码。c. cpp文件,在任何函数之外。指定代码作为字符向量。

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

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

自定义标识符的格式生成的EMX阵列(嵌入式mxArrays)的效用函数,指定为字符向量。要指定格式,请参阅自定义生成的标识符(嵌入式编码)。

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

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

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

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

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

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

出现在所产生的终止功能代码,指定为字符向量。

用于在选择的工具链工具,指定为单元阵列的自定义设置。

依赖关系:

  • 工具链属性确定哪些工具和选项显示在单元阵列英寸

  • 设置BuildConfiguration财产指定使CustomToolchainOptions

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

cfg = coder.config (“自由”);cfg.BuildConfiguration =“指定”;选择= cfg.CustomToolchainOptions

然后,编辑值选择

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

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

价值 描述
'CBuiltIn'

此值是默认值。

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

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

用于生成深度学习网络的代码的配置对象,指定为coder.MklDNNConfig对象或coder.ARMNEONConfig宾语。

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

cfg = coder.config (墨西哥人的);cfg。TargetLang ='C ++';cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');

一个coder.ARMNEONConfig对象包含使用ARM参数特定于C ++代码生成深度学习®计算库。创建一个coder.ARMNEONConfig对象,用途coder.DeepLearningConfig。例如:

cfg = coder.config (“自由”);cfg。TargetLang ='C ++';cfg.DeepLearningConfig = coder.DeepLearningConfig(“臂-计算”);

用于深度学习网络的代码生成需要深度学习工具箱™和MATLAB编码器接口,用于深度学习库万博1manbetx支持包。

看到代码生成与MRL-DNN深学习网络代码生成与ARM计算图书馆深学习网络

相关性:DeepLearningConfig是集,代码生成TargetLangC ++

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

动态存储器分配模式,指定为在此表中的值之一。

价值 描述
'阈'

此值是默认值。

代码生成器分配存储器动态地在堆上为可变大小的数组,其大小(以字节计)大于或等于DynamicMemoryAllocationThreshold

“AllVariableSizeArrays” 该代码产生器,用于在堆上所有可变大小的数组动态地分配存储器。
“关”

代码生成静态分配用于在堆栈上可变大小的数组存储。

无界可变大小的阵列需要动态存储器分配。

依赖关系:

  • EnableVariableSizing启用此参数。

  • 设置此DynamicMemoryAllocation'阈'使DynamicMemoryAllocationThreshold参数。

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

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

价值 描述
“C”

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

'C ++'

如果你设置TargetLang参数'C ++',此值为默认值。如果你设置TargetLang参数“C”,这个值被禁用。

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

相关性:

  • EnableVariableSizing启用此参数。

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

相关性:

  • 设置DynamicMemoryAllocation'阈'启用此参数。

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

自动外在函数调用,指定此表中的值之一。

价值 描述
真正的

此值是默认值。

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

代码生成器不治疗常见的可视化功能的外在功能,除非你通过声明为外在coder.extrinsic

一些常见的可视化功能情节,DISP数字。看到非本征函数

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

价值 描述

此值是默认值。

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

真正的

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

memcpy优化,指定为该表中的一个值。

价值 描述
真正的

此值是默认值。

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

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

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

价值 描述
真正的

此值是默认值。

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

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

看到parfor

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

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

价值 描述
真正的

此值是默认值。

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

递归函数不是在生成的代码允许。

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

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

看到递归函数的代码生成

通过在将所生成的C / C ++代码签名左按位偏移,指定为在此表中的值中的一个的二的幂乘法的替换。

价值 描述
真正的

此值是默认值。

代码生成器使用带符号的左移位来乘2的幂。生成的C代码的一个例子,使用符号左移位乘8是:

我<< = 3;

代码生成器不使用带符号的左移位来乘2的幂。生成的C代码的一个例子,不使用符号左移位乘8是:

I = I * 8;

一些编码标准,如MISRA,不允许对有符号整数进行按位操作。为了提高生成MISRA C兼容码的可能性,设置EnableSignedLeftShifts

看到控制生成的代码签名左移(嵌入式编码)。

签名右按位偏移中生成的代码,指定为在此表中的值之一。

价值 描述
真正的

此值是默认值。

代码生成器使用右移位符号。一个例子生成的C代码使用签名右移位是:

我> > = 3

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

I = asr_s32(I,3U);

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

强度降低的优化,指定此表中的值之一。

价值 描述

此值是默认值。

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

真正的

代码生成器会尝试使用的强度下降优化简化数组索引在循环中生成的代码。如果可能的话,为循环数组的下标,代码生成器代替乘法运算与添加操作。乘法运算可以是昂贵的。当C / C ++目标平台上的编译器不会优化数组索引,则强度降低的优化是有用的。即使当优化在生成的代码代替乘法运算,有可能的是,C / C ++编译器可以生成乘法指令。

可追溯性代码生成报告,指定此表中的值之一。

价值 描述
真正的

此值是默认值。

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

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

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

价值 描述
真正的

此值是默认值。

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

不允许对可变大小的数组进行代码生成。

相关性:

  • 使动态内存分配

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

文件分割模式指定该表中的值之一。

价值 描述
'MapMFileToCFile'

此值是默认值。

代码发生器产生不同的C / C ++文件为每个MATLAB语言文件。

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

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

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

价值 描述

此值是默认值。

代码生成器不会运行在代码生成时的静态代码度量分析。您可以运行分析,并通过点击后产生的报告代码度量摘要代码生成报告的标签。

真正的

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

要打开代码度量报告,请点击代码度量链接摘要代码生成报告的标签。

相关性:

  • 代码生成器仅在以下情况下生成静态代码度量报告GenerateReport真正的或者,如果您指定-报告选择的代码生成报告。

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

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

价值 描述

此值是默认值。

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

真正的

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

代码替换报告,指定在此表中的值。

价值 描述

此值是默认值。

代码生成器不产生代码的替代品报告。

真正的

代码生成器产生总结了来自所选择的代码替换库中的一个替换码替换的报告。该报告提供的每个代码置换实例和的MATLAB代码触发更换线之间的映射。

评论中生成的代码,指定为在此表中的值之一。

价值 描述
真正的

此值是默认值。

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

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

默认情况下,对于所有的switch语句,指定为在此表中的值之一。

价值 描述

此值是默认值。

代码生成器可能不会产生一些开关语句的默认情况。

真正的 代码发生器产生默认情况下在生成的代码中的所有开关语句。

一些编码标准,如MISRA,需要switch语句的默认情况。

实施例C / C ++主要文件生成,指定为在此表中的值之一。

价值 描述
'GenerateCodeOnly'

此值是默认值。

该代码产生器产生的示例C / C ++主要功能,但不对其进行编译。

“DoNotGenerate”

代码生成器不产生例如C / C ++主要功能。

“GenerateCodeAndCompile”

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

如果GenCodeOnly参数真正的中,代码生成不编译的C / C ++主要功能。

一个例子的主要功能是一个模板来帮你写一个C / C ++主要生成调用C / C ++代码的功能。看到合并生成的代码使用一个实施例主要功能

在构建过程中生成Makefile,指定为此表中的一个值。

价值 描述
真正的

此值是默认值。

该代码产生器产生在生成过程中生成文件。

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

对于非限定性数据的支持文件,万博1manbetx规定在本表中的值的一代。

价值 描述
真正的

此值是默认值。

代码生成器产生用于非限定性数据支持文件(万博1manbetx天道酬勤为NaN)仅当所生成的代码使用非限定的数据。

代码生成器总是产生的非限定性的数据支持文件(万博1manbetx天道酬勤为NaN)。

相关性:

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

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

价值 描述

此值是默认值。

只有在发生错误或警告消息时,或者在您设置时,代码生成器才会生成报告LaunchReport真正的

真正的 代码生成器产生的代码生成报告。

对象,指定一个硬板。要创建coder.Hardware对象,用途coder.hardware。例如:

CFG = coder.config( 'LIB');HW = coder.hardware( '树莓裨');cfg.Hardware = HW;

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

依赖关系:

  • 设置硬件定制用于特定的硬件板的硬件实现目的和其它配置参数。

  • 如果DeepLearningConfig被设置为coder.ARMNEONConfig对象和硬件为空,则代码生成设置GenCodeOnly财产真正的

注意:

  • 假设你创建了一个coder.CodeConfig对象cfg在MATLAB课程中使用,并在另一个MATLAB课程中使用。如果第二届MATLAB主机没有在指定的硬件板cfg.Hardware安装在其上的财产,这个参数恢复到默认值。默认值是[]

要指定一个硬件板来执行公益诉讼,请看PIL与执行的ARM Cortex-A在命令行(嵌入式编码)。

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

为了防止因多次包含头文件编译错误,代码生成器或者产生的#ifndef曾经的#pragma构建在生成的头文件。如果您的项目使用的是使用相同的预处理宏不同的文件,然后生成的代码曾经的#pragma构造。的编制行为曾经的#pragma不是标准化的。

指定HeaderGuardStyle如在该表中的值之一。

价值 描述
UseIncludeGuard

代码发生器产生的#ifndef样式# include警卫。

UsePragmaOnce 代码发生器产生曾经的#pragma样式# include警卫。

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

价值 描述

此值是默认值。

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

真正的

代码生成报告重点介绍了在生成的C/ c++代码中执行单精度或双精度操作的MATLAB代码。如果您使用的是定点设计器™,那么该报告还将突出显示MATLAB代码中的表达式,这些表达式会导致生成的代码中执行昂贵的定点操作。

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

价值 描述
真正的

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

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

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

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

价值 描述
真正的

此值是默认值。

代码发生器产生的初始化功能。

代码生成器不产生初始化函数。如果设置IncludeInitializeFcn和一个初始化功能是必需的,例如,调用用于非限定性数据支持代码(万博1manbetx天道酬勤为NaN),代码生成器产生错误消息。

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

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

价值 描述
真正的

此值是默认值。

代码发生器产生一个终止功能。

代码生成器不产生终止功能。如果设置IncludeTerminateFcn和终止功能是必需的,例如,以释放内存,代码生成器发出警告。

每缩进层次字符,指定为在范围[2,8]的正整数的数目。

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

价值 描述
'K&R'

此值是默认值。

对于函数内的块,开括号是在同一行作为其控制语句。例如:

空隙addone(常量双X [6],双Z [6]){INT I0;为(I0 = 0; I 0 <6; I0 ++){Z [I0] = X [I0] + 1.0;}}

“奥曼”

对于函数内的块,开括号是在同一缩进层次的控制语句自己的路线。例如:

空隙addone(常量双X [6],双Z [6]){INT I0;为(I0 = 0; I 0 <6; I0 ++){Z [I0] = X [I0] + 1.0;}}

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

价值 描述
真正的

此值是默认值。

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

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

堆栈大小限制内联的函数,指定为一个正整数。堆栈大小限制确定分配用于内联函数的局部变量堆栈空间量。

指定限制的堆栈空间限制的内联允许量。对于出的线功能,局部变量的函数栈空间被释放函数返回时。然而,内联函数,栈空间遗体占领了局部变量,即使函数返回。

这种能力对于嵌入式处理器,其中堆栈的大小可以限制尤其重要。

看到控制内联

内联函数尺寸阈值,指定为一个正整数。

除非其它条件防止内联,所述代码发生器内联函数是小于阈值。

函数大小是作为一个抽象的指令数来测量的,而不是实际的MATLAB指令或目标处理器中的指令。要获得您想要的内联行为,请对阈值进行试验。例如,如果默认阈值导致大函数内联和生成大量C代码,那么请调整阈值,直到您对生成的代码的大小感到满意为止。

看到控制内联

内联后的功能最大尺寸,指定为一个正整数。如果,内联后,调用函数的大小超过InlineThresholdMax,那么代码生成器不内联函数调用。

函数大小是作为一个抽象的指令数来测量的,而不是实际的MATLAB指令或目标处理器中的指令。要获得您想要的内联行为,请对阈值进行试验。例如,如果默认阈值导致大函数内联和生成大量C代码,那么请调整阈值,直到您对生成的代码的大小感到满意为止。

看到控制内联

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

价值 描述

此值是默认值。

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

真正的 代码生成器产生,并打开一个代码生成报告。

比这个阈值的迭代更少循环是由码发生器自动展开的候选者。该阈值适用于所有-loops在MATLAB代码。对于个人-loop,一coder.unroll命令立即循环之前放在优先于循环展开优化。阈值也可以适用于一些-loops代码生成过程中产生的。

看到展开for循环

MATLAB函数帮助文本功能的旗帜在指定为在此表中的值之一生成的代码。

价值 描述
真正的

此值是默认值。

代码生成器包括在生成的代码功能的MATLAB横幅功能的说明文字。

代码生成器会将帮助文本作为用户评论。

如果不选择,MATLAB编码器将帮助文本视为用户评论。

依赖关系:

  • GenerateComments启用此参数。

的MATLAB源代码列入如在生成的代码注释,指定为在此表中的值之一。

价值 描述

此值是默认值。

代码生成器不会插入MATLAB源代码在生成的代码中的注释。代码生成器不包括在功能旗帜MATLAB函数签名。

真正的

代码生成器插入MATLAB源代码作为在生成的代码注释。甲可追溯性标记紧前面的源代码的每一行。可追溯性标签可帮助您找到对应的MATLAB源代码。看到跟踪生成的C/ c++代码到MATLAB的源代码

如果您有嵌入式编码,在代码生成报告,可追溯性标签链接到源代码。

代码生成器还包括在功能旗帜MATLAB函数签名。

相关性:

  • GenerateComments启用此参数。

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

在生成的标识符的最大字符数,指定为在范围[31,256]的正整数。此属性适用于生成的函数,类型定义和变量名。为了避免由目标C编译器标识符的截断,指定目标C编译器的最大标识符长度相匹配的值。

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

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

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

字节数是阵列元件的数目来复制或分配由用于C / C ++数据类型所需的字节数相乘。

如果元件的数目来复制或分配是可变的(在编译时未知),代码生成器将忽略MemcpyThreshold财产。

看到优化的memcpymemset优化

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

价值 描述

此值是默认值。

代码生成器不产生多实例,重入代码。

真正的

代码发生器产生可重复使用的,多实例代码,可重入。

看到可重入代码

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

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

价值 描述
'LIB' 静态库
'DLL' 动态链接库
'可执行程序' 可执行程序

在生成的代码的括号水平,指定为在此表中的值之一。

价值 描述
“名义”

此值是默认值。

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

OUT =((IN2  - 输入1> 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函数后的生成处理代码生成,指定为字符向量。

看到构建流程定制

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

价值 描述
真正的

此值是默认值。

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

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

的代码生成,使用N维的索引,指定为在此表中的值之一。

价值 描述

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

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

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

变量名在生成的代码,指定为在此表中的值中的一个保留。

价值 描述
'没有'

此值是默认值。

代码生成器并没有保留任何变量名。它可以重复使用,从而满足变量重用要求的任何变量。

如果您的代码使用大型结构或数组,请设置PreserveVariableNames'没有'可以降低存储器利用率或提高执行速度。

“用户名”

代码生成蜜饯名称对应的变量,你在MATLAB代码中定义。它不使用其他名称代替你的变量名和另一个变量不使用你的名字。为了提高可读性,集PreserveVariableNames“用户名”。然后,您可以更轻松地跟踪在生成的代码回变量在MATLAB代码中的变量。

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

'所有'

保留所有变量名。此参数值禁用变量重用。仅用于测试或调试,而不用于生产代码。

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

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

价值 描述

此值是默认值。

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

真正的

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

相关性:

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

指定这些MATLAB的内置数据类型的自定义名称:,,uint8,UINT16,uint32,UINT64,int8,INT16,INT32,Int64的,烧焦逻辑是在所产生的C / C ++代码。

相关性:

变量的名称,您导出有关代码生成的信息,指定为特征向量。代码生成器创建在基MATLAB工作区这个变量。该变量包含代码生成设置,输入文件,生成的文件,和代码生成消息的信息。

看到以编程方式访问代码生成报告信息coder.ReportInfo属性

电位差报告,指定为表中值之一:

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

看到电位差报告

代码生成器不能用于指定为字符向量或字符串标量的函数或变量的名称列表。若要指定多个保留名称,请在。中使用以分号分隔的保留名称列表ReservedNameArray。例如,cfg。ReservedNameArray = " reserve1; reserve2 reserve3”

的代码生成一个使用行主阵列布局,指定为在此表中的值之一。

价值 描述

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

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

看到生成代码,使用行主阵列布局

在生成的入口点函数的开头生成对initialize函数的调用,指定为该表中的一个值。

价值 描述
真正的

此值是默认值。

到初始化函数的调用被包括在所产生的入口点函数的开始。生成的代码包括检查,以确保作出这样的初始化函数被调用一次,即使有多个入口点函数。

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

相关性:

  • 设置IncludeInitializeFcnIncludeTerminateFcn真正的启用此参数。

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

看到使用生成的初始化和终止功能

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

价值 描述

此值是默认值。

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

真正的

错误如所生成的代码检查外的界定阵列索引。

错误报告软件使用fprintf中写错误信息标准错误。它用中止终止应用程序。如果fprintf中中止不可用,则必须提供。的中止功能突然终止该程序。如果您的系统支持的信号,你可以万博1manbetx赶上中止信号(SIGABRT),这样就可以控制程序终止。

错误消息是英文。

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

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

价值 描述
真正的

此值是默认值。

代码生成器生成处理整数溢出的代码。溢出将使数据类型所能表示的最小值或最大值达到饱和。

代码生成器不产生代码来处理整数溢出。不要设置SaturateOnIntegerOverflow除非你确信你的代码不依赖于整数溢出支持。万博1manbetx如果您启用禁用整数溢出支持和运行时错误检查,生成的代码产生了溢出万博1manbetx错误。如果禁用整数溢出支持和禁用运行时错误检查,溢出行为取决于你的目标万博1manbetxC编译器。在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执行同步与在MATLAB工作空间中的值SIL或者PIL执行环境全局变量的值。如果全局变量是恒定的并且它的中与其在MATLAB工作空间值SIL或PIL执行环境的不同值,则发生错误。

该SIL或PIL执行不同步与在MATLAB工作空间中的值SIL或者PIL执行环境全局变量的值。如果值不同步,在MATLAB的结果可能会从SIL或者PIL执行的结果不同。

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

看到加快SIL / PIL执行通过禁用恒输入检查和全球数据同步(嵌入式编码)

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

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

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

价值 描述
真正的

此值是默认值。

如果GenerateNonFiniteFilesIfUsed被设置为真正的中,代码生成器产生的代码来支持非限定值(万博1manbetx天道酬勤为NaN)只有在使用它们。

如果GenerateNonFiniteFilesIfUsed被设置为时,代码生成器总是生成支持非有限值的代码(万博1manbetx天道酬勤为NaN)。

代码生成器不产生代码来支持非限定值。万博1manbetx

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

语言,以生成代码中使用,指定为“C”'C ++'。如果指定C ++代码生成包装C代码到.cpp文件,这样就可以使用C ++编译器和接口与外部C ++应用程序。它不会生成C ++类。

相关性:DeepLearningConfig是集,代码生成TargetLangC ++

标准数学库用于生成的代码,指定为这些字符向量之一:

  • 'C89 / C90(ANSI)'

  • 'C99(ISO)'

  • 'C ++ 03(ISO)'

  • 'C ++ 11(ISO)'

代码生成器使用标准的math库来调用math操作。默认的标准数学库取决于您选择的语言。对于C语言,默认的库是'C99(ISO)'。对于C ++,默认库'C ++ 03(ISO)'

看到更改标准数学函数库

工具链以用于建立一个C / C ++库或可执行程序,指定为字符向量。可用的工具链的列表取决于主机平台上,并且可以包括自定义工具链,你加入。如果不指定工具链,代码生成器所在的安装工具链。

注意:

  • 假设你创建了一个coder.CodeConfig对象cfg在MATLAB课程中使用,并在另一个MATLAB课程中使用。如果用于第二会话的MATLAB主机没有在cfg.Toolchain安装在其上的财产,这个参数恢复到默认值。默认值是“自动定位安装的工具链”

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

价值 描述

此值是默认值。

代码生成器不显示代码生成过程。

真正的

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

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

价值 描述
'没有' 正常运行
“银” 软件在环(SIL)执行
'PIL' Processor-in-the-loop(公益诉讼)执行

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

例子

全部收缩

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

功能C = myadd(A,B)C = A + B;结束

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

cfg = coder.config (“自由”);

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

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

cfg.CommentStyle =单行的;

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

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

代码生成myadd配置cfgarg游戏{111}-报告

另类功能

要使用构建类型的默认配置参数'LIB','DLL',或'可执行程序',可以使用代码生成选项-config:LIB,-config:DLL,或配置:exe,分别。然后,您不必创建并将配置对象传递给代码生成

介绍了在R2011a