主要内容

控制数据和功能接口生成的代码

使用生成的代码从一个模型,你调用生成的入口点函数等一步初始化。调用环境和生成函数的输入和输出数据交换通过全局变量或通过形式参数(参数)。这些数据和交换机制构成的入口点函数的接口。可重入的默认接口信息和nonreentrant模型在生成的代码中,看到的生成的代码交流数据与环境如何

通过控制界面,出现在生成的代码中,您可以:

  • 减少你必须的修改现有代码。

  • 生成稳定的接口,不改变或最低限度改变当你更改模型。

  • 更有效地交换数据的生成代码(例如,通过使用指针和引用传递参数nonscalar数据)。

控制类型名称、字段名和变量名标准的I / O结构(嵌入式编码器)

默认情况下,对于nonreentrant代码,轮廓尺寸块模型的根级别出现在生成的代码作为全球的字段结构变量。同样的,外港块出现在不同的结构。可重入代码,这取决于你的设置模型配置参数通过根级I / O,代码生成器也可以输入和输出数据打包成标准的结构。

使用嵌入式编码器®这些名字,您可以控制。看到管理模型的替代数据类型生成的代码万博1manbetx

控制生成的入口点函数的名字(嵌入式编码器)

使用生成的代码,您编写代码来调用生成的入口点函数。例如,包括入口点函数模型_step,模型_initialize和顶级函数产生一个导出功能模型。控制模型的入口点函数的名称,使用代码映射编辑器(需要嵌入式编码)来应用这些技术的组合:

  • 功能默认值选项卡中,指定默认命名规则类别的入口点函数通过函数定制模板的代码映射编辑器。使用这种技术,命名规则适用于函数在一个类别。有关更多信息,请参见配置默认代码生成功能

  • 功能选项卡中,指定名称为个人通过直接编辑入口点函数函数名列或通过一个配置的对话框打开预览功能列。名称指定覆盖缺省命名规则指定的功能定制模板。有关更多信息,请参见配置生成的C函数入口点函数接口模型

Nonreentrant控制数据接口代码

当你设定模型配置参数代码接口包装那种一次性的功能(默认),生成的入口点函数不可重入的。通常,函数与调用环境中通过直接交换数据访问全局变量。

配置轮廓尺寸外港块作为单独的全局变量

删除的块标准的I / O结构通过创建一个单独的全局变量,应用存储类,如ExportedGlobalExportToFile块代表的信号。您可以配置一个默认的存储类类别的数据元素,如轮廓尺寸块。像你这样的块添加到模型中,他们获得您指定的存储类。您还可以使用代码映射编辑器配置单独的块。你可能会这么做,如果一个模型刚刚几个特定类别的数据元素或覆盖默认配置设置。

例如,看到的设计数据接口通过配置尺寸和外港块。对于一般信息代码生成的配置数据,看看界面元素C代码生成配置模型

配置生成的代码来读写外部定义的全局变量的代码

如果你调用代码已经定义了一个全局变量,你想要生成的代码作为输入数据或使用存储输出数据,您可以重用变量通过阻止代码生成器复制定义。应用相应的存储类轮廓尺寸外港块模型。选择一个指定的存储类导入的数据范围,如ImportedExternImportFromFile。应用存储类的信息,请参阅界面元素C代码生成配置模型参数数据组织成一个结构通过使用结构体存储类

多个输入或输出打包成自定义的结构

您可以配置一个轮廓尺寸外港出现在生成的代码块作为一个自定义结构,包含多个输入或输出信号。您还可以配置块出现的子结构默认的I / O结构或作为一个单独的结构变量。

配置块nonvirtual总线使用万博1manbetxSimulink.Bus对象的数据类型。如果你的外部代码定义了结构类型,考虑使用万博1manbetxSimulink.importExternalCTypes函数生成总线对象。

  • 生成标准的总线信号作为子结构的I / O结构,保持块存储类的默认设置,汽车。如果你有嵌入式编码器,在代码映射编辑器中,在数据默认值选项卡,设置存储类类别港口外港默认的

  • 生成总线信号作为一个单独的全局结构变量,应用存储类等ExportedGlobalExportToFile

关于分组信号为自定义结构的更多信息在生成的代码中,看到的组织数据结构生成的代码

配置轮廓尺寸外港块作为函数调用(嵌入式编码器)

如果你的外部代码定义了一个函数,它返回输入数据生成的代码或接受输出数据,生成的代码生成,您可以配置一个轮廓尺寸外港块,这样生成的代码调用函数而不是访问全局变量。应用嵌入式编码存储类GetSet。有关更多信息,请参见通过与存储类GetSet函数访问数据

通过输入和输出通过函数参数(嵌入式编码器)

使用嵌入式程序员,您可以配置模型步骤(执行)函数输入和输出通过访问root参数全局变量而不是直接阅读和写作。完全控制参数等特征的名字,秩序,通过机制(通过引用或值)。这种级别的配置可以帮助整合与外部代码生成的代码。

通过输入和输出参数,在C阶跃函数接口配置对话框中,选择为阶跃函数原型配置参数。每一个轮廓尺寸外港块模型的根级别出现在执行函数的代码作为参数。有关更多信息,请参见配置生成的C函数入口点函数接口模型

配置引用模型作为全局变量(输入和输出void-void)

nonreentrant参考模型,在默认情况下,生成的代码通过根级通过函数参数的输入和输出。nonreentrant参考模型是一个配置参数设置模式总数量的实例允许每一个顶级模特一个

通过这些数据通过全局变量(而不是void-void接口),在参考模型中,应用存储类等ExportedGlobalExportToFile到根级轮廓尺寸外港块。

可重入代码控制数据接口

当您设置代码接口包装可重用的功能,生成的入口点函数是不可重入的。函数与调用环境中交换数据通过形式参数(参数)。默认情况下,每个root轮廓尺寸外港出现在生成的代码块作为一个单独的论点,而不是标准的I / O结构领域。

防止意外更改接口

一些变化,你让一个模型生成的代码更改的入口点函数接口。例如,如果您改变模型的名称,函数的名字可以改变。如果你通过参数配置模型代码来交换数据,当你添加或删除轮廓尺寸外港阻塞或更改的名称,可以改变对应的参数。

你的调用代码更易于维护,防止更改的入口点函数的接口。

  • 如果你输入和输出数据交换通过参数,配置生成的代码包中轮廓尺寸外港块进结构,而不是允许每个块出现作为一个单独的参数(默认)。然后,当你添加或删除轮廓尺寸外港块,或改变它们的属性,如名称和数据类型、字段的结构变化,但不改变函数接口。看到通过使用结构减少数量的参数

  • 设置的数据类型轮廓尺寸外港块明确,而不是使用一种遗传数据类型设置(这些块使用默认情况下)。继承了数据类型设置导致块可以使用不同的数据类型取决于上游和下游信号的数据类型。关于配置数据类型的更多信息,请参阅控制信号的数据类型

  • 使用嵌入式编码器,指定函数名不依赖于模型的名字。如果你指定一个命名规则和自定义一个函数模板,不要使用令牌$ R的规则。看到控制生成的入口点函数的名字(嵌入式编码)

通过使用结构减少数量的参数

减少函数的参数的数量可以提高代码的可读性,并减少消费的栈内存。创建一个结构参数,可以通过多条数据,使用这些技术:

  • 手动合并多个轮廓尺寸外港使他们出现在生成的代码块的字段结构或子结构的标准数据结构。生成的入口点函数或函数接受的地址结构作为一个单独的参数或子结构(领域)标准的I / O结构。

    取代轮廓尺寸外港块一块,并配置nonvirtual总线通过使用一个新的块万博1manbetxSimulink.Bus对象的数据类型。如果你的外部代码定义了结构类型,考虑使用万博1manbetxSimulink.importExternalCTypes函数生成总线对象。看到组织数据结构生成的代码万博1manbetxSimulink.importExternalCTypes

  • 当你和嵌入式编码,生成可重入的代码配置轮廓尺寸外港块出现在默认情况下聚合结构。集模型配置参数通过根级I / O以外的其他设置个人观点

    • 打包轮廓尺寸外港块到实时模型数据结构,选择模型数据结构的一部分。代码生成器聚合块到默认的I / O结构,数据结构点的实时模型。生成的入口点函数或函数接受数据结构为单个参数的实时模型。如果你选择这个设置,函数有最小数量的参数。

    • 聚合轮廓尺寸块结构外港块到一个不同的结构,选择结构参考。生成的入口点函数或函数接受每个结构的地址作为参数。另一个论点接受实时模型的数据结构。如果你选择这个设置,输入和输出更可识别的函数接口。

      这个设置,如果你删除root轮廓尺寸块或root -外港块,可以改变的函数签名。同样,签名可以改变如果你添加一个root轮廓尺寸外港块一个模型,不包括这样的街区。

    • 控制结构的特点,集通过根级I / O模型数据结构的一部分。然后,设置的默认存储类轮廓尺寸外港你创建的块结构化存储类。这种技术:

      • 您可以创建一个单一结构的块或创建两个单独的结构。

      • 你可以控制结构类型的名称。

      • 结构表现为子结构实时模型的数据结构。必须设置通过根级I / O模型数据结构的一部分

      创建存储类通过使用嵌入式编码字典(见定义服务接口、存储类、内存部分,为软件架构和功能模板)。应用存储类通过使用映射编辑器(参见代码配置默认代码生成数据)。

    有关更多信息,请参见通过根级I / O

控制参数的数据类型

您可以配置生成的入口点函数通过参数来交换数据。一个标量或数组参数,控制原始数据类型的名称,使用万博1manbetxSimulink.AliasType对象设置相应的块的数据类型或配置数据类型替代整个模型。这些技术要求嵌入的编码器。有关更多信息,请参见管理模型的替代数据类型生成的代码万博1manbetx

促进数据项的界面

默认情况下,代码生成器假设轮廓尺寸外港块模型的根级别构成模型的数据接口。可以促进一个任意信号,块参数,或块状态的接口,以便其他系统和组件可以访问它。看到促进内部数据接口

相关的话题