在团队或大型组织中,为了使多个用户能够生成符合标准体系结构的代码,您可以与这些用户创建并共享代码生成定义,例如存储类。当为不同的模型配置代码生成设置时,用户可以将定义应用到模型中的数据和功能元素,生成标准化的代码。
要控制生成代码中模型元素的外观,您可以使用code Mappings编辑器将代码定义应用到元素。通过在类别的默认映射中选择代码定义,配置模型元素类别的默认代码生成行为。通过将单个数据元素映射到代码映射编辑器中的代码定义来配置它们。
要创建您和其他用户可以在代码映射编辑器中使用的代码定义,请使用嵌入式编码器字典。
当您在嵌入式编码器字典中创建定义时,请考虑您打算如何使用它们,以决定将定义存储在何处。这个表列出了在哪里存储代码定义以及如何使用Simulink金宝app®数据字典。
定义的用法 | 代码定义的位置 | 使用数据字典 |
---|---|---|
多个模型-共享一组代码定义以标准化代码 | 金宝appSimulink数据字典由所有模型引用,直接或通过中间引用的词典 | 将每个模型链接到定义代码定义的数据字典,可以直接链接,也可以通过中间字典引用链接。 |
一个模型-通过使用一个模型生成的原型代码 | 模型的本地嵌入式编码器字典 | 您可以选择将模型链接到包含其他数据的数据字典。如果您将模型链接到包含其他代码定义的字典,那么模型也可以使用这些代码定义。 |
若要使用嵌入式编码器字典及其在代码生成定义方面的限制,请参见嵌入式编码器词典.
要为您存储在基础工作区中的数据对象或在Simulink数据字典中创建定义,请使用自定义存储类设计器在包中创建定义。金宝app对于这些数据对象,您将代码生成设置应用于数据对象,而不是将它们应用于模型的映射中。当模型中的项目使用数据对象及其代码生成设置时,项目的代码映射反映了数据对象的规范。有关更多信息,请参见使用自定义存储类设计器创建存储类和通过插入Pragmas来控制数据和功能放置.
如果希望在code Mappings编辑器和数据对象中使用相同的代码生成定义,则不需要将定义的一个副本存储在Embedded Coder Dictionary中,将另一个副本存储在包中。相反,将定义存储在包中(通过使用自定义存储类设计器)。然后,配置一个或多个Embedded Coder dictionary以引用包中的定义。使用这种技术,当您想要更改定义时,只需在一个地方进行更改,即包。
若要使用自定义存储类设计器在包中创建代码生成定义,请参见使用自定义存储类设计器创建存储类.然后,要配置嵌入的编码器字典以引用包,请参阅请参阅包中的代码生成定义.
有关在包和字典中维护定义的更多信息,请参见将包定义迁移到嵌入式编码器字典以用于代码映射.
在Embedded Coder Dictionary中定义存储类时,可以指定用户是否可以将存储类映射到参数、信号或参数和信号。要约束存储类的使用,请使用数据初始化属性必须设置为汽车
要么没有任何
.然后,在属性检查器中允许使用中,选择参数,信号,或参数和信号.有关更多信息,请参见嵌入式编码器词典.
在具有多个型号和用户的大型组织中,您可以通过将它们存储在可相互访问的位置来共享代码生成定义。调用共享代码定义的过程部署.有关更多信息,请参见部署代码生成定义.
您可以使用Embedded Coder Dictionary API创建代码定义并与之交互。
用a表示嵌入的编码器字典编码器.Dictionary.
对象。使用该对象访问字典的部分:存储类、内存部分和函数自定义模板。如果您有一个代码定义包,请使用编码器.Dictionary.
对象加载和刷新字典中的包。
表示字典的一部分编码器.Dictionary.section.
对象。使用该部分访问代码定义。
使用a表示代码定义coder.dictionary.Entry
对象。使用条目与代码定义及其属性进行交互。
您还可以使用诸如此类的功能coder.dictionary.copy
和coder.dictionary.move
在嵌入式编码器字典上执行操作。有关更多信息,请参见以编程方式创建代码定义.