主要内容

模型界面元素的C代码生成配置

代码生成器为您提供了控制数据表示的工具,如果您有Embedded Coder®,生成代码中的入口点函数。例如,您可以配置用于代码生成的数据和函数以符合代码标准和指南,将生成的代码与外部代码集成,或者解决内存需求。

代码生成器为模型数据元素和函数生成代码:

  • 应用程序代码可以读取和写入的数据,如导入、信号、状态和参数。

  • 入口点函数如模型_step,应用程序代码调用它来执行模型算法。

属性为代码生成配置模型数据元素和函数代码映射编辑器- C或代码映射编程接口(coder.mapping.api.CodeMapping).嵌入式编码器需要配置功能。对于数据元素,使用代码映射编辑器或代码映射API来代替或补充创建和配置Simulink数据对象。金宝app编辑器和API允许您配置:

  • 在整个模型中应用于数据元素类别的默认代码生成设置

  • 应用于各个数据元素的配置设置

下图显示了整个工作流程:

迭代流图,显示了配置默认映射、覆盖单个模型元素的默认映射以及为模型元素创建代码定义的步骤。

迁移

当您打开R2020b之前版本中创建的模型时,Simulink®将模型中指定的代码定义迁移到模型代码映射中。金宝app

如果有必要,作为迁移的一部分,Simulink配置模型使用的嵌入式编码器字典。金宝app当您保存模型时,代码映射将作为模型的一部分保存。

有关更多信息,如迁移的影响以及迁移前需要考虑的问题,请参见模型数据配置到代码映射的迁移

代码定义

代码定义包括存储类。存储类定义属性,如外观和位置,代码生成器在为相关数据生成代码时使用这些属性。

内存段控制数据和函数定义在内存中的位置。在某些情况下,您可以在配置数据元素和函数时选择所需的特定内存部分。

代码生成器为数据元素提供预定义的代码定义。如果您有Embedded Coder,您可以使用Embedded Coder Dictionary来创建和共享代码定义,例如,标准化从多个模型生成的代码,或者为不同的应用程序运行时环境创建定义。创建自定义定义使您能够实现预定义定义无法满足的代码生成目标。对于数据元素,您还可以选择使用Embedded Coder自定义存储类设计器在包中创建代码定义。

使用“嵌入式编码器”字典创建的代码定义将出现在代码映射编辑器- C并且可以通过使用代码映射API访问。对于使用自定义存储类设计器创建的某些定义,可以通过配置嵌入式编码器字典来引用它们,从而使这些定义出现在代码映射编辑器中。

默认情况下,您为模型使用Embedded Coder Dictionary创建的代码定义存储在模型文件中。通过将定义存储在Simulink中,您可以在模型和项目之间共享代码定义金宝app®数据字典。使用数据字典,要修改共享定义,只需在一个地方更改定义——嵌入式编码器字典。

有关更多信息,请参见为软件架构定义服务接口、存储类、内存段和功能模板(嵌入式编码)而且使用自定义存储类设计器创建存储类(嵌入式编码)

数据默认配置

通过为数据元素类别指定默认配置,例如跨模型的导入或模型工作区参数,减少为C代码生成准备模型的工作。应用默认配置可以节省时间并降低在代码中引入错误的风险,特别是对于生成多实例代码的大型模型和模型。

默认配置应用于整个模型,不包括引用的模型。金宝appSimulink将一组单独的代码映射保存为模型引用层次结构中每个模型的一部分。

如果一个模型包含一个给定类别的大量元素(例如,超过10个),通过使用默认设置来配置类别会更有效,然后为特殊情况覆盖该设置。

默认设置可以帮助您减少手动输入数据。

  • 当您向模型添加块和信号时,新的数据元素将继承默认设置。

  • 若要一次更改多个数据元素的代码生成设置,请在一个地方—默认设置—进行更改。

  • 为了提高效率,当您在模型的其他地方进行更改时,请使用命名规则。

属性配置数据默认值代码映射编辑器- C数据默认值TAB或setDataDefault函数。

模型数据类别

属性配置数据默认值代码映射编辑器- C数据默认值TAB或setDataDefault函数。在数据默认值选项卡或函数调用时,可以选择或指定这些类别的数据元素。

模型元素类别 描述
港口 模型的根级输入端口,例如轮廓尺寸而且总线元件块。
外港 模型的根级输出端口,例如外港而且输出总线元件块。
信号、状态和内部数据 模型内部的数据元素,如块输出信号、离散块状态、数据存储和过零信号。
共享本地数据存储 数据存储内存具有block参数的块跨模型实例共享集。这些数据存储只能在定义它们的模型中访问。数据存储值在模型实例之间共享。
全球数据存储 由基本工作空间或数据字典中的信号对象定义的数据存储。应用程序中的多个模型可以使用这些数据存储。要在“代码映射”编辑器中查看和配置这些数据存储,请单击刷新链接到类别名称右侧。单击此链接更新模型图。
模型参数 在模型中定义的参数,例如模型工作区中的参数。排除模型参数。
外部参数 在基本工作区或数据字典中定义为对象的参数。应用程序中的多个模型可以使用这些参数。要在代码映射编辑器中查看和配置这些参数,请单击刷新链接到类别名称右侧。单击此链接更新模型图。

为数据配置默认代码生成设置的注意事项

在为数据元素配置默认代码生成设置之前,请考虑下表中列出的注意事项。

考虑 更多的信息
哪些类别与您的模型相关? 上表中的数据元素类别
模型是否使用一个类别中的多个数据实例?如果答案是肯定的,那么应用默认映射是有益的。否则,请考虑分别为每个数据元素配置代码生成。
哪个存储类符合每个类别的代码生成需求? 选择在生成的代码中控制数据表示的存储类
您是否希望防止从代码中消除特定数据的优化? 通过优化消除数据类别

在您配置模型元素的一个或多个类别之后,设置内存部分和共享公用事业标识符格式模型配置参数对模型配置没有影响。当您打开编码器应用程序时,Simulink将模型配置参金宝app数设置迁移到代码映射编辑器。作为迁移的一部分,Simulink配置模型使用的嵌入金宝app式编码器字典,如中所述将内存段和共享工具设置从配置参数迁移到代码映射(嵌入式编码)

通过优化消除数据类别

代码生成优化可以从代码中消除数据,这意味着应用程序代码不能与数据交互。有关通过优化消除数据的一般信息,请参见生成的代码如何存储内部信号,状态和参数数据(嵌入式编码)

优化只能消除以下类别中的数据:

  • 模型参数

  • 模型参数参数

  • 外部参数

  • 内部数据

通过优化消除数据后,代码生成器将代码映射中的默认代码生成设置应用到剩余数据。对于参数和信号线,优化可以消除整个类别的数据。如果出现这种情况,则为该类别指定的默认设置将不适用于数据。

为了防止优化过程中消除单个数据元素,可以显式地将存储类应用于单个元素。存储类控制生成代码中数据的外观。若要强制数据元素使用指定的默认存储类,请显式应用该存储类模型的默认.看到选择在生成的代码中控制数据表示的存储类

共享字典数据默认值

如果将模型链接到Simulink数据字典(其中包括金宝app为数据类别配置默认代码定义的编码器字典),则可以使用代码映射编辑器应用字典默认值。在“代码映射”编辑器中数据默认值选项卡,选择一个类别,将存储类设置为词典默认.如果有人更改了共享编码器字典中的默认设置,则代码生成器在为模型生成代码时应用更新后的默认设置。看到在共享字典中配置默认代码映射(嵌入式编码)

单个数据元素的配置

在配置了模型范围的默认设置之后,您可以覆盖各个数据元素的默认设置。单个数据元素配置应用于模型中的特定数据元素。在以下情况下分别配置数据元素:

  • 该模型包含给定类别的一些元素,这些元素具有惟一的来源、命名或放置需求。

  • 您配置了默认设置,并且希望覆盖单个元素的默认设置。

对于单个数据元素,最初将存储类设置为汽车,这意味着代码生成器可能为了优化目的而消除或更改相关代码的表示。如果不可能进行优化,代码生成器将应用模型默认配置。

  • 要避免优化并强制代码生成器使用默认配置,请将存储类设置为模型的默认

  • 若要覆盖默认配置,请指定满足该数据元素代码生成要求的存储类。

如果模型中的数据元素是未命名的(例如,信号没有标签或状态没有名称),您必须在为C代码生成配置数据元素时为其指定代码标识符。通过指定存储类属性的值来设置代码标识符标识符

配置数据

  1. 打开金宝app仿真软件编码器™应用程序。

  2. 为数据元素类别配置默认映射。选择代码接口>默认代码映射.在“代码映射”编辑器中数据默认值选项卡,选择一个模型元素类别并设置存储类。在属性检查器中,设置存储类属性以符合模型需求。

  3. 决定是否覆盖各个数据元素的默认配置设置。如果不覆盖,请执行步骤8。

  4. 确定要单独配置的MATLAB变量,并将配置存储在模型文件中。在Model Explorer中,将变量转换为金宝app仿真软件。参数对象。结果数据对象作为模型参数出现在Code Mappings编辑器中。

  5. 在生成的代码执行时,识别表示希望监视的算法数据的信号,并分别配置这些信号。对于你识别的每个信号,做以下其中一项:

    • 对于特定于模型(非共享)的信号数据,将信号添加到Code Mappings编辑器中。

    • 对于共享信号数据,创建和配置金宝app仿真软件。信号对象。

  6. 配置单个数据元素。在Code Mappings编辑器中,单击类别选项卡,选择一个数据元素,并设置存储类。在属性检查器中,设置存储类属性值。更改模型配置参数的设置默认参数行为,单击指示存储类设置为时的行为的链接汽车.在“模型配置参数”对话框中,将参数设置更改为可调内联

    有关配置特定类型的数据元素的信息,请参见:

  7. 上的“代码映射”编辑器中,查看和配置存储在基本工作区或数据字典中的外部数据对象数据默认值选项卡,单击刷新链接到类别名称右侧。

  8. 生成并审查代码。

有关更多细节和示例,请参见:

另请参阅

|

相关的话题