主要内容

控制位置的全局数据定义和声明生成的文件

生成的代码可以创建标准,字段代表信号的全局结构变量,状态和参数数据模型。存储类,您可以配置数据出现在代码中作为单独的全局变量或自定义全局结构。标准的数据结构的信息,请参阅如何生成的代码存储内部信号、状态和参数数据生成的代码交流数据与环境如何。存储类的信息,请参阅选择存储类数据表示控制生成的代码

你可以控制的文件位置变量的定义和声明。用表中的信息。

目标 细节和技术
生成一个变量,外部代码可以使用

应用存储类与导出的数据范围,如ExportToFile。生成的代码声明了变量在代码文件可以包括(# include)。

生成一个走读生声明模型。h,考虑使用存储类ExportedGlobal

另外,将声明一个您可以指定名称的文件,选择其中一个技术:

  • 聚合多个变量声明为一个或多个特定头文件默认情况下,应用存储类等ExportToFile一个类别的数据通过使用映射编辑器的代码。当您添加模块和信号模型,新的数据项中声明您指定的文件。

  • 显式地指定单个数据项的位置,直接应用存储类等ExportToFile并通过使用头文件指定一个名称头文件财产。

看到外部调用代码和生成的代码之间交换数据

生成的代码使用一个变量定义为外部代码

应用存储类,用进口数据范围等ImportFromFile在模型中,一个数据元素表示变量。然后,生成的代码没有定义变量,而是包括(# include)您可以指定外部头文件的名称。(例如,模型生成算法一步函数)变量的读和写。

另外,如果你没有一个外部声明头文件或不希望生成的代码包含一个头文件,应用存储类ImportedExtern。然后,生成的代码声明了变量模型_private.h

看到外部调用代码和生成的代码之间交换数据

  • 生成的文件的大小减少创建多个更小的文件

  • 数据组织成不同的文件,使生成的代码更容易理解

根据设置的配置参数>文件的包装格式,生成的文件等模型。c模型_data.c可以包含很多全局变量的定义。相应的头文件可以包含许多声明。

  • 为了使模型。c小,可以考虑设置文件的包装格式模块化紧凑(单独的数据文件)。然后,生成的代码定义了标准结构,表示可调谐和常数参数数据模型_data.c而不是模型。c

  • 将不同类别的数据(例如,外部参数,块,和内部信号)在特定的文件默认情况下,使用映射编辑器的代码。为每个类别的数据,使用一个存储类等ExportToFile并指定属性头文件。看到配置默认代码生成数据

  • 精确控制文件位置的数据,应用存储类等ExportToFile单个数据项。使用存储类的属性,如定义文件头文件为每个数据项,指定文件位置。例如,看到的信号数据的定义和声明

将多个文件合并到一个文件

  • 考虑设置配置参数模型文件的包装格式紧凑的。然后,代码生成器并不创建模型_data.c文件。相反,标准结构的定义出现在存储可调谐和常数参数数据模型。c

  • 当你申请一个存储类等ExportToFile数据元素,把属性定义文件头文件空白,默认值。同时,设置模型配置参数数据定义在源文件中定义的数据。然后,出现在数据定义模型。c与其他全球数据的定义。

从函数定义单独的数据定义

默认情况下,生成的文件,它定义了一个模型的入口点函数或子系统还定义了数据模型或子系统。当你经常更改的数据,尤其是可调参数的初始值,改变源代码文件可以阻碍验证和变更管理更加困难。分开的数据功能:

  • 考虑设置配置参数模型文件的包装格式一个值,导致独立的数据文件的生成模型_data.c。然后,标准结构的定义存储可调谐和常数参数数据出现在这个文件而不是模型。c

  • 应用存储类等ExportToFile通过使用映射编辑器的代码数据元素。使用存储类的属性,如定义文件头文件指定文件位置。有关更多信息,请参见配置默认代码生成数据参数数据组织成一个结构通过使用结构体存储类

隔离在单独的文件中数据定义基于组件的、具团队精神的模式发展

看到组织数据支持基于组件的、具团队精神金宝app的模式发展

总变异的定义控制参数(#定义宏)到一个单独的头文件

中描述的生成预处理器变量系统的条件变异控制参数是一个参数对象等金宝appSimulink.Parameter。你申请一个存储类的对象出现在生成的代码作为一个宏。控制文件的位置,选择其中一个技术:

  • 对于每一个变体使用存储类控制参数定义,设置头文件性质相同的值。配置这些对象列表中,您可以搜索、排序和筛选,您可以使用模型数据编辑器参数选项卡。例如,看到的产生变异控制宏相同的头文件

  • 创建一个或多个存储类控制参数代表变体。在自定义存储类设计器中,您可以设置头文件一个值,适用于所有的变体使用存储类的控制参数。使用这种方法,您不需要手动为每个变量控制参数指定一个头文件。有关更多信息,请参见创建存储类通过使用自定义存储类设计师

组织数据支持基于组件的、具团队精神金宝app的模式发展

根据你的模型配置,数据定义会出现聚合生成的文件。的系统组件(子系统或引用的模型),可以单独和组织数据定义为可管理、基于组件层次结构有意义的文件。

目标 技术

建立全局数据的所有权通过将数据定义为特定的组件生成的代码

当你把一个系统分为组件通过使用参考模型和原子子系统,默认情况下,全局数据通常是定义的代码生成的高级组件的层次结构。全球数据包括参数、信号和状态你应用存储类(见界面元素C代码生成配置模型)。

相反,您可以将全局数据定义与其他组件的层次结构。例如涉及引用的模型,看看建立在模型层次结构数据所有权

  • 与生成的代码将数据定义一个参考模型,使用一个内置的存储类等ExportToFile或存储类中创建一个包,并设置老板属性的名称引用的模型。

    使用老板在一个模型中,您必须选择模型配置参数使用数据对象的所有者为数据定义的位置。默认设置为这个参数,清除,意味着代码生成器忽略了您指定的设置老板

    如果只有一个引用的模型使用一个参数对象,考虑将对象存储在模型空间的模型。然后,生成的代码模型定义了数据。你不需要指定一个所有者(老板)对象。

  • 在一个原子子系统,使用一个存储类等ExportToFile和显式地指定的名称定义文件使用定义文件财产。不过,你不能把定义文件的源文件属于子系统。相反,定义文件出现在指定文件夹中生成的模型。

对于原子子系统,将标准数据结构子系统与子系统的代码

默认情况下,一个原子的标准数据结构子系统出现子结构的整个模型的数据结构。

生成单独的一个子系统,数据结构的选择函数与单独的数据子系统的参数块。然后,子系统数据出现在单独的结构子系统的代码定义的变量。看到生成Nonvirtual子系统的模块化的功能代码

指定默认位置

当您创建数据模型中通过添加模块和信号线路,出现在默认情况下,数据定义模型。c。指定一个不同的默认位置,使用这些工具和参数:

  • 模型配置参数文件的包装格式。你选择的设置决定代码生成器的地方标准存储可调谐和常数参数数据的结构模型_data.c而不是模型。c。看到文件的包装格式

  • 映射编辑器的代码。对于每一个类别的模型数据,您可以指定一个默认的存储类,控制文件位置。例如,应用存储类ExportToFile数据类别,在属性检查器,使用DefinitionFile,HeaderFile,老板属性来控制文件位置。

  • 模型配置参数数据定义数据声明。这些配置参数指定的默认文件位置应用存储类数据项。

    • 这些配置参数不影响你应用这些存储类数据项:

      • ExportedGlobal

      • ImportedExtern

      • ImportedExternPointer

      • 设置

      • FileScope

      • 可以定位的

      • 结构体

      • CompilerFlag

      在嵌入的编码器®字典,头文件值不受支持的存储类是空的金宝app。你不能为不支持的存储类指定的默认文件位置。金宝app

    • 如果你申请一个存储类显式地指定为一个数据元素的定义和声明文件,这些规范覆盖数据定义数据声明配置参数。

    有关更多信息,请参见数据定义数据声明

  • 子系统块参数函数与单独的数据。当您选择该参数,标准的数据结构存储子系统,如DWork结构,表现为独立结构变量。默认情况下,变量定义出现在源文件,它定义子系统执行函数。看到生成Nonvirtual子系统的模块化的功能代码

覆盖单个数据项的默认位置

对于单个数据项,覆盖默认文件位置,使用代码映射编辑器应用直接存储类。例如,做一个数据项出现在生成的代码作为一个全局变量,应用存储类ExportToFile。然后,使用定义文件头文件属性来控制文件位置。应用直接存储类,明白了参数数据组织成一个结构通过使用结构体存储类

防止名称冲突通过配置数据项静态

应用C字静态一个全局变量,这可以帮助你避免名称冲突通过限制的范围变量名称的文件定义了变量,选择其中一个技术:

  • 应用内置的存储类FileScope。有关更多信息,请参见选择存储类数据表示控制生成的代码

  • 如果FileScope不能满足您的需求,创建自己的存储类通过使用自定义存储类设计师。设计师,集数据范围文件汽车

    • 文件,代码中的数据元素出现静态全局变量。

    • 汽车代码生成器,第一次来表示数据元素与一个局部变量函数。如果这次尝试失败了,代码生成器使用静态全局变量。

    为例,展示了如何创建自己的存储类通过使用设计师,看看创建和应用存储类

你不能申请静态标准的数据结构如DWork结构。

访问静态数据,您可以配置生成的代码包括接口等a2l(ASAP2)文件。有关更多信息,请参见导出ASAP2文件进行数据测量和校准。放置在一个特定的内存位置的数据包括语法或其他装饰品在生成的代码中,创建自己的内存部分和存储类。看到控制数据和函数放置在内存中插入语法

代码生成参数对象的存储位置的影响

您可以创建一个参数对象(如金宝appSimulink.Parameter)基本工作空间,工作空间模型,或数据字典。然而,存储类应用于对象时,对象会影响文件的位置放置相应的数据定义生成的代码。看到代码生成参数对象的存储位置的影响

指定默认# include数据头文件的语法

控制文件放置一个数据项,如信号线或阻塞状态,在生成的代码中,您可以应用的存储类数据项(见参数数据组织成一个结构通过使用结构体存储类)。然后使用头文件属性来指定所生成的或外部头文件,其中包含数据的声明。

减少维护工作和数据输入,当您指定头文件,你可以省略分隔符(< >)和只使用文件名。然后您可以控制生成的代码使用默认的分隔符对应的# include指令。使用尖括号在默认情况下,设置配置参数>代码生成>代码的位置># include文件分隔符# include < header.h >

相关的话题