После создания определений кода для стандартизации и соответствия программной архитектуры и их развертывания для пользователей, обновляйте определения и их использование. Когда вы и другие пользователи создаете модели для генерации кода, сделайте свои определения кода доступными для моделей. Если стандарты для вашего сгенерированного кода изменяются, может потребоваться обновить определения кода. Рассмотрим, как эти стандарты изменяют влияние на модели, которые используют определения вашего кода и соответствующим образом обновляют модели.
Если вы делитесь определениями кода в Simulink® словарь данных, сделайте определения доступными для новых моделей, которые вы или ваши пользователи создают для генерации кода. Модель, которую вы создаете на начальной странице Simulink или при помощи new_system
функция не связана со словарем данных Simulink. Новая модель не может получить доступ к определениям генерации кода, которые вы храните в словаре данных.
Чтобы автоматически сделать определения кода доступными для новой модели, запишите коллбэки и другой код, который немедленно связывает модель со словарем данных, содержащим определения.
Для простого примера, который показывает, как связать модель со словарем данных программно и для получения информации о конфигурировании программной ссылки на словарь, смотрите Хранить данные в словаре программно.
Если вы используете проект, рассмотрите создание ярлыка проекта, который создает модель и немедленно связывает новую модель со словарем данных. Для получения информации о проектах и ярлыках проекта смотрите Что такое проекты?.
Чтобы вручную поделиться определениями с новой моделью, смотрите раздел «Совместное определение словаря Embedded Coder между моделями».
Если вы создаете класс памяти в пакете и хотите использовать его в редакторе Отображения, обратитесь к пакету из одного или нескольких словарей Embedded Coder. Для получения информации о пакете из словаря Embedded Coder Dictionary см. раздел «См. Определения генерации кода в пакете». Затем для моделей, которые имеют доступ к Embedded Coder Dictionary, можно применить классы памяти из пакета с помощью редактора Code Mappings.
Когда необходимо внести изменения в определение, вносите изменения только в пакет. Чтобы применить изменения к словарям Embedded Coder, обновите пакет. Чтобы обновить пакет, откройте каждый словарь Embedded Coder.
Чтобы применить класс памяти к элементу данных моделей, который не разрешен к объекту внешних данных, используйте редактор Отображения. Для отображения определений пакетов в редакторе Code Mappings обратитесь к пакету из словаря Embedded Coder Dictionary, который использует модель.
Эти неразрешенные элементы модели включают:
Блоки Inport
Блоки выгрузки
Сигнальные линии
Состояния блока
Хранилища данных
Объекты параметра в рабочем пространстве модели
Чтобы сопоставить эти элементы модели с определением на основе пакета, обратитесь к пакету из словаря Embedded Coder Dictionary, который использует модель.
Начиная с R2020b, если существующая модель включает эти элементы модели и они сконфигурированы с определениями, основанными на пакетах, Simulink ссылается на пакет из словаря Embedded Coder. Если модель связана со словарем данных Simulink, Simulink использует словарь Embedded Coder в словаре данных, чтобы ссылаться на пакет.
Если требования к сгенерированному коду изменяются, может потребоваться обновить определения кода, чтобы отразить последние стандарты интерфейса. Изменение или удаление определения кода может повлиять на модели, которые используют определение кода. Когда вы вносите изменения в определения кода, оценивайте влияние изменений. Затем разверните изменения и исправьте затронутые точки использования.
Для внесения изменений в определения в пакете используйте Custom Storage Class Designer. Для получения дополнительной информации смотрите Создание классов памяти при помощи Custom Storage Class Designer.
Для внесения изменений в определения в словаре Embedded Coder:
Используйте инструмент Embedded Coder Dictionary, как описано в Embedded Coder Dictionary.
Используйте скрипт, как описано в разделе «Программное создание определений кода». Можно написать скрипт, чтобы автоматически изменить многие определения кода в словаре Embedded Coder.
Если вы храните словарь Embedded Coder Dictionary в словаре данных Simulink, сохраните словарь данных после обновления определений кода.
В зависимости от места хранения определения кода, изменение или удаление определения может нарушить точки использования. В этой таблице показаны влияния различных изменений, основанных на местоположении определения. Проверьте, влияют ли изменения на точки использования, и исправьте их, выполнив соответствующие обновления.
Изменения в определении | Место хранения | Обновления |
---|---|---|
Измените имя определения | Пакет | Для раздела памяти обновляйте другие определения в пакете, которые используют раздел памяти. В Custom Storage Class Designer укажите новое имя раздела памяти. |
Для класса памяти обновляйте объекты данных, которые используют класс памяти. Задайте новое имя класса памяти для объекта данных. | ||
В словарях Embedded Coder, которые ссылаются на пакет, обновите пакет. | ||
В моделях, которые используют определение в отображениях кода, задайте новое имя определения. Используйте редактор Отображения или скрипт, который использует coder.mapping.api.CodeMapping объект. | ||
Embedded Coder | Ничего | |
Изменение свойств определения | Пакет | В словарях Embedded Coder, которые ссылаются на пакет, обновите пакет. |
Embedded Coder | Ничего | |
Удалите определение | Пакет | Для раздела памяти обновляйте другие определения в пакете, которые используют раздел памяти. В Custom Storage Class Designer укажите другой раздел памяти или нет раздела памяти. |
Для класса памяти обновляйте объекты данных, которые используют класс памяти. Укажите другой класс памяти или нет класса памяти для объекта данных. | ||
В словарях Embedded Coder, которые ссылаются на пакет, обновите пакет. | ||
В моделях, которые используют определение в Code Mappings, задайте другой класс памяти или нет класса памяти. Используйте либо редактор Отображения, либо скрипт. | ||
Embedded Coder | Для раздела памяти обновляйте другие определения в словаре, которые используют раздел памяти. Укажите другой раздел памяти или нет раздела памяти. Используйте словарь Embedded Coder или скрипт. | |
В моделях, которые используют определение в Code Mappings, задайте другой класс памяти или нет класса памяти. Используйте либо редактор Отображения, либо скрипт. | ||
Добавьте определение | Пакет | В словарях Embedded Coder, которые ссылаются на пакет, обновите пакет. |
Embedded Coder | Ничего |