Управление Embedded Coder

После создания определений кода для стандартизации и соответствия программной архитектуры и их развертывания для пользователей, обновляйте определения и их использование. Когда вы и другие пользователи создаете модели для генерации кода, сделайте свои определения кода доступными для моделей. Если стандарты для вашего сгенерированного кода изменяются, может потребоваться обновить определения кода. Рассмотрим, как эти стандарты изменяют влияние на модели, которые используют определения вашего кода и соответствующим образом обновляют модели.

Совместное использование доступных определений кода с новыми моделями

Если вы делитесь определениями кода в Simulink® словарь данных, сделайте определения доступными для новых моделей, которые вы или ваши пользователи создают для генерации кода. Модель, которую вы создаете на начальной странице Simulink или при помощи new_system функция не связана со словарем данных Simulink. Новая модель не может получить доступ к определениям генерации кода, которые вы храните в словаре данных.

Чтобы автоматически сделать определения кода доступными для новой модели, запишите коллбэки и другой код, который немедленно связывает модель со словарем данных, содержащим определения.

  • Для простого примера, который показывает, как связать модель со словарем данных программно и для получения информации о конфигурировании программной ссылки на словарь, смотрите Хранить данные в словаре программно.

  • Если вы используете проект, рассмотрите создание ярлыка проекта, который создает модель и немедленно связывает новую модель со словарем данных. Для получения информации о проектах и ярлыках проекта смотрите Что такое проекты?.

Чтобы вручную поделиться определениями с новой моделью, смотрите раздел «Совместное определение словаря Embedded Coder между моделями».

Миграция определений пакетов на 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 в словаре данных 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Ничего

Развертывание изменений

См. также

Похожие темы