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

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

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

Чтобы сконфигурировать вашу модель библиотеки, чтобы получить доступ к пользовательскому коду в процессе моделирования, используйте панель Simulation Custom Code диалогового окна Model Configuration Parameters.

  1. Во вкладке Modeling, под Design, выбирают Simulation Custom Code.

    The Simulation Custom Code pane of the Model Configuration Parameters dialog box, showing the default settings for a library model.

  2. Модель библиотеки может наследовать настройки пользовательского кода от основной модели или использовать локальные настройки пользовательского кода для симуляции.

    • Чтобы наследовать настройки пользовательского кода от основной модели, очистите Use local custom code settings (do not inherit from main model).

    • Чтобы использовать локальные настройки пользовательского кода для симуляции, выберите Use local custom code settings (do not inherit from main model).

    Для получения дополнительной информации смотрите, Использование локальные настройки пользовательского кода (не наследуйтесь основной модели) (Simulink).

  3. Чтобы задать локальные настройки пользовательского кода для симуляции, которые уникальны для вашей модели библиотеки, используйте подпанели Additional build information и Insert custom C code in generated.

    • Source file — Введите код, чтобы включать наверху сгенерированного файла исходного кода. Этот код появляется наверху сгенерированного modelC исходный файл, за пределами любой функции. Например, используйте этот параметр, чтобы включать extern int объявления для глобальных переменных. Для получения дополнительной информации смотрите Исходный файл (Simulink).

    • Заголовочный файл Введите код, чтобы включать наверху сгенерированного modelH заголовочный файл, который объявляет пользовательские функции и данные в сгенерированном коде. Код появляется наверху всех сгенерированных файлов исходного кода и отображается ко всему сгенерированному коду. Например, используйте этот параметр, чтобы ввести #define и #include операторы. Когда вы включаете пользовательский заголовочный файл, необходимо заключить имя файла в двойные кавычки. Для получения дополнительной информации смотрите Заголовочный файл (Simulink).

      Примечание

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

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

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

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

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

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

    • Defines — Введите разделенный пробелом список макроопределений препроцессора, чтобы добавить к сгенерированному коду. Для получения дополнительной информации смотрите, Задает (Simulink).

    Эти настройки применяются только, когда вы выбираете Use local custom code settings (do not inherit from main model).

Примечание

Вы не можете симулировать только блоки Stateflow в модели библиотеки. Необходимо сначала создать ссылку на библиотечный блок в основной модели и затем симулировать основную модель.

Сконфигурируйте настройки пользовательского кода для генерации кода

Чтобы сконфигурировать вашу модель библиотеки, чтобы получить доступ к пользовательскому коду во время генерации кода, используйте панель Code Generation Custom Code диалогового окна Model Configuration Parameters.

  1. Во вкладке Modeling, под Design, выбирают Simulation Custom Code.

  2. Выберите панель Code Generation Custom Code.

    The Code Generation Custom Code pane of the Model Configuration Parameters dialog box, showing the default settings for a library model.

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

    Для получения дополнительной информации смотрите Использование те же настройки пользовательского кода как Цель Симуляции (Simulink Coder) и Интегрируйте Внешний Код при помощи Параметров конфигурации Модели (Simulink Coder).

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте