exponenta event banner

Доступ к пользовательскому коду C в небиблиотечных диаграммах

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

Задача 1: Включить пользовательский код C в цель моделирования

Укажите параметры пользовательского кода в цели моделирования для модели:

  1. Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters).

  2. В диалоговом окне Параметры конфигурации модели (Model Configuration Parameters) выберите панель Цель моделирования (Simulation Target).

    Появятся параметры пользовательского кода.

  3. Укажите пользовательский код в подпанелях.

    Следуйте инструкциям в разделе «Указание относительных путей к пользовательскому коду».

    • Исходный файл (Source file) - введите строки кода для включения в верхнюю часть созданного файла исходного кода. Эти строки кода отображаются в верхней части сгенерированного model.c исходный файл, за пределами любой функции.

      Например, можно включить extern int объявления для глобальных переменных.

    • Файл заголовка - введите строки кода для включения в верхнюю часть сгенерированного model.h файл заголовка, который объявляет пользовательские функции и данные в созданном коде. Эти строки кода отображаются в верхней части всех созданных файлов исходного кода и видны для всего созданного кода.

      Примечание

      При включении пользовательского файла заголовка необходимо заключить имя файла в двойные кавычки. Например, #include ''sample_header.h'' является допустимым объявлением для пользовательского файла заголовка.

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

      void myfun(void)
      {
      ...
      }
      

      Эти строки кода вызывают ошибки связывания, поскольку их определения символов появляются несколько раз в исходных файлах созданного кода. Однако можно включить extern объявления переменных или функций, таких как extern int x; или extern void myfun(void);.

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

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

    • Включить каталоги - введите разделенный пробелом список путей к папкам, содержащих пользовательские файлы заголовков, которые вы включаете непосредственно (см. параметр «Файл заголовков») или косвенно в скомпилированный целевой объект.

    • Исходные файлы - введите список исходных файлов для компиляции и связывания с целевым объектом. Исходные файлы можно разделить запятой, пробелом или новой строкой.

    • Библиотеки (Libraries) - введите разделенный пробелами список статических библиотек, содержащих пользовательский объектный код для связи с целевым объектом.

  4. Нажмите кнопку ОК.

Задача 2: Моделирование модели

Смоделировать модель, нажав кнопку воспроизведения на панели инструментов редактора.

Сведения о настройке параметров моделирования с помощью API командной строки см. в разделе API командной строки для задания параметров моделирования и создания кода.

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