主要内容

选择存储类数据表示控制生成的代码

一个存储类是一个代码生成设置,您申请数据,如参数、信号和状态。在代码的配置,使用存储类数据元素的外观和位置控制生成的代码和防止优化消除存储数据元素。

对于模型数据,可以直接使用存储类数据元素模型通过使用映射编辑器的代码或代码映射的API。使用编辑器或API,一个默认的存储类申请类别的数据,然后覆盖该设置,根据需要,对个人数据元素。

对于外部数据,您应用的数据对象存储类以编程方式使用Model Explorer或使用等功能get_paramset_param

一旦你指定元素的存储类或类别的元素,您可以设置属性存储类,如头文件,定义文件和内存部分。

存储类属性

的属性设置存储类定义代码生成器是怎么没的数据在生成的代码。您可以配置的属性取决于存储类。对于大多数单个元素,您可以配置一个标识符命名代码中的数据元素。识别属性,您可以配置为预定义的存储类,看到下面的信息在特定的存储类。

当您创建一个存储类通过使用自定义存储类设计师,你可以选择是否存储类的用户可以指定额外的设置。看到允许用户指定属性值的存储类

默认的存储类

默认情况下,单个数据元素的存储类汽车。通过使用这个默认值,您选择的代码生成器处理存储类的选择和应用。在这种情况下,数据元素是生成代码的优化,可以消除代码中的元素或改变元素的表示。如果优化不消除数据元素,该元素出现作为一个领域的标准数据结构生成的代码。

当使用映射编辑器或代码映射的代码API,数据元素配置为存储类汽车这并不是消除优化获得的默认代码生成设置相应的数据类别。如果你不指定一个代码配置一个类别的数据元素,存储类默认的。数据元素类别时使用此存储类,数据元素类别出现作为一个领域的标准数据结构生成的代码。

内置和预定义的存储类

防止优化消除存储数据元素,您可以选择元素的存储类基于代码生成的要求。可用存储类包括内置的存储类、预定义的存储类的万博1manbetx包,还可能包括其他特定项目的嵌入式编码字典中定义的存储类。如果你有特殊要求没有得到满足的存储类,列出ERT-based目标生成代码,您可以定义和使用一个新的存储类。看到定义存储类、内存部分,为软件架构和功能模板创建存储类通过使用自定义存储类设计师

万博1manbetx®编码器™,你可以选择从这些内置和预定义的存储类。

需求 存储类
启用优化,可能生成更高效的代码。 汽车(单个数据元素)
数据元素不能被优化掉,表示数据作为一个领域标准的数据结构。 默认的(默认映射)
防止优化消除存储数据元素。 模型的默认(个人映射)
从非结构化全局变量访问数据。生成的代码包含了变量声明和定义。 ExportedGlobal
从非结构化全局变量访问数据。生成的代码包含了变量声明。外部代码提供了定义。 ImportedExtern, ImportedExternPointer

如果你有嵌入式编码器®,你可以选择从这些额外可用的预定义的存储类万博1manbetx包中。

需求 存储类
防止优化消除存储数据元素。 词典默认(默认映射)
生成非结构化变量。
生成的变量字段结构。
生成的变量值,代码编译期间是固定的。
通过一个函数调用生成变量访问。 GetSet

这些存储类的存储类的例子可以添加到嵌入式编码字典。这些例子定义和可用时准备一个代码生成模型通过使用快速启动工具。

需求 存储类

产生全球结构包含参数数据和信号或状态数据。

ParamStruct, SignalStruct

汽车

当您选择这个存储类,代码生成器处理如何代表了数据在生成的代码中,可以使优化操作的数据元素,可能生成更高效的代码。

汽车是默认的存储类设置为每个数据元素模型。数据元素是生成代码的优化,可以消除代码中的元素或改变元素的表示。关于这些优化的信息,比如那些配置参数>代码生成>优化窗格中,看到如何生成的代码存储内部信号、状态和参数数据

优化不能消除一些数据,如块大多数州,从代码。剩下的数据获得你指定一个默认的存储类数据默认值标签编辑器(参见代码的映射配置默认代码生成数据)。如果一个数据元素不能被消除,元素的名称代码是基于通过使用您所指定的命名规则模型配置参数。看到标识符的格式控制需要嵌入式编码器。

默认的

数据默认值标签的代码映射编辑器,默认的是默认的存储类设置为每个数据元素类别。如果你离开的存储类设置这个值的分类,数据元素不受代码生成优化作为一个领域出现的一个标准的数据结构。看到如何生成的代码存储内部信号、状态和参数数据

模型的默认

当你为代码生成配置单个数据元素,使用模型的默认存储类防止优化消除存储数据元素。看到如何生成的代码存储内部信号、状态和参数数据。使用这种存储类设置,数据元素获得默认的存储类,你指定的相应数据类别数据默认值标签的代码映射编辑器。代码中的数据元素的名称是一样的名字在模型中。

词典默认

在嵌入式程序员,如果你联系一个模型数据字典,其中包括一个编码器配置默认的字典代码定义类别的数据,您可以使用代码映射编辑器应用默认的字典。在数据默认值选项卡上,选择一个类别,然后设置存储类词典默认。更多信息在编码器配置一个默认代码映射字典,看到的配置默认代码映射在一个共享的字典

ExportedGlobal

使用内置的存储类来生成一个全局变量定义和声明。默认情况下,变量的名称是数据元素的名称。代码生成的文件中声明的变量模型。h您可以包括(# include外部代码)。代码生成器不优化这个全局变量从生成的代码。

当你使用这个存储类,你还可以配置此属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

使用这个存储类为例,看看界面元素C代码生成配置模型

ImportedExtern, ImportedExternPointer

使用内置的存储类ImportedExtern做一个数据元素模型代表外部代码定义一个全局变量。生成的算法代码使用变量没有定义它。

生成代码的读取和写入一个全局变量定义为外部代码。生成的代码生成的文件中声明的变量模型_private.h这样模型的入口点函数可以读取和写入到变量。

例如,您可以应用存储类ImportedExtern信号线,阻塞状态,或参数对象。对进口数据:

  • 生成的代码没有初始化参数数据。代码必须初始化导入参数数据。

  • 动态生成的初始化函数初始化一些信号和状态数据。生成的代码与数据分配,代码不初始化导入信号或状态数据存储的值为零。相反,代码立即初始化数据在仿真软件您所指定的实际价值。万博1manbetx

使用ImportedExternPointer当你的外部代码定义了一个数据元素,并提供一个指针来访问这些数据。生成的代码读和写指针。生成的代码生成的文件中声明的变量模型_private.h非关联化和读写数据的指针。

当你使用这些存储类,你还可以配置此属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

设置

使用此存储类生成一个结构,布尔数据存储在命名字段。

当你使用这个存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

StructName 结构的数据元素名称生成的代码。

使用这个存储类为例,看看

CompilerFlag

使用此存储类支持预处理条件定义为使用编译器标志或选择万博1manbetx。

如果你构建生成的代码通过使用嵌入式编码人员,指定编译器选项,您可以使用该模型配置参数配置参数>代码生成>自定义代码>额外的构建信息>定义了。看到代码生成窗格:自定义代码:额外的构建信息:定义

当你使用这个存储类,你还可以配置此属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

使用这个存储类为例,看看生成预处理器变量系统的条件

常量、挥发性和ConstVolatile

使用这些存储类来生成一个全局变量的定义和声明常量,挥发性,或常量挥发性类型限定符。

当你使用这些存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

HeaderFile

源头文件包含声明为全局数据读取的数据元素和外部代码。

DefinitionFile

源定义文件,其中包含定义为全局数据读取的数据元素和外部代码。

老板

全局数据的所有者与生成的代码定义的多个组件使用该数据。

PreserveDimensions

当模型配置参数阵列布局被设置为国旗,表明是否保留维度的数据元素生成的代码中表示为一个多维数组。

使用这个存储类为例,看看类型限定符

定义、ImportedDefine

使用定义存储类生成一个宏(#定义指令),如#定义myParam 5

使用ImportedDefine生成的代码使用一个宏(#定义指令)在头文件中定义的外部代码。例如,看到的宏定义(#定义)

当你使用这些存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

HeaderFile

源头文件包含声明为全局数据读取的数据元素和外部代码。

使用这个存储类为例,看看宏定义(#定义)

ExportToFile

生成一个全局变量定义和声明一个外部文件。您可以指定文件的名称和位置,定义和声明的变量。看到控制位置的全局数据定义和声明生成的文件

当你使用这个存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

HeaderFile

源的头文件代码生成器将声明为全局数据读取的数据元素和外部代码。

DefinitionFile

源定义文件的代码生成器的地方全局数据读取的数据元素的定义和外部代码。

代码生成器荣誉该设置只对单实例模式。可重用的多实例模型的设置将被忽略,因为数据定义在父级别处理。

老板

模型层次结构中的一个组件的代码生成器的地方一个全球数据定义,而不是把它放在组件层次结构的顶部。要求您设置配置参数模型使用数据对象的所有者为数据定义的位置

PreserveDimensions

当模型配置参数阵列布局被设置为国旗,表明是否保留维度的数据元素生成的代码中表示为一个多维数组。

使用这个存储类为例,看看参数数据的定义、初始化和声明

FileScope

使用这个存储类来生成一个全局变量的定义和声明静态类型限定符。在生成的代码中,变量的范围仅限于当前文件,这是典型的模型。c

在模型参考层次结构中,如果一个模型使用一个参数对象(例如引用万博1manbetxSimulink.Parameter),基本工作空间中创建或数据字典,你不能适用FileScope的对象。作为一个解决方案,移动的参数对象到模型空间参考模型。然后,您可以使用FileScope

当你使用这个存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

PreserveDimensions

当模型配置参数阵列布局被设置为国旗,表明是否保留维度的数据元素生成的代码中表示为一个多维数组。

GetSet

使用这个存储类来生成代码与数据通过调用自定义访问器功能。外部代码定义了数据,并提供了函数定义。

当你使用这个存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

HeaderFile

源头文件包含声明为全局数据读取的数据元素和外部代码。

GetFunction 数据元素出现在生成的代码调用指定的得到函数
SetFunction 数据元素出现在生成的代码调用指定的函数

使用这个存储类为例,看看通过与存储类GetSet函数访问数据

ImportFromFile

使用这个存储类来生成代码,读和写一个全局变量定义为外部代码。ImportFromFile类似于ExportToFile生成的代码,但没有定义的变量。

当你使用这个存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

HeaderFile

源头文件包含声明为全局数据读取的数据元素和外部代码。

PreserveDimensions

当模型配置参数阵列布局被设置为国旗,表明是否保留维度的数据元素生成的代码中表示为一个多维数组。

使用这个存储类为例,看看集成外部应用程序代码和代码生成的PID控制器

可以定位的

的信号,如果可能的话,尽量减少使用全局存储使用局部变量。

  • 如果一个函数中使用的变量,该变量是本地函数。

  • 如果单个文件中使用的变量,该变量是本地文件。

  • 如果不止一个函数中使用的变量或文件,变量是一个全球性的。

产生局部变量可以防止代码生成器从生成的代码删除变量。

当你使用这个存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

PreserveDimensions

当模型配置参数阵列布局被设置为国旗,表明是否保留维度的数据元素生成的代码中表示为一个多维数组。

使用这个存储类为例,看看产生局部变量与本地化存储类

可重用的

使用这个存储类来重用相同的变量为多个独立的信号模型。代码生成器存储中间数据路径的计算(一系列的连接块)在一个单一的、重复使用全局变量。这只存储类可用外部数据对象。

你可以把这只存储类万博1manbetxSimulink.Signal对象代表多个信号线路模型。

当你使用这个存储类,你还可以配置此属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

使用这个存储类为例,看看指定缓冲区使用仿真软件重用。万博1manbetx信号对象

结构体

使用此存储类生成一个全球结构可以指定一个名称。

当你使用这个存储类,你还可以配置这些属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

StructName 结构的数据元素名称生成的代码。

使用这个存储类为例,看看参数数据组织成一个结构通过使用结构体存储类结构的信号

ParamStruct, SignalStruct

使用这些存储类生成全局结构包含参数和信号或状态数据,分别。在组件的层次结构(参考模型或原子子系统),您可以使用这些存储类来创建一个相应的层次结构。这些存储类出现在映射编辑器的代码只有在准备代码生成一个模型通过使用快速启动工具。

这些存储类只对model-owned可用数据。

当你使用这些存储类,你还可以配置此属性。

财产 描述
标识符

标识符字符串代码生成器使用名称的数据元素生成的代码。

存储类的限制

  • 当你使用存储类在代码映射编辑器(嵌入式编码器)或代码的映射API,一些限制适用。看到限制

  • 数据对象不能使用嵌入式编码存储类和多字数据类型。

  • 对于嵌入式编码存储类模型,使用引用的模型:

    • 如果你申请一个分组的存储类,如结构体设置多个数据项,您必须设置存储类数据范围财产进口你必须提供在外部数据声明头文件。分组存储类生成的代码中使用一个变量来表示多个数据对象。

    • 如果一个参数对象存在于基本工作空间或一个数据字典,和一个模型使用对象引用,你不能应用存储类FileScope。这个存储类应用于参数对象,移动到模型空间对象引用的模型。

  • 你不能应用存储类FileScope所使用的数据项的数据交换接口(C API、外部模式或ASAP2)或MAT-file日志记录。File-scoped数据没有外部访问。

  • 你不能应用存储类FileScope多个文件中使用的数据。

相关的话题