exponenta event banner

Повторное использование общего служебного кода для всех версий

При создании кода для модели генератор кода по умолчанию создает общие файлы утилит, необходимые модели. При создании кода с различными версиями генераторы кода могут создавать функционально идентичные общие файлы, содержащие некоторые нефункциональные различия. Например, различные комментарии и различные стили кодирования. При использовании одной и той же версии для создания кода для различных моделей в различных папках можно также создавать общие файлы с нефункциональными различиями. Например, если указать другое ParenthesesLevel или ExpressionFolding значения для моделей, генератор кода может создавать общие файлы, которые содержат различные комментарии или различные стили кодирования.

Интегрированный код, включающий в себя функционально идентичные общие файлы:

  • Дороже для проверки, так как каждый общий файл требует проверки.

  • Создает ошибки компиляции, если общие файлы определяют повторяющиеся символы.

Если у вас есть лицензия Embedded Coder ®, вы можете избежать этих проблем, указав повторное использование общего кода из существующей папки, например библиотеки проверенного кода, доступной только для чтения. В этом случае генератор кода не создает новые общие файлы утилит. В процессе построения используется внешний код или ранее созданный общий служебный код из папки. Администратор поддерживает и обновляет библиотеку только для чтения.

Рабочий процесс для повторного использования общего кода утилиты

  1. В диалоговом окне «Параметры конфигурации»:

    1. В поле Существующий общий код введите полный путь к папке общего кода.

    2. Убедитесь, что для диагностики Использовать только существующий общий код установлено значение error (по умолчанию).

  2. Удалить slprj или перейдите в новую рабочую папку.

  3. Постройте свою модель. Если ошибка не обнаружена, папка общего кода содержит требуемые файлы общих утилит.

  4. Если файлы отсутствуют в существующей папке общего кода, отображается ошибка. Чтобы продолжить создание кода с локально созданной версией отсутствующих общих файлов утилиты:

    1. Установите диагностику Использовать только существующий общий код в значение warning.

    2. Перестроить модель. В процессе создания кода используется локально созданная версия отсутствующих общих файлов утилит.

    3. Предоставьте администратору библиотеки верифицированных кодов свою модель и сведения об отсутствующих общих файлах утилит. С помощью модели администратор создает требуемые общие файлы утилит. Используя sharedCodeUpdate, администратор добавляет файлы в существующую папку с общим кодом.

      Если требуется повторное использование общего кода для компонента, экспортированного из предыдущей версии, предоставьте администратору информацию о расположении папки сборки для компонента. Администратор может использовать sharedCodeUpdate для копирования общего кода компонента в существующую папку общего кода.

    4. Если файлы доступны в существующей папке с общим кодом, повторите шаги 1-3.

    Если общий служебный код создается из библиотечных подсистем, совместно используемых в моделях, нельзя повторно использовать код для всех выпусков, поскольку код специфичен для выпуска - имя символа и имя файла содержит номер выпуска. Администратор должен добавить общий служебный код, созданный для каждого выпуска, в папку с общим кодом.

    sharedCodeUpdate функция может добавлять в папку с общим кодом файлы с одинаковым содержимым, но разными именами файлов и функций. Такое поведение полезно при наличии различных компонентов модели, для которых требуются собственные общие служебные функции. Несмотря на дублирование некоторых кодов, различные компоненты модели могут получить доступ к общим служебным функциям, с помощью которых они были проверены. Чтобы компоненты модели имели собственные версии общих функций утилит, настройте правила именования для вставки имени модели в общие идентификаторы утилит.

Необходимое редактирование для повторного использования общего служебного кода

Для большинства общих файлов служебного кода можно указать основные копии, которые можно повторно использовать в разных версиях без изменения файлов. С некоторыми файлами, например, rtwtypes.h, и zero_crossing_types.h, бывают ситуации, когда для создания основных копий, которые можно использовать с сгенерированным кодом из различных версий, требуется ручное редактирование. Например:

  • rtwtypes.h файл, созданный выпусками до включительно R2013a содержит контрольную сумму.

    /* This ID is used to detect inclusion
       of an incompatible rtwtypes.h */
    #define RTWTYPES_ID_C08S16I32L64N64F0
    Для каждой версии этого rtwtypes.h файл, который вы хотите включить в интеграцию, скопируйте соответствующий #define выписка в вашу главную копию rtwtypes.h.

  • В R2015a определения нулевого пересечения перенесены из rtwtypes.h в zero_crossing_types.h. Создание rtwtypes.h файл, совместимый с сгенерированным кодом модели из различных версий, в вашей главной копии rtwtypes.h, вставьте это утверждение.

    #include "zero_crossing_types.h"
    Удалить определения из rtwtypes.h это zero_crossing_types.h обеспечивает.

См. также

|

Связанные примеры

Подробнее