Много образцовых параметров конфигурации для генерации кода характерны для GRT, ERT или основанных на ERT системных конечных файлов.
Используйте интерфейсные образцовые параметры конфигурации, чтобы управлять, какими библиотеками пользоваться при генерации кода, включать ли поддержку API в сгенерированном коде и другие интерфейсные опции.
К... | Выберите или войдите... |
---|---|
Задайте стандартную математическую библиотеку, которой генератор кода пользуется при генерации кода. | Выберите Выбор Для получения дополнительной информации смотрите Стандартную математическую библиотеку. Опции для этого параметра имеют зависимости. Смотрите Интерфейсные Зависимости. |
Задайте специализированную библиотеку, которой генератор кода пользуется при генерации кода. | Если вы генерируете специализированный 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
или Configuration Parameters> Code Generation> Generate code only, очищен.
Образцовый параметр конфигурации ProdEqTarget
установлен в off
.
Чтобы избежать такого несоответствия, установите ProdEqTarget
на on
или выберите Configuration Parameters> Code Generation> Generate code only (или установите 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. Для получения дополнительной информации см. описание |
Сгенерируйте допускающий повторное использование, повторно используемый код из модели или подсистемы. | Выберите Generate reusable code. Смотрите Конфигурируют Поддержку Повторного использования кода деталей. |
Статически выделите структуры данных модели и получите доступ к ним непосредственно в типовом кодексе. | Очистите Generate reusable code. Сгенерированный код не является допускающим повторное использование или повторно используемым. Смотрите Конфигурируют Генерацию кода для Образцовых Функций Точки входа для получения информации об интерфейсе вызова, сгенерированном для образцовых функций в этом случае. |
Подавите генерацию ошибочного поля состояния в структуре данных модели реального времени, rtModel , например, если вы не требуете, чтобы регистрировать или сообщения ошибки монитора. | Выберите ошибочное поле состояния Remove в режиме реального времени структура данных модели. Выбор этого параметра может также заставить генератор кода не использовать структуру При генерации кода для нескольких интегрированных моделей, установленных этот параметр то же самое для всех моделей. В противном случае интегрированное приложение могло показать неожиданное поведение. Например, если вы выбираете опцию в одной модели, но не в другом, возможно, что интегрированное приложение не могло указать ошибочное состояние. Не выбирайте этот параметр, если вы выбираете опцию журналирования MAT-файла. Эти две опции несовместимы. |
Откройте диалоговое окно Configure C Step Function Interface и измените | В Коде, Сопоставляющем Редактор, на вкладке Entry-Point Functions, нажатии кнопки в столбце Имени функции для ступенчатой функции тарифной ставки. Кликните по трем вертикальным точкам, которые появляются. Затем нажмите Configure Prototype. Если прототип функции не был ранее сконфигурирован, диалоговое окно открывает показ предварительного просмотра интерфейса ступенчатой функции без аргументов ( |
Для получения дополнительной информации смотрите Образцовые Параметры конфигурации: Интерфейс Генерации кода.
Для GRT, ERT, основанных на GRT, и основанных на ERT системных конечных файлов, можно сконфигурировать как код повторных использований модели путем установки Configuration Parameters> Code Generation> значение параметров Code interface packaging к Reusable function
.
Configuration Parameters> Code Generation> параметр 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-функция, которая не является совместимым повторным использованием кода
Подсистема инициирована широким триггером вызова функции
В этих случаях сборка останавливается после сообщения о проблеме.
Для получения дополнительной информации смотрите, Генерируют Повторно используемый Код от Топ-моделей (Embedded Coder) и Образцовые Параметры конфигурации: Интерфейс Генерации кода.