Чтобы сгенерировать код C or C++ из моделей Simulink®, которые включают график Stateflow®, необходимо использовать Simulink Coder™. В дополнение к Simulink Coder можно использовать Embedded Coder®, чтобы далее улучшить сгенерированный код. Улучшения Embedded Coder делают ваш код более читаемым, более компактным, и быстрее выполниться.
Когда вы генерируете код для цели, синтаксический анализатор Stateflow оценивает графические и неграфические объекты и данные в каждой машине Stateflow против поддерживаемого обозначения графика и синтаксиса языка действия. Для получения дополнительной информации смотрите, Обнаруживают Общие Ошибки Моделирования Во время Симуляции Графика.
Simulink Coder позволяет вам генерировать C и Код С++ из моделей, которые содержат диаграммы Stateflow. Можно затем использовать сгенерированный код для и неприложений реального времени в реальном времени, включая:
Ускорение симуляции
Быстрое прототипирование
Оборудование в цикле (HIL) тестирование
Используя Simulink Coder также предоставляет вам доступ к Классическому Акселератору и Быстрым Режимам Accelerator. Режимы Accelerator работают путем генерации целевого кода, который затем используется для выполнения. Для получения дополнительной информации об этих режимах, смотрите Как Ускоряющая работа Режимов (Simulink).
Программное-аппаратное тестирование позволяет вам тестировать свое проектирование контроллера и определять, допустима ли ваша физическая система (объект) модель. Для получения дополнительной информации о Программное-аппаратном тестировании, смотрите Основы Аппаратно-программного моделирования (Simscape).
Чтобы начать настраивать модель для генерации кода с Simulink Coder, смотрите, Конфигурируют Модель и Генерируют Код (Simulink Coder).
Со сложением Embedded Coder можно сгенерировать код C or C++, который более компактен, легче читать, и быстрее запуститься. Embedded Coder дополнительно расширяет способности Simulink Coder путем разрешения вам, управляют по сгенерированным функциям, файлам и данным. Далее, Embedded Coder включает простую интеграцию для унаследованного кода, типов данных и калибровочных параметров. Embedded Coder поддерживает стандарты программного обеспечения для:
AUTOSAR
MISRA C
ASAP2
Embedded Coder также предоставляет пакетам поддержки усовершенствованную оптимизацию и драйверы устройств для определенного оборудования.
Чтобы начать настраивать модель для генерации кода с Embedded Coder, смотрите, Генерируют Код при помощи Инструмента Быстрого запуска (Embedded Coder).
Это ограничение препятствует тому, чтобы длинные списки параметров появились в коде, сгенерированном для графической функции. Можно получить доступ к локальным данным, которые находятся в том же графике как графическая функция. Для получения дополнительной информации смотрите Шаблоны Логики Повторного использования путем Определения Графических функций.
Кроме того, Embedded Coder не поддерживает использование заменяющих библиотек кода для порожденных машиной данных. Для получения дополнительной информации см. Код, который Можно Заменить Из Моделей Simulink (Embedded Coder).
Когда вы будете использовать графическую функцию в диаграмме Stateflow, выберите Inline
или Function
для свойства Function Inline Option. В противном случае код, сгенерированный для графической функции, не может появиться, как вы хотите. Для получения дополнительной информации смотрите Specify Properties Графических функций.
Если вы используете больше чем один триггер, вы генерируете несколько операторов кода, чтобы обработать возрастающие или падающие обнаружения ребра. Если несколько триггеров требуются, используйте события вызова функции вместо этого. Для получения дополнительной информации смотрите, Активируют диаграмму 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 соответствует строке кода и коду дорожки от различных объектов, которые вы имеете или не рассмотрели.
Включайте комментарии в код, сгенерированный для крупномасштабных моделей. Можно идентифицировать объекты в сгенерированном коде и постараться не вручную вводить комментарии или описания.
Чтобы включить комментарии трассируемости, у вас должно быть программное обеспечение Embedded Coder или HDL Coder™. Для генерации кода C/C++ комментарии появляются в сгенерированном коде для встроенного, в реальном времени (ert
) основанные цели только. Для получения дополнительной информации смотрите Трассировку Элементы Stateflow в Сгенерированном коде (Embedded Coder) и Перейдите Между Моделью Simulink и HDL-кодом при помощи Трассируемости (HDL Coder).