При создании кода для модели генератор кода по умолчанию создает общие файлы утилит, необходимые модели. При создании кода с различными версиями генераторы кода могут создавать функционально идентичные общие файлы, содержащие некоторые нефункциональные различия. Например, различные комментарии и различные стили кодирования. При использовании одной и той же версии для создания кода для различных моделей в различных папках можно также создавать общие файлы с нефункциональными различиями. Например, если указать другое ParenthesesLevel или ExpressionFolding значения для моделей, генератор кода может создавать общие файлы, которые содержат различные комментарии или различные стили кодирования.
Интегрированный код, включающий в себя функционально идентичные общие файлы:
Дороже для проверки, так как каждый общий файл требует проверки.
Создает ошибки компиляции, если общие файлы определяют повторяющиеся символы.
Если у вас есть лицензия Embedded Coder ®, вы можете избежать этих проблем, указав повторное использование общего кода из существующей папки, например библиотеки проверенного кода, доступной только для чтения. В этом случае генератор кода не создает новые общие файлы утилит. В процессе построения используется внешний код или ранее созданный общий служебный код из папки. Администратор поддерживает и обновляет библиотеку только для чтения.
В диалоговом окне «Параметры конфигурации»:
В поле Существующий общий код введите полный путь к папке общего кода.
Убедитесь, что для диагностики Использовать только существующий общий код установлено значение error (по умолчанию).
Удалить slprj или перейдите в новую рабочую папку.
Постройте свою модель. Если ошибка не обнаружена, папка общего кода содержит требуемые файлы общих утилит.
Если файлы отсутствуют в существующей папке общего кода, отображается ошибка. Чтобы продолжить создание кода с локально созданной версией отсутствующих общих файлов утилиты:
Установите диагностику Использовать только существующий общий код в значение warning.
Перестроить модель. В процессе создания кода используется локально созданная версия отсутствующих общих файлов утилит.
Предоставьте администратору библиотеки верифицированных кодов свою модель и сведения об отсутствующих общих файлах утилит. С помощью модели администратор создает требуемые общие файлы утилит. Используя sharedCodeUpdate, администратор добавляет файлы в существующую папку с общим кодом.
Если требуется повторное использование общего кода для компонента, экспортированного из предыдущей версии, предоставьте администратору информацию о расположении папки сборки для компонента. Администратор может использовать sharedCodeUpdate для копирования общего кода компонента в существующую папку общего кода.
Если файлы доступны в существующей папке с общим кодом, повторите шаги 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 обеспечивает.
crossReleaseImport | sharedCodeUpdate