Настройка генерации кода C для элементов интерфейса модели

Генератор кода предоставляет инструменты вам, чтобы управлять представлением данных и, если у вас есть Embedded Coder®, функции точки входа в сгенерированном коде. Например, можно сконфигурировать данные и функции для генерации кода, чтобы выполнить стандарты кода и инструкции, интегрировать сгенерированный код с внешним кодом или требования к памяти адреса.

Генератор кода производит код для элементов данных модели и функций:

  • Данные, такие как импорт, сигналы, состояния и параметры, из которых ваш код приложения может читать и записать в.

  • Точка входа функционирует, такие как modelшаг, который ваш код приложения вызывает, чтобы выполнить алгоритм модели.

Можно сконфигурировать элементы данных модели и функции для генерации кода при помощи Code Mappings Editor или API отображений кода (coder.mapping.api.CodeMapping). Embedded Coder требуется, чтобы конфигурировать функции. Для элементов данных используйте API отображений редактора или кода Отображений Кода вместо, или в дополнение к, создавая и конфигурируя Объекты данных Simulink. Редактор и API позволяют вам сконфигурировать:

  • Настройки генерации кода по умолчанию, которые применяются в модели для категории элементов данных

  • Параметры конфигурации, которые применяются к отдельным элементам данных

Эта схема показывает полный рабочий процесс:

Iterative flow diagram that shows steps of configuring default mappings, overriding default mappings for individual model elements, and creating code definitions for model elements.

Миграция

Когда вы открываете модель, созданную в релизе, прежде чем R2020b, Simulink® переместит определения кода, заданные в модели к отображениям типового кодекса.

При необходимости, как часть миграции, Simulink конфигурирует Словарь Embedded Coder, который использует модель. Когда вы сохраняете модель, отображения кода сохранены как часть модели.

Для получения дополнительной информации, такие как эффекты миграции и что рассмотреть перед миграцией, смотрите Миграцию Настроек Данных модели к Отображениям Кода.

Определения кода

Определения кода включают классы памяти. Класс памяти задает свойства, такие как внешний вид и местоположение, что генератор кода использует при создании кода для связанных данных.

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

Генератор кода предоставляет предопределенные определения кода для элементов данных. Если у вас есть Embedded Coder, можно использовать Словарь Embedded Coder, чтобы создать и совместно использовать определения кода, например, стандартизировать код, который вы генерируете от многоуровневых моделей или создать определения для различных сред выполнения приложения. Создание пользовательских определений позволяет вам достигнуть целей генерации кода, которым не могут удовлетворить предопределенные определения. Для элементов данных у вас также есть опция создания определений кода, созданных в пакетах при помощи Custom Storage Class Designer Embedded Coder.

Определения кода, которые вы создаете при помощи словаря Embedded Coder, появляются в Code Mappings Editor и доступны при помощи API отображений кода. Для некоторых определений, которые вы создаете при помощи Custom Storage Class Designer, можно заставить определения появиться в редакторе Отображений Кода путем конфигурирования Словаря Embedded Coder, чтобы относиться к ним.

По умолчанию определения кода, которые вы создаете при помощи Словаря Embedded Coder для модели, хранятся в файле модели. Можно совместно использовать определения кода между моделями и проектами путем хранения определений в словаре данных Simulink®. Со словарем данных, чтобы изменить разделяемое определение, вы изменяете определение в одном месте — Словарь Embedded Coder.

Для получения дополнительной информации смотрите, Задают Классы памяти, Разделы Памяти и Шаблоны функций для Программной архитектуры (Embedded Coder) и Создают Классы памяти при помощи Custom Storage Class Designer (Embedded Coder).

Настройки значения по умолчанию данных

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

Настройки по умолчанию применяются в модели, исключая модели, на которые ссылаются. Simulink сохраняет отдельный набор отображений кода как часть каждой модели в иерархии модели - ссылки.

Если модель включает значительное количество элементов данной категории (например, больше чем 10), более эффективно сконфигурировать категорию при помощи настройки по умолчанию, и затем заменить ту установку для особых случаев.

Настройки по умолчанию могут помочь вам уменьшать ручной ввод данных.

  • Когда вы добавляете блоки и сигналы к модели, новые элементы данных наследовали настройки по умолчанию.

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

  • Для КПД используйте правила именования, когда вы вносите изменения в другом месте в модели.

Вы конфигурируете значения по умолчанию данных при помощи вкладки Code Mappings Editor Data Defaults или setDataDefault функция.

Категории данных модели

Вы конфигурируете значения по умолчанию данных при помощи вкладки Code Mappings Editor Data Defaults или setDataDefault функция. Во вкладке Data Defaults или вызове функции, можно выбрать или задать эти категории элементов данных.

Категория элемента моделиОписание
InportsВходные порты корневого уровня модели, такие как Inport и блоки In Bus Element.
Выходные портыВыходные порты корневого уровня модели, такие как Outport и блоки Out Bus Element.
Сигналы, состояния и внутренние данныеЭлементы данных, которые являются внутренними к модели, такими как выходные сигналы блока, дискретные состояния блока, хранилища данных и сигналы пересечения нулем.
Разделяемые локальные хранилища данныхБлоки Data Store Memory, которые имеют параметры блоков набор Share across model instances. Эти хранилища данных доступны только в модели, где они заданы. Значение хранилища данных совместно используется через экземпляры модели.
Хранилища глобальных данныхХранилища данных, которые заданы объектом сигнала в базовом рабочем пространстве или в словаре данных. Многоуровневые модели в приложении могут использовать эти хранилища данных. Чтобы просмотреть и сконфигурировать эти хранилища данных в редакторе Отображений Кода, нажмите Refresh соединитесь справа от названия категории. Нажатие на эту ссылку обновляет диаграмму модели.
Параметры моделиПараметры, которые заданы в модели, такой как параметры в рабочем пространстве модели. Исключает аргументы модели.
Внешние параметрыПараметры, которые вы задаете как объекты в базовом рабочем пространстве или в словаре данных. Многоуровневые модели в приложении могут использовать эти параметры. Чтобы просмотреть и сконфигурировать эти параметры в редакторе Отображений Кода, нажмите Refresh соединитесь справа от названия категории. Нажатие на эту ссылку обновляет диаграмму модели.

Факторы для конфигурирования настроек генерации кода по умолчанию для данных

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

ФакторБольше информации
Какие категории относятся к вашей модели?Категории элемента данных в предыдущей таблице
Модель использует несколько экземпляров данных, которые находятся в категории? Если ответ да, применение отображений по умолчанию выгодно. В противном случае рассмотрите генерацию кода конфигурирования для каждого элемента данных индивидуально.
Какой класс памяти выравнивается с вашими требованиями генерации кода для каждой категории? Выберите Storage Class for Controlling Data Representation in Generated Code
Вы хотите препятствовать тому, чтобы оптимизация устранила определенные данные из кода? Устранение категорий данных оптимизацией

После того, как вы сконфигурируете одну или несколько категорий элементов модели, разделы установки memory и параметры конфигурации модели Shared utilities identifier format не оказывает влияния на настройку модели. Когда вы открываете приложение кодера, Simulink перемещает настройки параметра конфигурации модели на редактор Отображений Кода. Как часть миграции, Simulink конфигурирует Словарь Embedded Coder, который модель использует, как описано в Разделе Migrate Memory и Разделяемых Служебных Настройках от Параметров конфигурации до Редактора Отображений Кода (Embedded Coder).

Устранение категорий данных оптимизацией

Оптимизация генерации кода может устранить данные из кода, что означает, что ваш код приложения не может взаимодействовать с данными. Для получения общей информации об устранении данных оптимизацией, смотрите Как Хранилища Сгенерированного кода Внутренний Сигнал, состояние и Данные о Параметре (Embedded Coder).

Оптимизация может устранить данные в этих категориях только:

  • Model parameters

  • Model parameter arguments

  • External parameters

  • Internal data

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

Чтобы препятствовать тому, чтобы оптимизация устранила отдельные элементы данных, явным образом примените класс памяти к отдельному элементу. Класс памяти управляет внешним видом данных в сгенерированном коде. Чтобы обеспечить элемент данных, чтобы использовать, класс памяти по умолчанию, который вы задаете, явным образом примените класс памяти Model default. Смотрите выбирают класс памяти для управления представлением данных в сгенерированном коде.

Разделяемые значения по умолчанию данных о словаре

Если вы соединяете модель со словарем данных Simulink, который включает словарь кодера, который конфигурирует определения кода по умолчанию для категорий данных, можно использовать редактор Отображений Кода, чтобы применить значения по умолчанию словаря. В редакторе Отображений Кода, на вкладке Data Defaults, выбирают категорию и устанавливают класс памяти на Dictionary Default. Если кто-то вносит изменение в настройки по умолчанию в разделяемом словаре кодера, генератор кода применяет обновленные настройки по умолчанию при создании кода для модели. Смотрите Конфигурируют Отображение Кода По умолчанию в Разделяемом Словаре (Embedded Coder).

Настройки для отдельных элементов данных

После того, как вы сконфигурируете настройки по умолчанию всей модели, можно заменить значения по умолчанию для отдельных элементов данных. Отдельная настройка элемента данных применяется к определенному элементу данных в модели. Сконфигурируйте элементы данных индивидуально когда:

  • Модель включает несколько элементов данной категории, которые имеют уникальный источник, именование или требования размещения.

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

Для отдельных элементов данных первоначально класс памяти установлен в Auto, что означает, что генератор кода может устранить или изменить представление соответствующих норм в целях оптимизации. Если оптимизация не возможна, генератор кода применяет настройку по умолчанию модели.

  • Чтобы избежать оптимизации и обеспечить генератор кода, чтобы использовать настройку по умолчанию, установите класс памяти на Model default.

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

Если элемент данных в модели без имени (например, сигнал не имеет никакой метки, или состояние не имеет никакого имени), необходимо задать идентификатор кода для элемента данных при конфигурировании его для генерации кода C. Установите идентификатор кода путем определения значения для свойства Identifier класса памяти.

Сконфигурируйте данные

  1. Откройте приложение Simulink Coder™.

  2. Сконфигурируйте отображения по умолчанию для категорий элементов данных. Выберите Code Interface > Default Code Mappings. В редакторе Отображений Кода, на вкладке Data Defaults, выбирают категорию элемента модели и устанавливают класс памяти. В Property Inspector, свойства класса памяти набора выровняться с требованиями модели.

  3. Решите, заменить ли параметры конфигурации по умолчанию для отдельных элементов данных. Если вы принимаете решение не заменить настройки, перейдите к шагу 8.

  4. Идентифицируйте переменные MATLAB, которые вы хотите сконфигурировать индивидуально и сохранить настройки в файле модели. В Model Explorer преобразуйте переменные в Simulink.Parameter объекты. Получившиеся объекты данных появляются в редакторе Отображений Кода как параметры модели.

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

    • Для данных сигнала, который характерен для модели (не совместно использованный), добавьте сигналы в редактор Отображений Кода.

    • Для разделяемых данных сигнала создайте и сконфигурируйте Simulink.Signal объекты.

  6. Сконфигурируйте отдельные элементы данных. В редакторе Отображений Кода кликните по вкладке категории, выберите элемент данных и установите класс памяти. В Property Inspector, значениях свойств класса памяти набора. Чтобы изменить настройки параметра конфигурации модели Default parameter behavior, щелкните по ссылке, указывающей на поведение, когда класс памяти будет установлен в Auto. В диалоговом окне Model Configuration Parameters измените установку параметра в Tunable или Inline.

    Для получения информации о конфигурировании определенных типов элементов данных см.:

  7. Чтобы просмотреть и сконфигурировать внешние объекты данных, которые хранятся в базовом рабочем пространстве или словаре данных, в редакторе Отображений Кода, на вкладке Data Defaults, нажимают Refresh соединитесь справа от названия категории.

  8. Сгенерируйте и рассмотрите код.

Для получения дополнительной информации и примеры, см.:

Смотрите также

|

Похожие темы

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