exponenta event banner

Конфигурирование генерации кода C для функций точек входа модели

Что такое функция точки входа?

Точка входа - это местоположение в коде, где происходит передача программного управления (выполнения). Основная функция (main()) является точкой входа в программу C/C + + и вызывается при запуске приложения. Вызовы других функций, например, из main , укажите точки входа в код функции. Управление программой передается вызываемой функции. Код функции выполняется, и по завершении возвращается управление к main или другая вызывающая функция.

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

В разделе «Отчет по кодовому интерфейсу» отчета о создании кода перечислены функции точки входа, создаваемые генератором кода для модели. Дополнительные сведения см. в разделе Анализ сгенерированного интерфейса кода.

Типы сгенерированных функций точек входа

Генератор кода создает функции точки входа для этих типов функций модели.

Тип функции моделиИмя источника моделиИмя созданной по умолчанию функцииОписание
Экспортированная функция (требуется Embedded Coder ®)ExportedFunction:slIdentifier, где slIdentifier - имя блока Inport вызова функции в модели.function-call-inport-block-name или signal-label (если указано)Для модели экспортируемой функции экспортируемая функция для подсистемы.
Инициализация функцииInitializemodel_initialize

Код инициализации модели. В начале кода приложения вызовите функцию один раз. Не используйте эту функцию для сброса структуры данных модели в реальном времени (rtM).

Функция секционированияPartition:slIdentifier, где slIdentifier - раздел, созданный явно из блока в модели и показанный в редакторе расписания Simulink ® (например, P1);model_stepn, где n уникально идентифицирует функцию, созданную для одного из периодов образца моделиДля раздела модели выведите и обновите код. Выбран параметр конфигурации модели Single output/update function (по умолчанию).
Функция обновления разделовPartitionUpdate:slIdentifier, где slIdentifier - раздел, созданный явно из блока в модели и показанный в редакторе расписания Simulink ® (например, P1);model_outputn и model_updaten, где n уникально идентифицирует функцию, созданную для одного из периодов образца моделиДля раздела модели выведите и обновите код в отдельных функциях. Параметр конфигурации модели Single output/update function сброшен.
Функция периодической многозадачностиPeriodic:slIdentifier, где slIdentifier - аннотация, соответствующая периоду времени выборки для периодической или непрерывной скорости многозадачной модели (например, D1);model_stepn, где n уникально идентифицирует функцию, созданную для одного из периодов образца моделиДля блоков в модели на основе скорости, настроенной для многозадачности, вывода и обновления кода. Генератор кода создает функцию для каждого периода выборки. Выбран параметр конфигурации модели Single output/update function (по умолчанию).
Функция периодического многозадачного обновленияPeriodicUpdate:slIdentifier, где slIdentifier - аннотация, соответствующая периоду времени выборки для периодической или непрерывной скорости многозадачной модели (например, D1);model_outputn и model_updaten, где n уникально идентифицирует функцию, созданную для одного из периодов образца моделиДля блоков в модели на основе скорости, настроенной для многозадачности, выводите и обновляйте код в отдельных функциях. Генератор кода создает функции вывода и обновления для каждого периода выборки. Параметр конфигурации модели Single output/update function сброшен.
Периодическая однозадачная функцияPeriodicmodel_stepДля блоков в модели на основе скорости, сконфигурированной для однозадачности, вывода и обновления кода. Выбран параметр конфигурации модели Single output/update function (по умолчанию).
Функция периодического однозадачного обновленияPeriodicUpdatemodel_output и model_updateДля блоков в модели на основе скорости, сконфигурированной для однозадачного, вывода и обновления кода в отдельных функциях. Параметр конфигурации модели Single output/update function сброшен.
Функция сбросаReset:slIdentifier, где slIdentifier - имя функции сброса в модели;model_reset-function-name

Если модель включает блок Reset Function, генерируется код сброса. Для сброса условий или состояния вызовите функцию из кода приложения.

Функция симулятораSimulink Function:slIdentifier, где slIdentifier - имя блока Simulink Function в моделиfunction-name для глобального функционального блока Simulink или model_function-name для функционального блока Simulink в областиДля модели экспортируемой функции экспортируемая функция для блока Simulink Function.
Завершить функциюTerminatemodel_terminate

Код отключения системы. Для моделей на основе ERT можно подавить генерацию этой функции, очистив параметр конфигурации модели Обязательная функция завершения (установлено по умолчанию).

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

Настройка возможности повторного использования функций точек входа

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

Если приложению требуется многократно используемый многоэкземплярный код функции начального уровня, можно настроить генератор кода для вызова каждой функции (экземпляра) с уникальными данными. В этом случае код повторно вводится.

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

Конфигурации по умолчанию для одиночных функций точки входа C

По умолчанию для целевых системных файлов на основе GRT и ERT генератор кода создает одинарные функции точки входа C. Созданный код:

  • Создает функцию выполнения без аргументов (void-void).

  • Распределяет память статически (во время компиляции) для структур данных модели.

Настройки параметров конфигурации модели по умолчанию для настройки кода функции начальной точки в одном экземпляре:

Создание многократно используемых многоэкземплярных функций точки входа C

Можно настроить генератор кода для создания повторно используемых функций точки входа в C для целевого файла системы на основе GRT или ERT. Однако интерфейсы функций, создаваемые генератором кода по умолчанию, различаются. Предполагается, что параметру конфигурации модели Language присвоено значение C и для упаковки интерфейса кода установлено значение Reusable functionгенератор кода создает этот функциональный код точки входа для каждого сценария целевого файла системы.

Системный целевой файлИнтерфейс
На основе GRT
  • Многократно используемые многоэкземплярные функции точки входа C.

  • Пакует значения блоков Inport и Outport уровня root модели в структуру данных модели в реальном времени. Передает эту структуру функции выполнения в качестве аргумента по ссылке.

  • Динамическое выделение памяти во время выполнения для данных экземпляра модели. Распределяет память путем вызова функции, например, malloc.

На основе ERT
  • Многократно используемые многоэкземплярные функции точки входа C.

  • Передает значение каждого блока Inport на уровне корня модели и блока Outport функции выполнения в качестве отдельного аргумента.

  • Статическое распределение памяти для структур данных модели.

Если вы используете целевой системный файл на основе ERT и хотите создать многократно используемые многоэкземплярные функции точки входа C, которые могут быть введены повторно, рассмотрите:

Выбор подхода для конфигурирования сгенерированных функциональных интерфейсов C

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

КонфигурацияДополнительные сведения
Правила именования по умолчанию для категорий функций (инициализация/завершение, выполнение и общая утилита) в моделиНастройка генерации кода по умолчанию для функций
Имя отдельных функций точки входа (переопределение правила именования по умолчанию)Конфигурирование имен для отдельных функций точек входа C
Интерфейс ступенчатой функции (имя функции, возвращаемое значение и квалификаторы типа аргумента C, имена и порядок) для функции начальной точки шага базовой скорости в интерактивном режимеНастройка имени и аргументов для отдельных функций шага
Интерфейсы функций (имя функции, возвращаемое значение и квалификаторы типа аргумента C, имена и порядок) для блоков Simulink Function и Function Caller в интерактивном режимеКонфигурирование функциональных интерфейсов точки входа для блоков функции Simulink и вызывающей функции

Тестирование ПО в цикле (SIL) можно использовать для проверки кода, созданного для пользовательских функций точки входа. Создайте блок SIL с помощью созданного кода. Затем интегрируйте блок SIL в модель, чтобы убедиться, что созданный код дает тот же результат, что и исходная модель или невиртуальная подсистема. Дополнительные сведения см. в разделе Выбор подхода SIL или PIL.

Настройка параметров генерации кода по умолчанию для категории функций

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

Генератор кода создает функции точки входа для следующих категорий функций модели:

Категория функцииОписание
Инициализация/завершениеФункции, инициализирующие и отключающие систему
ВыполнениеФункции, инициирующие выполнение и сброс
Общая утилитаКод общей функции утилиты

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

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

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

Пример настройки конфигураций по умолчанию для категорий функций см. в разделе Настройка генерации кода C по умолчанию для категорий элементов и функций данных.

Конфигурирование имен для отдельных функций точек входа C

Чтобы сгенерированный код C соответствовал стандартам и рекомендациям по коду или легче интегрировался с внешним кодом, можно настроить имя отдельной функции точки входа. Например, можно присвоить имя функции инициализации, созданной для модели. myInitFunc.

Если модель удовлетворяет хотя бы одному из этих критериев, попробуйте настроить имена функций по отдельности:

  • Использует несколько функций, имеющих уникальные требования к именованию.

  • Использует несколько функций.

  • Имеет конфигурацию по умолчанию для категории функций, и необходимо переопределить конфигурацию для определенной функции.

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

В этом примере показано, как изменить имя initialize функция для модели rtwdemo_fcnprotoctrl.

  1. Открытие и сохранение копии модели rtwdemo_fcnprotoctrl в доступном для записи расположении.

  2. Откройте приложение Embedded Coder.

  3. На вкладке Код C выберите Интерфейс кода > Сопоставления кодов отдельных элементов.

  4. В редакторе сопоставлений кодов на вкладке «Функции» измените имя функции одним из следующих способов:

    • В столбце Имя функции (Function Name) введите имя функции.

    • В столбце Предварительный просмотр функции щелкните гиперссылку прототипа функции, чтобы открыть диалоговое окно конфигурации. В поле C Initialize Function Name введите имя функции. Нажмите кнопку Применить (Apply), чтобы проверить изменение в поле прототипа функции C, или кнопку ОК, чтобы выйти из диалогового окна и просмотреть имя функции в столбце Предварительный просмотр функции (Function Preview) редактора Сопоставления кода (Code Mappings).

    В этом примере измените имя initialize функция для fcnprotoctrl_init.

  5. Сохраните модель.

  6. Создать код.

  7. Проверьте изменения в созданном коде. В представлении «Код» найдите экземпляры имени функции fcnprotoctrl_init. Имя функции отображается в созданных файлах rtwdemo_fcnprotoctrl.h и rtwdemo_fcnprotoctrl.c.

    • В rtwdemo_fcnprotoctrl.h:

      extern void fcnprotoctrl_init(void);
      
    • В rtwdemo_fcnprotoctrl.c:

      void fcnprotoctrl_init(void)
      {
        ...
      }

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

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

  • Имя функции

  • Имена аргументов

  • Порядок аргументов

  • Возвращаемые квалификаторы данных значений и аргументов

  • Буферизация оптимизации аргументов

Если модель удовлетворяет хотя бы одному из этих критериев, рассмотрите возможность индивидуальной настройки имени и аргументов функции шага:

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

  • Имеет конфигурацию по умолчанию для типа функции «Выполнение», и необходимо переопределить конфигурацию для определенной функции шага.

Настройка сопоставлений кода для отдельных функций шага с помощью редактора сопоставлений кода или функции API сопоставлений кода setFunction. С помощью этих интерфейсов можно связать функцию с шаблоном настройки функции, определенным в словаре Embedded Coder Dictionary модели, и полностью настроить прототип пошаговой функции.

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

Открытие диалогового окна «Конфигурация»

1. Откройте и сохраните копию rtwdemo_fcnprotoctrl модели в доступном для записи расположении.

2. Откройте приложение Embedded Coder.

3. На вкладке Код C выберите Интерфейс кода > Сопоставления кодов отдельных элементов.

4. В редакторе сопоставлений кодов перейдите на вкладку Функции.

5. Для строки функции шага в столбце Предварительный просмотр функции щелкните гиперссылку прототипа, чтобы открыть диалоговое окно Настройка интерфейса функции шага C.

В диалоговом окне Configure C Step Function Interface в поле C function prototype отображается предварительный просмотр изменений, внесенных в прототип функции.

Для моделей, настроенных для создания кода нескольких экземпляров, см. раздел Создание кода повторного ввода из лучших моделей.

Настройка имени функции

1. В диалоговом окне Configure C Step Function Interface установите для параметра C Step Function Name значение fcnprotoctrl_run. Предварительный просмотр функции обновляется в соответствии с новым именем функции.

2. Нажмите кнопку Применить (Apply), закройте диалоговое окно и сохраните модель.

3. Создайте код и проверьте изменение имени.

  • Перейдите на вкладку Код. В списке Файл просмотра кода выберите файл rtwdemo_fcnprotoctrl.h. В поле Поиск убедитесь, что список элементов кода содержит имя функции. fcnprotoctrl_run. Чтобы просмотреть объявление, выберите имя функции.

Декларация выделена в коде:

  • Проверьте изменение имени в файле rtwdemo_fcnprotoctrl.c. Для просмотра исходного кода (определения) в поле Поиск выберите fcnprotoctrl_run.

Дополнительные примеры см. в разделе Настройка имен для отдельных функций точек входа C.

Настройка аргументов функции

Настройка глобальных структур данных

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

Настройка модели для void-void step function, откройте диалоговое окно Configure C Step Function Interface и снимите флажок Configure arguments for Step function prototype. Проверьте изменения в предварительном просмотре прототипа функции C.

Настроить аргументы

Функции шага модели на основе скорости могут использовать аргументы для передачи данных. Можно настроить следующие параметры аргументов:

  • Возвращаемое значение

  • Квалификаторы типа

  • Имена

  • Заказ

Пример

1. Откройте диалоговое окно Configure C Step Function Interface. В редакторе сопоставлений кодов перейдите на вкладку Функции. Затем щелкните предварительный просмотр функции шага.

2. В диалоговом окне Configure C Step Function Interface выберите Configure arguments for Step function prototype.

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

4. Настройте возвращаемое значение функции шага. Задайте для возвращаемого аргумента C значение void или один из выходных аргументов. В этом примере выберите void.

5. Для каждого аргумента укажите квалификатор типа C.

Квалификаторы типа:

  • Value: Значение, например, arg

  • Const: Значение с помощью const квалификатор, например, const arg

  • Pointer to const: Значение с const квалификатор и ссылка указателем, например, const *arg

  • Pointer: Ссылка по указателю, например, *arg

  • Const pointer to const: Значение с const квалификатор, ссылка по указателю и сам указатель, например, const *const arg

Модели, содержащие ссылочную модель

  • Для ссылочной модели квалификатор типа для корневого входного аргумента в интерфейсе функции шага имеет значение Auto. Генератор кода использует спецификацию интерфейса, генерируя приведение типа, которое отбрасывает const классификатор из сигнала источника.

  • Для родительского элемента ссылочной модели квалификатор типа для исходного сигнала устанавливается в значение, отличное от Auto. Чтобы переопределить это поведение, добавьте const квалификатор типа для ссылочной модели.

В этом примере не вносите изменений в квалификатор типа C.

6. Настройте имена аргументов, изменив значения в столбце «Имя идентификатора C».

В этом примере измените имена аргументов, удалив подчеркивания, например, измените arg_In1 на argIn1.

7. Настройте порядок аргументов, перетащив строки таблицы на новые позиции.

Для этого примера переместите Out1 в первую позицию. Выдвиньте 2 на третью позицию.

8. Проверьте, примените изменения, закройте диалоговое окно и сохраните модель.

9. Создайте код и проверьте изменения в представлении «Код».

  • Проверьте изменения в файле rtwdemo_fcnprotoctrl.h проверкой того, что поле Search включает функцию fcnprotoctrl_run.Для просмотра объявления функции выберите имя функции.

  • Проверьте изменения в файле rtwdemo_fcnprotoctrl.c.Для просмотра определения функции выберите имя функции fcnprotoctrl_run.

Прототип отличается от предварительного просмотра

В диалоговом окне Configure C Step Function Interface предварительный просмотр прототипа функции для ссылочной модели может показывать меньше аргументов, чем прототип функции в сгенерированном коде.

Например, рассмотрим модель с именем mdlref_counter с вводом (arg_input), аутпорт (arg_output) и блок насыщения с ограничениями, имеющими имена аргументов параметров рабочей области lower_saturation_limit и upper_saturation_limit. В диалоговом окне Configure C Step Function Interface отображается предварительный просмотр прототипа функции:

mdlref_counter_custom(arg_input, arg_output)

В созданном коде прототип включает аргументы параметра:

mdlref_counter_custom(real_T arg_input, real_T arg_output, real_T 
  rtp_lower_saturation_limit, real_T rtp_upper_saturation_limit)

Оптимизация буферизации для аргументов

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

  • Блоки Inport и Outport должны иметь одинаковые свойства, включая тип данных, измерение и частоту дискретизации.

  • Частота дискретизации блоков Inport и Outport должна совпадать с базовой частотой модели.

  • Условно выполненная подсистема не может управлять блоком Outport.

  • Один выход неинвиртуального блока должен управлять блоком Outport. Например, блок Mux, объединяющий несколько буферов, не может управлять блоком Outport.

  • В диалоговом окне Configure C Step Function Interface необходимо настроить параметры Inport и Outport с одинаковым квалификатором и именем идентификатора типа C.

В этом примере показано, как объединить аргументы для портов In3 и Out2 например, rtwdemo_fcnprotoctrl модели.

1. Открытие диалогового окна «Настройка интерфейса C Step Function» для модели rtwdemo_fcnprotoctrl.

2. Откройте экран для аргументов, выбрав Configure arguments for Step function prototype.

3. Для портов In3 и Out2, установите квалификатор типа C в Pointer и имя идентификатора C для sharedArg.

4. Убедитесь, что в предварительном просмотре показан объединенный аргумент для argIn3 и argOut2.

5. Проверьте, примените изменения, закройте диалоговое окно и сохраните модель.

6. Создайте и просмотрите код. В представлении «Код» выполните поиск fcnprotoctrl_run и проверьте интерфейс функции. В этом примере общий аргумент появляется в коде чтения для блока Inport и в коде записи для блока Outport.

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

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

Типичное использование этих функций включает в себя:

  • Создайте интерфейс функции.

  • Измените существующий интерфейс функции.

  • Создайте интерфейс функции, начиная с информации о конфигурации по умолчанию из модели.

  • Сбросьте интерфейс функции модели в конфигурацию функции ERT по умолчанию.

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

Взаимодействие с сгенерированными функциями точек входа

  1. После создания кода для модели используйте представление «Код» для просмотра сгенерированных функций точки входа и, если применимо, переменных, представляющих внешние порты ввода и вывода.

  2. Добавить #include к внешнему коду, включающему созданные файлы заголовков, объявляющие функции точки входа модели.

  3. Добавить #include оператор, включающий сгенерированный файл rtwtypes.h. Этот файл содержит определения типов, #define операторы и перечисления.

  4. Инициализация целевых структур данных и аппаратных средств, таких как ADC или DAC.

  5. Если применимо, инициализируйте данные для каждого экземпляра повторно используемой модели.

  6. При необходимости запишите входные данные в сгенерированные переменные, представляющие блоки ввода модели.

  7. Вызовите сгенерированные функции точки входа или настройте использование rt_OneStep функция.

  8. Если применимо, считывайте данные из сгенерированных переменных, которые представляют блоки Outport модели.

Дополнительные сведения см. в разделе Развертывание созданных автономных исполняемых программ на целевом оборудовании.

Ограничения по настройке интерфейса функции C

Эти ограничения применяются к настройкам для сгенерированных интерфейсов функций C:

  • Необходимо выбрать параметр конфигурации модели Single output/update function.

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

  • Необходимо настроить порты ввода и экспорта на корневом уровне для использования Default класс хранения.

  • Если вы решили настроить интерфейс функции, вы должны предоставить свой собственный пользовательский main программа. Невозможно настроить интерфейс функции со статическим rt_main.c которые предоставляет MathWorks ®. Указание конфигурации интерфейса функции, отличной от конфигурации по умолчанию, создает несоответствие между сгенерированным кодом и статическим кодом по умолчаниюrt_main.c.

  • Генератор кода удаляет структуру данных для корневых входов модели, если подсистема, реализованная неиспользуемой функцией, не использует значение одного или нескольких входов.

  • Генератор кода удаляет структуру данных для корневых выходов модели, за исключением тех случаев, когда включено ведение журнала MAT-файла или если время выборки одного или нескольких выходов не является основной базовой скоростью (включая постоянную скорость).

  • При копировании блока подсистемы для создания блока в новой модели или той же модели информация интерфейса функции из исходного блока подсистемы не копируется в новый блок подсистемы.

  • Если у вас есть Stateflow ®, для диаграммы Stateflow, которая использует значение корневого ввода модели или вызывает подсистему, использующую значение корневого ввода модели, выполните одно из следующих действий для создания кода:

    • Снимите флажок Выполнить (ввод) диаграмму при инициализации в диаграмме потока состояний.

    • Сделать функцию Stateflow неиспользуемой функцией.

    • Вставьте блок преобразования сигналов Simulink ® сразу после корневого входа. В диалоговом окне Параметры блока преобразования сигналов выберите Исключить этот блок из оптимизации «Уменьшение блока».

  • Если значение корневого входа модели соединяется с блоком преобразования Simscape™, вставьте блок преобразования сигнала Simulink между корневым входом и блоком преобразования Simscape. В диалоговом окне Параметры блока преобразования сигналов выберите Исключить этот блок из оптимизации «Уменьшение блока».

  • При построении ссылочной модели, сконфигурированной с функциональным интерфейсом, не используйте виртуальные шины в качестве входных или выходных данных ссылочной модели. Вместо этого используйте невиртуальные шины.

  • Если интерфейс функции C не является интерфейсом по умолчанию, значение игнорируется для параметра конфигурации модели Pass fixed-size scalar root input by value for code generation. Дополнительные сведения см. в разделе Передача скалярных входных значений корня фиксированного размера по значению для создания кода.

См. также

|

Связанные темы