Много параметров конфигурации модели для генерации кода характерны для GRT, ERT или основанных на ERT системных конечных файлов.
Используйте интерфейсные параметры конфигурации модели, чтобы управлять, какими библиотеками пользоваться при генерации кода, включать ли поддержку API в сгенерированном коде и другие интерфейсные опции.
К... | Выберите или войдите... |
---|---|
Задайте стандартную математическую библиотеку, которой генератор кода пользуется при генерации кода. | Выберите Выбор Для получения дополнительной информации смотрите Стандартную математическую библиотеку. Опции для этого параметра имеют зависимости. Смотрите Интерфейсные Зависимости. |
Задайте специализированную библиотеку, которой генератор кода пользуется при генерации кода. | Если вы генерируете специализированный код C or C++ для математических функций или операций, выберите значение для Code replacement library. В противном случае задайте Для получения дополнительной информации о заменяющих библиотеках кода, смотрите, Выбирают Code Replacement Library и заменяющую библиотеку Code. Опции для этого параметра имеют зависимости. Смотрите Интерфейсные Зависимости. |
Прямой, куда генератор кода помещает фиксированную точку и другой служебный код. | Выберите
|
Задайте текст, который будет добавлен к именам переменных, используемым при регистрации данных к MAT-файлам, и отличит данные о регистрации от приложений симуляции и генерации кода. | Введите префикс или суффикс, такой как |
Задайте API обмена данными, которые будут включены в сгенерированный код. | Выберите одну или несколько опций C API, опцию ASAP2 interface или опцию External mode. Когда вы выбираете External mode, другие опции появляются. API обмена данными независимы, и можно выбрать комбинации этих API. Например, вы могли выбрать C API и режим external mode. Для получения дополнительной информации о работе с этими интерфейсами смотрите, обмениваются Данными Между Сгенерированным и Внешним Кодом Используя API C, Экспорт Файл ASAP2 для Измерения Данных и Калибровкой и Симуляциями Режима external mode для Настройки Параметра и Контроля сигналов. Опции для этого параметра имеют зависимости. Смотрите Интерфейсные Зависимости. |
Перед установкой 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 | Да | Enabled 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-функцию MEX C, которая не имеет соответствующей реализации 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 (значение по умолчанию). Для получения дополнительной информации о прямом канале через, смотрите Алгебраические Концепции Цикла (Simulink). |
Сгенерируйте | Выберите Terminate function required (Embedded Coder). Для получения дополнительной информации см. описание |
Сгенерируйте допускающий повторное использование, повторно используемый код из модели или подсистемы. | Выберите Generate reusable code. Смотрите Конфигурируют Поддержку Повторного использования кода деталей. |
Статически выделите структуры данных модели и получите доступ к ним непосредственно в типовом кодексе. | Очистите Generate reusable code. Сгенерированный код не является допускающим повторное использование или повторно используемым. Смотрите Конфигурируют Генерацию кода для Функций Точки входа Модели для получения информации об интерфейсе вызова, сгенерированном для функций модели в этом случае. |
Подавите генерацию ошибочного поля состояния в структуре данных модели реального времени, rtModel , например, если вы не требуете, чтобы регистрировать или сообщения ошибки монитора. | Выберите ошибочное поле состояния Remove в режиме реального времени структура данных модели. Выбор этого параметра может также заставить генератор кода не использовать При генерации кода для нескольких интегрированных моделей, установленных этот параметр то же самое для всех моделей. В противном случае интегрированное приложение могло предоставить неожиданное поведение. Например, если вы выбираете опцию в одной модели, но не в другом, возможно, что интегрированное приложение не могло указать ошибочное состояние. Не выбирайте этот параметр, если вы выбираете опцию логгирования 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
шаг
К... | Выбрать... |
---|---|
Передайте каждый аргумент входа и выхода модели корневого уровня функционируйте индивидуально (значение по умолчанию) | 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-функция, которая не является совместимым повторным использованием кода
Подсистема инициирована широким триггером вызова функции
В этих случаях сборка завершает работу после сообщения о проблеме.
Для получения дополнительной информации смотрите, Генерируют Повторно используемый Код от Топ-моделей (Embedded Coder) и Параметры конфигурации Модели: Интерфейс Генерации кода.