Многие параметры конфигурации модели для генерации кода специфичны для целевых системных файлов GRT, ERT или ERT.
Параметры конфигурации модели интерфейса используются для управления библиотеками, используемыми при создании кода, включением поддержки API в создаваемый код и другими параметрами интерфейса.
| Кому... | Выберите или введите... |
|---|---|
| Укажите стандартную математическую библиотеку, используемую генератором кода при создании кода. | Выбрать Выбор Дополнительные сведения см. в разделе Стандартная математическая библиотека. Параметры этого параметра имеют зависимости. См. раздел Зависимости интерфейса. |
| Укажите библиотеку для конкретного приложения, используемую генератором кода при создании кода. | При создании специфичного для приложения кода C или C++ для математических функций или операций выберите значение для библиотеки замены кода. В противном случае укажите Дополнительные сведения о библиотеках замены кода см. в разделе Выбор библиотеки замены кода и библиотеки замены кода. Параметры этого параметра имеют зависимости. См. раздел Зависимости интерфейса. |
| Укажите, где генератор кода размещает фиксированный и другой служебный код. | Выбрать
|
| Укажите текст, добавляемый к именам переменных, используемым при регистрации данных в MAT-файлах, и для отличия данных регистрации от приложений генерации кода и моделирования. | Введите префикс или суффикс, например |
| Укажите API обмена данными для включения в созданный код. | Выберите одну или несколько опций C API, опцию ASAP2 интерфейса или опцию внешнего режима. При выборе внешнего режима появляются другие параметры. API обмена данными независимы, и можно выбрать комбинации этих API. Например, можно выбрать C API и внешний режим. Дополнительные сведения о работе с этими интерфейсами см. в разделах Обмен данными между сгенерированным и внешним кодом с помощью C API, Экспорт файла ASAP2 для измерения и калибровки данных и Моделирование внешнего режима для настройки параметров и мониторинга сигналов. Параметры этого параметра имеют зависимости. См. раздел Зависимости интерфейса. |
ANSI является зарегистрированным товарным знаком Американского национального института стандартов, Inc. [b] ISO является зарегистрированным товарным знаком Международной организации по стандартизации. | |
Примечание
Прежде чем задать стандартную математическую библиотеку или библиотеку замены кода, убедитесь, что компилятор поддерживает нужную библиотеку. При выборе значения параметра, которое не поддерживается в цепочке инструментов, могут возникать ошибки компилятора. Например, если выбрана стандартная математическая библиотека C99 (ISO) компилятор не поддерживает математические расширения ISO C, могут возникать ошибки времени компиляции.
Когда продукт Embedded Coder ® установлен в системе, панель «Создание кода» > «Интерфейс» расширяется и включает несколько дополнительных опций. Описание параметров панели «Создание кода» > «Параметры панели интерфейса» см. в разделе Параметры конфигурации модели: интерфейс создания кода.
Несколько параметров интерфейса зависят от настроек других параметров. В следующей таблице суммированы зависимости.
Зависимости интерфейса
| Параметр | Зависимости? | Сведения о зависимостях |
|---|---|---|
| Стандартная математическая библиотека | Да | Доступные значения зависят от выбора языка. |
| Библиотека замены кода | Да | Доступные значения зависят от лицензирования продукта и других параметров. Дополнительные сведения см. в разделе Библиотека замены кода. |
| Размещение общего кода | Нет | |
| Поддержка: числа с плавающей запятой (только целевые файлы системы ERT) | Нет | |
| Поддержка: неграничные числа | Да (ERT) Нет (GRT) | Для целевых файлов системы ERT с поддержкой чисел с плавающей запятой |
| Поддержка: комплексные номера (только целевые файлы системы ERT) | Нет | |
| Поддержка: абсолютное время (только целевые файлы системы ERT) | Нет | |
| Поддержка: непрерывное время (только целевые файлы системы ERT) | Да | Требуется отключить поле Удалить состояние ошибки в структуре данных модели в реальном времени. |
| Поддержка: неинлинированные S-функции (только целевые файлы системы ERT) | Да | Требуется включить поддержку чисел с плавающей запятой и поддержку неграничных чисел |
| Классический интерфейс вызова | Да | Требуется отключить функцию Single output/update. Для целевых файлов системы ERT необходимо включить поддержку чисел с плавающей запятой. |
| Одна функция вывода/обновления | Да | Отключить для классического интерфейса вызова |
| Требуется функция завершения (только целевые файлы системы ERT) | Да | |
| Упаковка интерфейса кода | Да | Доступные значения зависят от выбора языка. |
| Диагностика ошибок многоэкземплярного кода | Да | Установить упаковку интерфейса кода в Reusable function или C++ class |
| Передача ввода-вывода на корневом уровне как (только целевые файлы системы ERT) | Да | Установить упаковку интерфейса кода в Reusable function |
| Использовать динамическое выделение памяти для инициализации модели (только целевые файлы системы ERT) | Да | Установить упаковку интерфейса кода в Reusable function |
| Ведение журнала файлов MAT | Да | Для целевых файлов системы GRT необходимо включить поддержку неграничных чисел; для целевых файлов системы ERT необходимо включить функцию «Поддержка чисел с плавающей запятой», «Поддержка неграничных чисел» и «Завершение» |
| Модификатор имени переменной файла MAT | Да | Включено протоколированием MAT-файлов |
| Удалить поле состояния ошибки в структуре данных модели в реальном времени (только целевые файлы системы ERT) | Да | Требуется отключить поддержку: непрерывное время. |
| Генерация C API для: сигналов | Нет | |
| Создание C API для: параметров | Нет | |
| Создать C API для: состояний | Нет | |
| Создание C API для: ввода-вывода на корневом уровне | Нет | |
| ASAP2 интерфейс | Нет | |
| Внешний режим | Нет | |
| Транспортный уровень | Да | Включить внешний режим |
| Аргументы MEX-файла | Да | Включить внешний режим |
| Статическое выделение памяти | Да | Включить внешний режим |
| Размер буфера статической памяти | Да | Включить статическое выделение памяти |
По умолчанию целевые файлы системы ERT поддерживают генерацию кода для целых, плавающих, нефинитных и комплексных чисел.
Дополнительные сведения см. в разделе Параметры конфигурации модели: интерфейс генерации кода.
Некоторые блоки требуют значения абсолютного времени, прошедшего времени или непрерывного времени. Абсолютное время - это время от начала выполнения программы до текущего времени. Прошедшее время - это время, прошедшее между двумя триггерными событиями. В зависимости от используемых блоков для модели может потребоваться корректировка настроек конфигурации для поддерживаемых значений времени.
| Кому... | Выбрать... |
|---|---|
| Создание кода, который создает и поддерживает целочисленные счетчики для блоков, использующих абсолютные значения времени или значения времени по умолчанию. | Поддержка абсолютного времени. Дополнительные сведения о назначении и работе абсолютных и истекших таймеров см. в разделе Расчет абсолютного и прошедшего времени. Если этот параметр не выбран, а модель включает блок, в котором используются абсолютные или истекшие значения времени, в процессе построения генерируется ошибка. |
| Создание кода для блоков, зависящих от непрерывного времени. | Поддержка непрерывного времени. Если этот параметр не выбран, а модель включает блоки непрерывного времени, в процессе построения возникает ошибка. |
Дополнительные сведения см. в разделе Параметры конфигурации модели: интерфейс генерации кода.
Чтобы создать код для неинлинизированных S-функций в модели, выберите Поддерживать неинлинированные S-функции. Для создания неинлинных S-функций требуются числа с плавающей запятой и нефинитные числа. Таким образом, при выборе «Поддержка неинлинированных S-функций» целевой файл системы ERT выбирает «Поддержка чисел с плавающей запятой» и «Поддержка неграничных чисел».
При выборе опции Поддержка неграничных чисел (Support non-finite numbers), когда модель включает в себя S-функцию C MEX, которая не имеет соответствующей реализации TLC (для генерации встроенного кода), процесс построения генерирует ошибку.
Встроенные S-функции имеют большое преимущество при формировании производственного кода, например, при реализации драйверов устройств. Чтобы принудительно использовать встроенные S-функции для генерации кода, снимите флажок Поддерживать неинлинированные S-функции.
При создании кода для модели, содержащей неинлинные S-функции с целевым файлом системы ERT, может наблюдаться несоответствие между результатами моделирования и генерации кода, если верно одно из следующих значений:
Параметр конфигурации модели GenCodeOnly имеет значение off.
Параметр конфигурации модели ProdEqTarget имеет значение off.
Чтобы избежать такого несоответствия, установите ProdEqTarget кому on или набор GenCodeOnly кому on.
Для целевых файлов системы ERT можно настроить модель для создания функций и передачи аргументов функциям.
| Кому... | Делай... |
|---|---|
Произведите образцовые вызовы функции, которые совместимы с главным модулем программы системного конечного файла pre-R2012a GRT (grt_main.c или .cpp). | Выберите Классический интерфейс вызова и ведение журнала MAT-файла. Кроме того, следует очистить поле Remove error status в структуре данных модели в реальном времени. Классический интерфейс вызова обеспечивает быстрый способ использования кода, созданного в R2012a или более поздних версиях, с пользовательским системным целевым файлом на основе pre-R2012a GRT путем создания вызовов функции-оболочки, которые взаимодействуют с сгенерированным кодом. |
Сокращение накладных расходов и использование большего количества локальных переменных за счет объединения функций вывода и обновления в одном функция. | Выбор функции одиночного вывода/обновления Ошибки или неожиданное поведение могут возникнуть, если блок модели является частью цикла, а конфигурация модели включает функцию Single output/update (по умолчанию). Дополнительные сведения о прямой подаче см. в разделе Алгебраические концепции цикла. |
Создать | Выберите опцию Terminate function required (Требуется завершение функции). Дополнительные сведения см. в описании |
Создание повторно используемого кода повторного ввода из модели или подсистемы. | Выберите Создать повторно используемый код. Дополнительные сведения см. в разделе Настройка поддержки повторного использования кода. |
Статическое назначение структур данных модели и доступ к ним непосредственно в коде модели. | Снимите флажок Генерировать повторно используемый код. Созданный код не является повторно используемым или повторно вводимым. Для получения информации о вызывающем интерфейсе, сгенерированном для функций модели в данном случае, см. раздел Конфигурирование генерации кода C для функций точки входа модели. |
Подавление создания поля состояния ошибки в структуре данных модели в реальном времени. rtModel, например, если не требуется регистрировать или отслеживать сообщения об ошибках. | Выберите Удалить поле состояния ошибки в структуре данных модели в реальном времени. При выборе этого параметра генератор кода может также опустить При создании кода для нескольких интегрированных моделей установите этот параметр одинаковым для всех моделей. В противном случае интегрированное приложение может проявлять неожиданное поведение. Например, если выбрать опцию в одной модели, но не в другой, возможно, интегрированному приложению не удастся зарегистрировать статус ошибки. Не выбирайте этот параметр, если выбран параметр ведения журнала MAT-файла. Эти два варианта несовместимы. |
Откройте диалоговое окно Configure C Step Function Interface и измените | В редакторе отображения кода на вкладке Функции точек входа щелкните в столбце Имя функции для функции шага базовой скорости. Щелкните отображаемые три вертикальные точки. Затем щелкните Настроить прототип. Если прототип функции не был предварительно сконфигурирован, откроется диалоговое окно, в котором отображается предварительный просмотр интерфейса функции шага без аргументов ( |
Дополнительные сведения см. в разделе Параметры конфигурации модели: интерфейс генерации кода.
Для целевых системных файлов на основе GRT, ERT, GRT и ERT можно настроить повторное использование кода моделью, установив для параметра конфигурации упаковки интерфейса кода значение Reusable function.
Параметр Pass root-level I/O as configuration предоставляет опции, которые управляют тем, как входы и выходы модели на корневом уровне модели передаются в функция. model_step
| Кому... | Выбрать... |
|---|---|
Передать каждый входной и выходной аргумент модели корневого уровня в функция по отдельности (по умолчанию) | Упаковка интерфейса кода > Reusable function и передача ввода-вывода на корневом уровне как > Individual arguments. |
Упакуйте входные аргументы корневого уровня и выходные аргументы корневого уровня в отдельные структуры, которые затем передаются в функция | Упаковка интерфейса кода > Reusable function и передача ввода-вывода на корневом уровне как > Structure reference. |
Упакуйте входные аргументы корневого уровня и выходные аргументы корневого уровня в структуру данных модели для поддержки повторного ввода многоэкземплярного кода из модели для целевого файла системы ERT | Упаковка интерфейса кода > Reusable function и передача ввода-вывода на корневом уровне как > Part of model data structure. |
При использовании упаковки интерфейса Code > Reusable function рассмотрите возможность использования опции Использовать динамическое выделение памяти для инициализации модели (Use dynamic memory allocation for model initialization) для управления тем, была ли создана функция распределения. Эта опция применяется для целевых файлов системы ERT.
Иногда выбор упаковки интерфейса Code в качестве Reusable function может создавать код, который компилируется, но не вводится повторно. Например, если сигнал, DWork структура или данные параметров имеют класс хранения, отличный от Autoсоздаются глобальные структуры данных. Для обработки таких случаев используйте параметр диагностики ошибок кода нескольких экземпляров для выбора уровней серьезности диагностики.
Иногда генератор кода не может генерировать действительный и компилируемый код. Например, если модель содержит один из следующих кодов, созданный код недействителен.
S-функция, не совместимая с многократным использованием кода
Подсистема, запускаемая широким триггером вызова функции
В этих случаях построение завершается после сообщения о проблеме.
Дополнительные сведения см. в разделах Создание кода повторного ввода из основных моделей и Параметры конфигурации модели: интерфейс генерации кода.