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

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

Задача 1: включайте пользовательский код С в цель симуляции

Задайте опции пользовательского кода в цели симуляции для вашей модели:

  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);.

    • Initialize function — Введите операторы кода, которые выполняются однажды в начале симуляции. Используйте этот код, чтобы вызвать функции, которые выделяют память или выполняют другие инициализации вашего пользовательского кода.

    • Terminate function — Введите операторы кода, которые выполняются в конце симуляции. Используйте этот код, чтобы вызвать функции, которые освобождают память выделенный пользовательским кодом или выполняют другие задачи очистки.

    • Include directories — Введите разделенный пробелом список путей к папкам, которые содержат пользовательские заголовочные файлы, что вы включаете любого непосредственно (см. опцию Header file), или косвенно в скомпилированной цели.

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

    • Libraries — Введите разделенный пробелом список статических библиотек, которые содержат код пользовательского объекта, чтобы соединиться в цель.

  4. Нажмите OK.

Совет

Если вы хотите восстановить цель, чтобы включать изменения пользовательского кода, выберите Code> C/C++ Code> Build Model в редакторе Stateflow.

Задача 2: моделируйте модель

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

Для получения информации об установке опций симуляции с помощью API командной строки смотрите API Командной строки, чтобы Установить Параметры Симуляции и Генерации кода.

Похожие темы