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

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

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

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

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

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

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

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

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

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

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

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

Панель диалогового окнаОпцияТребование
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 Editor на вкладке 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 из модели, которая использует ссылки на модель:

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

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

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

Настраиваемые целевые требования

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

Прочие факторы

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

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

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

Похожие темы