主要内容

代码定义和映射限制和注意事项

限制

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

  • 您不能使用代码映射配置MATLAB®用作块参数的变量。将变量转换为金宝appsimulink.parameter模型工作区中的对象。结果数据对象出现在代码映射编辑器中作为模型参数。

  • 使用代码映射在模型中仅配置每个块一个离散状态。

  • 如果模型包含一个可调的,非铁的参数,例如,值的值为inf,代码生成器不应用指定的默认参数映射。该参数在默认参数数据结构中以字段的形式出现RTP(看实时模型数据结构)。

默认代码映射约束

类别的默认代码映射外部参数全球数据存储在整个模型参考层次结构中,模型必须相同。

模型编辑操作和单个数据元素代码映射

在编辑模型在编码器应用程序的上下文中时,您应该意识到Simulink之间的关系金宝app®模型编辑工具,例如复制和撤消以及代码映射。在编码器应用程序的上下文中,当您在模型中执行复制和剪辑或剪切编辑操作时,编码器应用程序保留了单个数据元素的代码映射。例如,在模型中,如果您复制并粘贴了配置了特定存储类的信号的源块,则信号端口的粘贴版本将保留相同的存储类。

虽然您可以使用撤消和重做操作来编辑模型数据元素的操作,但它们在配置代码映射时不可用。例如,如果删除状态块,然后单击撤消,模型帆布中的块重新出现和代码映射中的状态呈现的代码配置。在代码映射编辑器中,如果您更改状态的存储类设置汽车模型默认,然后单击撤消,存储类不会恢复到汽车。在这种情况下,更改涉及代码映射,而不是模型数据元素。

存储类别和重新进入,多实体模型和组件

您从模型或组件(引用模型或子系统)生成的代码是多实体代码如果您允许您的应用程序在执行过程中维护组件的多个独立实例。例如,您可以通过设置模型配置参数来从整个模型中生成重进入的多效代码代码接口包装可重复使用的功能。有关多构成模型和组件的一般信息,请参见代码重复使用

在某些情况下,应用存储类可以:

  • 防止您生成多实体代码。

  • 导致某些数据元素出现在生成的代码中为单例,这意味着模型或组件的每个实例都可以直接访问相同的共享,全局数据,从而在实例之间创建依赖关系。

为了避免错误并意外地生成单个现象代码和Singleton数据,请观察下面的准则和限制。

直接应用存储类

当您将存储类直接应用于数据元素时(请参阅C代码生成的模型接口元素配置):

  • 要生成多实体代码,您必须仅将存储类应用于参数对象,全局数据存储,共享本地数据存储和根级I/O。

  • 存储类仅产生单例数据。

默认应用的存储类

应用默认存储类(请参阅C代码生成的模型接口元素配置):

  • 对于这些数据类别,您只能生成单例数据:

    • 模型参数

    • 外部参数

    • 全球数据存储

    • 共享本地数据存储

  • 为了内部数据,您只能生成特定于实例的数据,这意味着模型或组件的每个实例都在数据的单独副本上运行。对于此类别,您必须使用示例存储类信号结构,在使用快速启动工具为代码生成的模型准备模型之后出现。另外,您可以使用嵌入式编码器词典来创建和使用自己的结构化存储类。

有关更多信息,请参阅什么是返回代码?选择存储类以在生成代码中控制数据表示

将子系统转换为引用模型时复制代码映射

当将子系统转换为引用模型时,您可以复制代码映射。

也可以看看

|

相关话题