文档

为软件体系结构定义存储类、内存部分和函数模板

在团队或大型组织中,为了使多个用户能够生成符合标准体系结构的代码,您可以创建并与这些用户共享代码生成定义,例如存储类。在为不同的模型配置代码生成设置时,用户可以将定义应用于模型中的数据和功能元素,生成标准化的代码。

创建用于默认代码生成设置的代码定义

为了在生成的代码中控制模型元素的默认外观,您可以使用code Mappings编辑器将设置应用到元素的类别,例如数据和函数。有关更多信息,请参见为模型数据和函数的类别配置默认C代码生成

要创建您和其他用户可以在代码映射编辑器中使用的定义,请使用嵌入式编码器字典。

在嵌入式编码器字典中创建定义时,必须决定将定义存储在何处。

  • 如果您希望只在一个模型中使用定义,请在模型的嵌入式编码器字典中创建定义。

  • 如果您想在多个模型中使用定义,包括模型引用层次结构中的模型,请将定义存储在Simulink的嵌入式编码器字典中金宝app®数据字典。有关数据字典的一般信息,请参见什么是数据字典?(金宝app模型)。

要使用嵌入式编码器字典,以及有关嵌入式编码器字典中代码生成定义的限制,请参见嵌入式编码器词典

创建代码定义以覆盖默认设置

为了覆盖您在代码映射编辑器中指定的默认设置,您可以使用其他工具,如模型数据编辑器和属性检查器,将代码生成设置应用到单个模型元素。有关一般信息,请参见配置模型数据和代码生成功能的环境

要创建可以通过这些其他工具应用的代码定义,请使用自定义存储类设计器。您可以定义存储类和内存部分,它们只能应用于数据元素。有关更多信息,请参见使用自定义存储类设计器创建存储类而且通过插入语法在内存中放置控制数据和函数

限制使用存储类代码映射

在嵌入式编码器字典中定义存储类时,可以指定用户是否可以将存储类映射到参数、信号或参数和信号。要限制存储类的使用,可以使用数据初始化属性必须设置为没有一个.然后,在属性检查器中,在允许使用中,选择参数信号,或参数而且信号.有关更多信息,请参见嵌入式编码器词典

避免在包和字典中维护重复的定义

如果您想使用相同的代码生成定义作为默认设置,并直接应用到各个模型元素,您不需要将定义的一个副本存储在嵌入式编码器字典中,而将另一个副本存储在包中。相反,将定义存储在包中(通过使用自定义存储类设计器)。然后,配置一个或多个嵌入式编码器字典以引用包中的定义。使用这种技术,当您想要更改定义时,只需在一个地方进行更改,即包。

但是,如果使用自定义存储类设计器创建存储类并设置类型FlatStructure,详见生成结构化数据,或其他,详见用TLC代码精细控制存储类的数据表示,则无法配置嵌入式编码器字典以引用该包。因此,您不能在代码映射编辑器中使用存储类。

若要使用自定义存储类设计器在包中创建代码生成定义,请参见使用自定义存储类设计器创建存储类.然后,要配置嵌入式编码器字典以引用该包,请参见请参阅包中的代码生成定义

向用户部署代码生成定义

在拥有多个模型和用户的大型组织中,您可以通过将代码生成定义存储在一个相互可访问的位置来共享它们。共享代码定义的过程被称为部署.有关更多信息,请参见部署代码生成定义

维护代码生成定义

在模型中,通过从列表中选择定义的名称,您可以将代码定义应用到模型元素,例如,在模型数据编辑器或代码映射编辑器中。此外,可以使用自定义存储类设计器或嵌入式编码器字典中的列表,将内存部分与存储类或函数定制模板关联起来。

根据代码定义的存储位置,更改或删除定义会破坏这些使用点,需要您采取行动。

包的定义

如果在包中创建代码定义,更改名称或删除定义会破坏使用点,必须手动修复。

  • 要固定模型中各个数据元素的使用点,可以选择编写脚本。参见中的交互式和编程示例向数据元素应用内置和自定义存储类

  • 要固定包中的使用点(例如,当您更改存储类使用的内存段的名称时),请使用自定义存储类设计器。你不能写脚本。

如果将一个包加载到嵌入式编码器字典(参见请参阅包中的代码生成定义),当你更改代码定义(包括名称以外的属性)或删除定义时:

  1. 重新加载包。在每个字典中,单击管理包按钮打开“管理包”对话框。从选择包下拉列表,选择软件包。使用按钮卸载包,然后重新加载包。

    重新加载包会破坏代码映射编辑器中受影响模型的使用点,您必须手动修复。

  2. 修复代码映射编辑器中受影响模型的使用点。要编写修复代码映射编辑器使用点的脚本,请参见以编程方式配置默认数据和功能代码生成

嵌入式编码器字典定义

如果你在嵌入式编码器字典中创建一个代码定义:

  • 更改代码定义的名称不会破坏使用点。金宝appSimulink将新名称传播到使用点。

  • 删除代码定义会破坏受影响模型的代码映射编辑器中的使用点。在编辑器中,显示列表未解决的.手动修复这些使用点。要通过编写脚本来修复它们,请参见以编程方式配置默认数据和功能代码生成

以编程方式与代码生成定义交互

您可以使用嵌入式Coder Dictionary API创建代码定义并与之交互。

  1. 类来表示嵌入式编码器字典编码器。字典对象。使用该对象可以访问字典的部分:存储类、内存部分和函数自定义模板。如果您有一个代码定义包,请使用编码器。字典对象来加载和刷新字典中的包。

  2. 类来表示字典的某一部分coder.dictionary.Section对象。使用该节访问代码定义。

  3. 类来表示代码定义coder.dictionary.Entry对象。使用条目与代码定义及其属性交互。

您还可以使用诸如coder.dictionary.copy而且coder.dictionary.move对嵌入式编码器字典执行操作。有关更多信息,请参见以编程方式配置代码定义

另请参阅

|

相关的话题