Многие параметры конфигурации модели для генерации кода специфичны для системных целевых файлов GRT, ERT или ERT.
Используйте параметры конфигурации модели интерфейса, чтобы контролировать, какие библиотеки использовать при генерации кода, включать ли поддержку API в сгенерированный код и другие опции интерфейса.
Кому... | Выберите или введите... |
---|---|
Задайте стандартную математическую библиотеку, которую генератор кода использует при генерации кода. | Выберите Выбор Для получения дополнительной информации см. Стандартная математическая библиотека. Опции для этого параметра имеют зависимости. См. «Зависимости интерфейса». |
Укажите библиотеку для конкретного приложения, которую генератор кода использует при генерации кода. | Если вы генерируете специфичный для приложения код C or C++ для математических функций или операций, выберите значение для Code replacement library. В противном случае задайте Дополнительные сведения о библиотеках замещения кода см. в разделе Выбор библиотеки замещения кода и библиотеки замещения кода. Опции для этого параметра имеют зависимости. См. «Зависимости интерфейса». |
Направьте туда, где генератор кода помещает фиксированную точку и другой служебный код. | Выберите
|
Укажите текст, который будет добавлен к именам переменных, используемым при регистрации данных в MAT-файлах, и чтобы отличить данные регистрации от приложений генерации кода и симуляции. | Введите префикс или суффикс, например |
Укажите API обмена данными, которые будут включены в сгенерированный код. | Выберите одну или несколько опций C API, опцию ASAP2 interface или опцию External mode. При выборе External mode появляются другие опции. API обмена данными являются независимыми, и можно выбрать комбинации этих API. Например, можно выбрать C API и режим external mode. Для получения дополнительной информации о работе с этими интерфейсами смотрите Exchange Data Between Genered and External Code Using C API, Экспорт ASAP2 файла для измерения и калибровки данных и Симуляции режима external mode для настройки параметров и контроля сигналов. Опции для этого параметра имеют зависимости. См. «Зависимости интерфейса». |
[a] ANSI является зарегистрированным товарным знаком Американского национального института стандартов, Inc. [b] ISO является зарегистрированным товарным знаком Международной организации по стандартизации. |
Примечание
Прежде чем настраивать Standard math library или Code replacement library, проверьте, что ваш компилятор поддерживает библиотеку, которую вы хотите использовать. Если вы выбираете значение параметров, которое не поддерживает набор инструментальных средств, могут возникнуть ошибки компилятора. Для примера, если вы выбираете стандартную математическую библиотеку C99 (ISO)
и ваш компилятор не поддерживает математические расширения ISO C, могут возникнуть ошибки во время компиляции.
Когда Embedded Coder® продукт установлен в системе, панель Code Generation > Interface развернута и включает несколько дополнительные опции. Описания параметров панели Code Generation > Interface см. в разделе Параметры конфигурации модели: Интерфейс генерации кода.
Несколько параметров интерфейса имеют зависимости от настроек других параметров. В следующей таблице перечислены зависимости.
Зависимости интерфейса
Параметр | Зависимости? | Сведения о зависимостях |
---|---|---|
Standard math library | Да | Доступные значения зависят от Language выбора. |
Code replacement library | Да | Доступные значения зависят от лицензирования продукта и других параметров. Дополнительные сведения см. в разделе Библиотека замещения кода. |
Shared code placement | Нет | |
Support: floating-point numbers (только целевые файлы системы ERT) | Нет | |
Support: non-finite numbers | Да (ERT) Нет (GRT) | Для целевых файлов системы ERT, активируемых Support floating-point numbers |
Support: complex numbers (только целевые файлы системы ERT) | Нет | |
Support: absolute time (только целевые файлы системы ERT) | Нет | |
Support: continuous time (только целевые файлы системы ERT) | Да | Требует отключения Remove error status field in real-time model data structure. |
Support: non-inlined S-functions (только целевые файлы системы ERT) | Да | Требует, чтобы вы включили Support floating-point numbers и Support non-finite numbers |
Classic call interface | Да | Требует отключения Single output/update function. Для целевых файлов системы ERT требует, чтобы вы включили Support floating-point numbers. |
Single output/update function | Да | Отключить для Classic call interface |
Terminate function required (только целевые файлы системы ERT) | Да | |
Code interface packaging | Да | Доступные значения зависят от Language выбора. |
Multi-instance code error diagnostic | Да | Установите Code interface packaging значение Reusable function или C++ class |
Pass root-level I/O as (только целевые файлы системы ERT) | Да | Установите Code interface packaging значение Reusable function |
Use dynamic memory allocation for model initialization (только целевые файлы системы ERT) | Да | Установите Code interface packaging значение Reusable function |
MAT-file logging | Да | Для целевых файлов системы GRT требует, чтобы вы включили Support non-finite numbers; для целевых файлов системы ERT требует, чтобы вы включили Support floating-point numbers, Support non-finite numbers и Terminate function required |
MAT-file file variable name modifier | Да | Включено по MAT-file logging |
Remove error status field in real-time model data structure (только целевые файлы системы ERT) | Да | Требует отключения Support: continuous time. |
Generate C API for: signals | Нет | |
Generate C API for: parameters | Нет | |
Generate C API for: states | Нет | |
Generate C API for: root-level I/O | Нет | |
ASAP2 interface | Нет | |
External mode | Нет | |
Transport layer | Да | Включите External mode |
MEX-file arguments | Да | Включите External mode |
Static memory allocation | Да | Включите External mode |
Static memory buffer size | Да | Включите Static memory allocation |
По умолчанию целевые файлы системы ERT поддерживают генерацию кода для целочисленных, с плавающей точкой, нефинитных и комплексных чисел.
Для получения дополнительной информации смотрите Параметры конфигурации модели: Интерфейс генерации кода.
Некоторым блокам требуется значение абсолютного времени, истекшего времени или непрерывного времени. Абсолютное время - это время от начала выполнения программы до настоящего времени. Истекшее время - это время, прошедшее между двумя триггерными событиями. В зависимости от используемых блоков ваша модель может потребовать корректировки настроек строения для поддерживаемых значений времени.
Кому... | Выберите... |
---|---|
Сгенерируйте код, который создает и поддерживает целочисленные счетчики для блоков, которые используют абсолютные или истекшие временные значения (по умолчанию). | Support absolute time. Для получения дополнительной информации о выделении и операции абсолютных и истекших таймеров, смотрите Абсолютные и истекшие Временные Расчеты. Если вы не выбираете этот параметр, и модель включает блок, который использует абсолютные или истекшие значения времени, процесс сборки генерирует ошибку. |
Сгенерируйте код для блоков, которые полагаются на непрерывное время. | Support continuous time. Если вы не выбираете этот параметр, и модель включает блоки в непрерывном времени, процесс сборки генерирует ошибку. |
Для получения дополнительной информации смотрите Параметры конфигурации модели: Интерфейс генерации кода.
Чтобы сгенерировать код для нелинейных S-Функций в модели, выберите Support noninlined S-functions. Для генерации неинстрированных S-функций требуются числа с плавающей точкой и нефиниты. Таким образом, когда вы выбираете Support non-inlined S-functions, системный целевой файл ERT выбирает Support floating-point numbers и Support non-finite numbers.
Когда вы выбираете Support non-finite numbers, и модель включает в себя S-функцию C MEX, которая не имеет соответствующей реализации TLC (для инициализации генерации кода), процесс сборки генерирует ошибку.
Внедрение S-функций очень выгодно при генерации производственного кода, например, при реализации драйверов устройств. Чтобы обеспечить использование встроенных S-функций для генерации кода, очистите Support non-inlined S-functions.
При генерации кода для модели, которая содержит нелинейные S-функции с целевым файлом системы ERT, может возникнуть несоответствие между результатами симуляции и генерации кода, когда любое из следующих значений верно:
Моделируйте параметры конфигурации GenCodeOnly
установлено в off
.
Моделируйте параметры конфигурации ProdEqTarget
установлено в off
.
Чтобы избежать такого несоответствия, установите ProdEqTarget
на on
или установите GenCodeOnly
на on
.
Для целевых файлов системы ERT можно сконфигурировать модель для того, как сгенерированы функции и как аргументы передаются в функции.
Кому... | Делай... |
---|---|
Сгенерируйте вызовы функций модели, которые совместимы с основным программным модулем целевого файла pre-R2012a системы GRT (grt_main.c или .cpp ). | Выберите Classic call interface и MAT-file logging. В сложение очистка Remove error status field in real-time model data structure. Classic call interface предоставляет быстрый способ использования кода, сгенерированного в R2012a или выше, с pre-R2012a пользовательским системным целевым файлом на основе GRT путем генерации вызовов функций оболочки, которые соединяются с сгенерированным кодом. |
Уменьшите накладные расходы и используйте больше локальных переменных путем объединения функций выхода и обновления в одной функция. | Выберите Single output/update function Ошибки или неожиданное поведение могут возникнуть, если блок Model является частью цикла, и строение модели включает функцию Single output/update (по умолчанию). Для получения дополнительной информации о прямой передаче через, см. Алгебраические Циклы Концепций. |
Сгенерируйте | Выберите Terminate function required (Embedded Coder). Для получения дополнительной информации смотрите описание |
Сгенерируйте переиспользуемый, повторно входящий код из модели или подсистемы. | Выберите Generate reusable code. Для получения дополнительной информации см. раздел «Настройка поддержки повторного использования кода». |
Статически распределите структуры данных моделей и получите доступ к ним непосредственно в коде модели. | Очистить Generate reusable code. Сгенерированный код не является переиспользуемым или повторно входящим. Смотрите Configure C Code Generation for Model Entry-Point Functions для получения информации о вызывающем интерфейсе, сгенерированном для функций модели в этом случае. |
Подавьте генерацию поля состояния ошибки в структуре данных модели реального времени, rtModel для примера, если вы не требуете регистрироваться или контролировать сообщения об ошибке. | Выберите Remove error status field в структуре данных модели реального времени. Выбор этого параметра может также привести к тому, что генератор кода опускает При генерации кода для нескольких интегрированных моделей установите этот параметр одинаковым для всех моделей. В противном случае интегрированное приложение может продемонстрировать неожиданное поведение. Например, если вы выбираете опцию в одной модели, но не в другой, возможно, что интегрированное приложение не смогло зарегистрировать статус ошибки. Не выбирайте этот параметр, если вы выбираете опцию логгирования MAT-файлов. Эти две опции несовместимы. |
Откройте диалоговое окно Configure C Step Function Interface и измените | В редакторе сопоставлений кода на вкладке Entry-Point Functions щелкните в столбце Имя функции для функции шага базовой скорости. Щелкните три вертикальные точки, которые появляются. Затем нажмите Configure Prototype. Если прототип функции не был предварительно сконфигурирован, откроется диалоговое окно, показывающее предварительный просмотр интерфейса функции шага без аргументов ( |
Для получения дополнительной информации смотрите Параметры конфигурации модели: Интерфейс генерации кода.
Для системных целевых файлов на основе GRT, ERT, GRT и ERT можно сконфигурировать, как повторные использования модели код, установив значение параметра конфигурации Code interface packaging равным Reusable function
.
Параметр конфигурации Pass root-level I/O as предоставляет опции, которые управляют тем, как входы и выходы модели на корневом уровне модели передаются в
функция. model
_step
Кому... | Выберите... |
---|---|
Передайте каждый входной и выходной аргумент модели корневого уровня в функция индивидуально (по умолчанию) | Code interface packaging> Reusable function и Pass root-level I/O as > Individual arguments . |
Упакуйте входные параметры корневого уровня и выходные аргументы корневого уровня в отдельные структуры, которые затем передаются в функция | Code interface packaging> Reusable function и Pass root-level I/O as > Structure reference . |
Упакуйте входные параметры корневого уровня и выходные аргументы корневого уровня в структуру данных моделей, чтобы поддержать входящий мультиобразец из модели для целевого файла системы ERT | Code interface packaging> Reusable function и Pass root-level I/O as > Part of model data structure . |
При использовании Code interface packaging > Reusable function
выберите, рассмотрите использование опции Use dynamic memory allocation for model initialization, чтобы контролировать, сгенерирована ли функция распределения. Эта опция применяется к системным целевым файлам ERT.
Иногда выбираем Code interface packaging следующим Reusable function
может сгенерировать код, который компилируется, но не повторяется. Для примера, если сигнал, DWork
структура, или данные параметра имеют класс памяти, отличный от Auto
, глобальные данные структуры сгенерированы. Чтобы обработать такие случаи, используйте параметр Multi-instance code error diagnostic, чтобы выбрать уровни серьезности для диагностики.
Иногда генератор кода не может сгенерировать допустимый и компилируемый код. Для примера, если модель содержит одно из следующего, сгенерированный код является недопустимым.
S-функция, которая не совместима с повторным использованием кода
Подсистема, инициируемая триггером широкого вызова функции
В этих случаях сборка прекращается после сообщения о проблеме.
Для получения дополнительной информации смотрите Generate Reentrant Code from Top Models (Embedded Coder) и Model Configuration Parameters: Генерация кода Interface.