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

Иерархия модели - ссылки должна удовлетворить различным требованиям Simulink® Coder™, как описано в этой теме. Модель, ссылающаяся на иерархию, которая будет обработана программным обеспечением Simulink Coder, должна также удовлетворить:

Требования параметра конфигурации

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

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

  • Где несоответствие параметра не имеет никакого значения, генератор кода игнорирует или разрешает несоответствие, не отправляя предупреждение.

  • Где нетривиальное и возможно приемлемое решение существует к противоречивому параметру, генератор кода разрешает конфликт тихо; твердость это с предупреждением; или генерирует ошибку.

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

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

Чтобы выбрать цель генерации кода для иерархии модели - ссылки, не изменяя отдельные модели, используйте ссылку настройки в словаре данных Simulink. Для получения дополнительной информации смотрите Ссылку Настройки Использования, чтобы Выбрать Code Generation Target.

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

Требования по настройке для ссылки модели с системными конечными файлами

Панель диалогового окнаОпцияТребование
SolverStart timeНекоторые системные конечные файлы требуют, чтобы время начала моделей было нулем.

Hardware Implementation

Все опции

Значения должны быть тем же самым для главных и моделей, на которые ссылаются.

Code Generation

System target file

Должно быть то же самое для главных и моделей, на которые ссылаются.

LanguageДолжно быть то же самое для главных и моделей, на которые ссылаются.
Generate code only

Должно быть то же самое для главных и моделей, на которые ссылаются.

Identifiers

Maximum identifier length

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

Interface

Code replacement library

Должно быть то же самое для главных и моделей, на которые ссылаются.

Опции Generate C API for

Флажки C API, которые вы устанавливаете, должны быть тем же самым для главных и моделей, на которые ссылаются.

ASAP2 interface

Может быть on или off в топ-модели, но должен быть off в модели, на которую ссылаются. Если это не off, генератор кода временно устанавливает его на off во время генерации кода.

Требования по настройке для ссылки модели с системными конечными файлами ERT (требует Embedded Coder),

Панель диалогового окнаОпцияТребование

Identifiers

Глобальные переменные
Глобальные типы
Методы подсистемы
Локальные временные переменные
Постоянные макросы
$R лексема должна быть включена.

Signal naming

Должно быть то же самое для главных и моделей, на которые ссылаются.

M-функцияЕсли задано, должно быть то же самое для главных и моделей, на которые ссылаются.

Parameter naming

Должно быть то же самое для главных и моделей, на которые ссылаются.

#define naming

Должно быть то же самое для главных и моделей, на которые ссылаются.

Interface

Ignore custom storage classes

Должно быть то же самое для главных и моделей, на которые ссылаются.

Support floating-point numbers

Должно быть то же самое для главных и моделей, на которые ссылаются.

Support non-finite numbers

Если off для топ-модели, должен быть off для моделей, на которые ссылаются.

Support complex numbers

Если off для топ-модели, должен быть off для моделей, на которые ссылаются.

Remove error status field in real-time model data structure

Если on для топ-модели, должен быть on для моделей, на которые ссылаются.

Code Placement

Use owner from data object for data definition placement

Должно быть то же самое для главных и моделей, на которые ссылаются.

Signal display level

Должно быть то же самое для главных и моделей, на которые ссылаются.

Parameter tune level

Должно быть то же самое для главных и моделей, на которые ссылаются.

Параметры конфигурации, измененные во время генерации кода

Для моделей, на которые ссылаются, если они Configuration Parameters> Code Generation> параметры Identifiers имеют настройки, которые не содержат $R лексема (который представляет имя модели, на которую ссылаются), генерация кода предварительно ожидает $R лексема к формату идентификатора:

  • Global variables (CustomSymbolStrGlobalVar)

  • Global types (CustomSymbolStrType)

  • Subsystem methods (CustomSymbolStrFcn)

  • Constant macros (CustomSymbolStrMacro)

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

  1. В Редакторе Simulink, от вкладки Modeling, выбирают Model Advisor.

  2. Выберите By Task.

  3. Осуществите проверку Check code generation identifier formats used for model reference.

Если скрипт, который работает со сгенерированным кодом, использует форматы идентификатора, которые изменяет генерация кода, то обновите скрипт, чтобы использовать обновленный формат идентификатора (который включает добавленный $R лексема).

Для получения дополнительной информации об идентификаторах, смотрите Управление форматом Идентификатора.

Именование требований

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

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

Требования именования Embedded Coder

Продукт Embedded Coder® позволяет вам управлять форматированием сгенерированных символов в намного больших деталях. Когда генерация кода с ERT предназначается из модели, которая использует ссылку модели:

  • $R лексема (в дополнение к $M лексема), должен быть включен в технические требования параметра управления форматом Идентификатора за исключением Shared utilities identifier format.

  • Максимальная длина идентификатора должна быть достаточно большой, чтобы вместить полные расширения $R и $M лексемы.

Для получения дополнительной информации смотрите Параметры конфигурации Модели: Идентификаторы Генерации кода.

Пользовательские целевые требования

Если у вас есть Embedded Coder, пользовательская цель должна удовлетворить различные требования к ссылке модели поддержки. Для получения дополнительной информации смотрите, что Модель поддержки Ссылается.

Разные факторы

Минимизируйте случаи алгебраических циклов путем выбора параметра Minimize algebraic loop occurrences на панели Model Referencing. Установка этой опции влияет только на генерацию кода из модели. Для получения дополнительной информации о прямом канале через, смотрите Алгебраические Концепции Цикла.

Используйте Целочисленный параметр режима округления на блоках своей модели, чтобы симулировать округляющееся поведение компилятора C, который вы намереваетесь использовать, чтобы скомпилировать код, сгенерированный из модели. Эта установка появляется на панели Signal Attributes диалоговых окон параметра блоков, которые могут выполнить арифметику целого числа со знаком, такую как блоки n-D Lookup Table и Product.

Для большинства блоков значение Целочисленного режима округления полностью задает округление поведения. Для блоков, которые поддерживают данные фиксированной точки и Самый Простой режим округления, значение Signed integer division rounds to также влияет на округление. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).

Похожие темы