文档

跨发布共享实用程序代码重用

当您为模型生成代码时,代码生成器默认创建模型所需的共享实用程序文件。当您生成具有不同版本的代码时,代码生成器可以生成功能相同的共享文件,其中包含一些非功能差异。例如,不同的注释和不同的编码风格。当您使用同一个版本在不同的文件夹中为不同的模型生成代码时,您还可以生成具有非功能差异的共享文件。例如,如果指定不同ParenthesesLevelExpressionFolding对于模型的值,代码生成器可以生成包含不同注释或不同编码风格的共享文件。

包含功能相同的共享文件的集成代码:

  • 验证的开销更大,因为每个共享文件都需要验证。

  • 如果共享文件定义了重复的符号,则会产生编译错误。

如果你有嵌入式编码器®许可证,您可以通过指定重用来自现有文件夹的共享代码(例如,验证代码的只读库)来避免这些问题。在这种情况下,代码生成器不会创建新的共享实用程序文件。构建过程使用外部代码或以前从文件夹中生成的共享实用程序代码。管理员维护和更新只读库。

重用共享实用程序代码的工作流程

  1. 配置参数>代码生成>接口>先进的参数>现有的共享代码字段中,输入共享代码文件夹的完整路径。

  2. 验证配置参数>诊断>先进的参数>只使用现有的共享代码“诊断”设置为错误(默认)。

  3. 删除slprj文件夹或移动到新的工作文件夹。

  4. 构建您的模型。如果没有看到错误,则共享代码文件夹包含所需的共享实用程序文件。

  5. 如果现有的共享代码文件夹中缺少文件,则会看到一个错误。使用丢失的共享实用程序文件的本地生成版本继续代码生成:

    1. 配置参数>诊断>先进的参数>只使用现有的共享代码警告

    2. 重新构建模型。代码生成过程使用丢失的共享实用程序文件的本地生成版本。

    3. 向经过验证的代码库的管理员提供您的模型和关于丢失的共享实用程序文件的信息。使用该模型,管理员生成所需的共享实用程序文件。使用sharedCodeUpdate,管理员将文件添加到已有的共享代码文件夹中。

      如果您需要重用从以前版本导出的组件的共享代码,请向管理员提供关于导出工件位置的信息。管理员可以使用sharedCodeUpdate将组件的共享代码复制到现有的共享代码文件夹。

    4. 当文件在现有的共享代码文件夹中可用时,重复步骤1-4。

    如果共享实用程序代码是由跨模型共享的库子系统,则不能重用该代码发布,因为代码是特定于发布版本的—符号名和文件名mangling包括发布号。管理员必须将为每个版本生成的共享实用程序代码添加到共享代码文件夹中。

    sharedCodeUpdate函数可以向共享代码文件夹中添加内容相同但文件名和函数名不同的文件。当您有不同的模型组件需要它们自己的共享实用程序函数时,此行为非常有用。尽管有些代码是重复的,但是不同的模型组件可以访问用于验证它们的共享实用程序函数。要强制模型组件拥有它们自己的共享实用程序函数版本,请配置命名规则,将模型名称插入其中共享实用程序标识符

重用共享实用程序代码所需的编辑

对于大多数共享实用程序代码文件,您可以指定可以跨版本重用的主副本,而无需修改文件。例如,对于某些文件,rtwtypes.h,zero_crossing_types.h在某些情况下,需要手动编辑以生成主副本,您可以使用从不同版本生成的代码。例如:

  • rtwtypes.hR2010a生成的文件包含校验和。

    /*此ID用于检测包含不兼容的rtwtypes.h */ #define RTWTYPES_ID_C08S16I32L64N64F0
    对于每个R2010a版本rtwtypes.h你想在你的集成中包含的,复制相应的#定义的母拷贝rtwtypes.h

  • 在R2015a中,过零定义从rtwtypes.hzero_crossing_types.h.创建一个rtwtypes.h的主副本中与从不同版本生成的模型代码兼容的文件rtwtypes.h,插入此语句。

    # include“zero_crossing_types.h”
    删除定义rtwtypes.hzero_crossing_types.h提供了。

另请参阅

||

相关的例子

更多关于

这个话题有帮助吗?