Сгенерируйте код C or C++ из блоков Stateflow

Чтобы сгенерировать код C or C++ из Simulink® модели, которые включают Stateflow® график, вы должны использовать Simulink Coder™. В дополнение к Simulink Coder можно использовать Embedded Coder® для дальнейшего улучшения сгенерированного кода. Усовершенствования Embedded Coder делают ваш код более читаемым, компактным и более быстрым для выполнения.

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

Сгенерируйте код при помощи Simulink Coder

Simulink Coder позволяет вам генерировать C и Код С++ из моделей, которые содержат диаграммы Stateflow. Затем можно использовать сгенерированный код для приложений в реальном времени и не в реальном времени, включая:

  • Ускорение симуляции

  • Быстрое прототипирование

  • Оборудование в цикле (HIL) проверки

Использование Simulink Coder также позволяет вам получить доступ к режимам Classic Accelerator и Rapid Accelerator. Режимы Accelerator работают, генерируя целевой код, который затем используется для выполнения. Для получения дополнительной информации об этих режимах см. «Как работают режимы ускорения» (Simulink).

Программное-аппаратное тестирование позволяет вам протестировать своё проектирование контроллера и определить, действительна ли ваша модель физической системы (объекта). Для получения дополнительной информации о программное-аппаратном тестировании, смотрите Основы симуляции оборудования в цикле (Simscape).

Чтобы начать настройку модели для генерации кода с Simulink Coder, смотрите Configure Model и Generate Code (Simulink Coder).

Сгенерируйте код при помощи Embedded Coder

С сложением Embedded Coder вы можете сгенерировать код C or C++, который более компактен, легче читается и быстрее запускается. Embedded Coder дополнительно расширяет возможности Simulink Coder, позволяя управлять сгенерированными функциями, файлами и данными. Кроме того, Embedded Coder позволяет легко интегрировать унаследованный код, типы данных и параметры калибровки. Embedded Coder поддерживает стандарты программного обеспечения для:

  • АВТО-РСА

  • MISRA C

  • ASAP2

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

Чтобы начать настройку модели для генерации кода с помощью Embedded Coder, смотрите Сгенерируйте код с помощью инструмента Quick Start Tool (Embedded Coder).

Советы по проектированию для оптимизации сгенерированного кода для объектов Stateflow

Не получайте доступ к данным, помеченным машиной

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

Кроме того, Embedded Coder не поддерживает использование библиотек замещения кода для машинно-родительских данных. Для получения дополнительной информации смотрите Код, который вы можете заменить из моделей Simulink (Embedded Coder).

Явное описание встроенной опции графической функции

Когда вы используете графическую функцию в диаграмме Stateflow, выберите Inline или Function для Function Inline Option свойств. В противном случае код, сгенерированный для графической функции, может появиться не так, как вы хотите. Для получения дополнительной информации см. «Задание свойств графических функций».

Избегайте использования нескольких событий, вызванных кромками, в диаграммах Stateflow

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

Объедините входные сигналы графика в один объект шины

Когда вы используете объект шины, вы уменьшаете количество параметров в списке параметров сгенерированной функции. Это руководство также применяется к выходным сигналам графика. Для получения дополнительной информации смотрите Задать структуры Stateflow.

Использование дискретных шагов расчета

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

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

Эта таблица направляет вас к информации о генерации кода на основе ваших целей.

Цель

Документация Simulink Coder

Embedded Coder

Сгенерируйте исходный код C/C + +

Основы генерации кода (Simulink Coder)

Основы генерации кода (Embedded Coder)

Сгенерируйте исходный код C/C + + и создайте исполняемый файл

Процесс сборки (Simulink Coder)

Процесс сборки (Embedded Coder)

Интеграция внешнего кода

Интегрирование с внешним кодом (Simulink Coder)

Интегрирование с кодом (Embedded Coder)

Включите внешний код только для библиотечных графиков в портативную автономную библиотеку для использования в нескольких моделях

Интеграция внешнего кода для диаграмм библиотеки (Simulink Coder)

Интеграция внешнего кода для диаграмм библиотеки (Embedded Coder)

Оптимизируйте сгенерированный код

Уменьшите использование памяти для логических переменных и переменных строения состояния (Simulink Coder)

Уменьшите использование памяти для логических переменных и переменных строения состояния (Embedded Coder)

Трассируемость объектов Stateflow в сгенерированном коде

Комментарии к трассируемости обеспечивают способ:

  • Проверьте сгенерированный код. Можно определить, какой объект Stateflow соответствует строке кода и отследить код от различных объектов, которые у вас есть или не просматривались.

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

Чтобы включить комментарии трассируемости, вы должны иметь программное обеспечение Embedded Coder или HDL Coder™. Для генерации кода C/C + + в сгенерированном коде для встраиваемого реального времени появляются комментарии (ert) базируются только на целях. Для получения дополнительной информации смотрите Trace Stateflow Elements in Сгенерированный Код (Embedded Coder) и Навигация между моделью Simulink и HDL-код при помощи Traceability (HDL Coder).

Похожие темы