Когда вы генерируете код для модели, генератор кода по умолчанию создает совместно использованные служебные файлы, которых требует модель. Когда вы генерируете код с различными релизами, генераторы кода могут произвести функционально идентичные совместно используемые файлы, которые содержат некоторые нефункциональные различия. Например, различные комментарии и различный стиль кодирования. Когда вы используете тот же релиз, чтобы сгенерировать код для различных моделей в других папках, можно также произвести совместно используемые файлы с нефункциональными различиями. Например, если вы задаете различный ParenthesesLevel
или ExpressionFolding
значения для моделей, генератор кода может произвести совместно используемые файлы, которые содержат различные комментарии или различные стили кодирования.
Интегрированный код, который включает функционально идентичные совместно используемые файлы:
Является более дорогим, чтобы проверить, потому что каждый совместно используемый файл требует верификации.
Производит ошибки компиляции, если совместно используемые файлы задают дублирующиеся символы.
Если у вас есть Embedded Coder® лицензия, можно избежать этих проблем путем определения повторного использования разделяемого кода от существующей папки, например, библиотеки только для чтения проверенного кода. В этом случае генератор кода не создает новые совместно использованные служебные файлы. Процесс сборки использует внешний код или ранее сгенерировал совместно использованный служебный код от папки. Администратор обеспечивает и обновляет библиотеку только для чтения.
В диалоговом окне Configuration Parameters:
В поле Existing shared code введите полный путь в свою разделяемую папку кода.
Проверьте, что диагностика Use only existing shared code установлена в error
(значение по умолчанию).
Удалите slprj
папка или перемещение к новой рабочей папке.
Создайте свою модель. Если вы не видите ошибки, ваша разделяемая папка кода содержит необходимые совместно использованные служебные файлы.
Если файлы отсутствуют в существующей разделяемой папке кода, вы видите ошибку. Продолжать генерацию кода с локально сгенерированной версией пропавших без вести совместно использовало служебные файлы:
Установите диагностику Use only existing shared code на warning
.
Восстановите свою модель. Процесс генерации кода использует локально сгенерированную версию совместно использованных служебных файлов пропавших без вести.
Предоставьте администратору проверенной библиотеки кода с вашей моделью и информацией о пропавших без вести совместно использованных служебных файлов. С моделью администратор генерирует необходимые совместно использованные служебные файлы. Используя sharedCodeUpdate
(Embedded Coder), администратор добавляет файлы в существующую разделяемую папку кода.
Если вы требуете повторного использования разделяемого кода для компонента, экспортируемого от предыдущего релиза, предоставляете администратору информацию о местоположении папки сборки для компонента. Администратор может использовать sharedCodeUpdate
скопировать разделяемый код для компонента к существующей разделяемой папке кода.
Когда файлы будут доступны в существующей разделяемой папке кода, повторите шаги 1-3.
Если разделяемый служебный код сгенерирован от подсистем библиотеки, которые совместно используются через модели, вы не можете снова использовать код через релизы, потому что код специфичен для релиза — имя символа и искажение имени файла включают номер выпуска. Администратор должен добавить разделяемый служебный код, сгенерированный для каждого релиза к разделяемой папке кода.
sharedCodeUpdate
Функция (Embedded Coder) может добавить файлы в разделяемую папку кода, которые имеют идентичный довольный, но различный файл и имена функций. Это поведение полезно, когда у вас есть различные компоненты модели, которые требуют их собственных разделяемых служебных функций. Несмотря на то, что некоторый код дублирован, различные компоненты модели могут получить доступ к разделяемым служебным функциям, с которыми они были проверены. Чтобы обеспечить компоненты модели, чтобы иметь их собственные версии разделяемых служебных функций, сконфигурируйте правила именования вставить имя модели в разделяемые служебные идентификаторы (Embedded Coder).
Для большинства разделяемых служебных файлов кода можно задать основные копии, которые можно снова использовать через релизы, не изменяя файлы. С некоторыми файлами, например, 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
обеспечивает.
sharedCodeUpdate
(Embedded Coder) |
crossReleaseImport
(Embedded Coder)