Чтобы создать код C или C++ из моделей Simulink ®, включающих диаграмму Stateflow ®, необходимо использовать Coder™ Simulink. В дополнение к Simulink Coder вы можете использовать Embedded Coder ® для дальнейшего расширения созданного кода. Усовершенствования встроенного кодера делают код более читаемым, компактным и более быстрым в выполнении.
При создании кода для цели синтаксический анализатор Stateflow оценивает графические и неграфические объекты и данные в каждой машине Stateflow по поддерживаемой нотации диаграммы и синтаксису языка действий. Дополнительные сведения см. в разделе Обнаружение распространенных ошибок моделирования при моделировании диаграммы.
Simulink Coder позволяет генерировать код C и C++ из моделей, содержащих диаграммы Stateflow. Затем созданный код можно использовать для приложений в реальном времени и не в реальном времени, включая:
Ускорение моделирования
Быстрое создание прототипов
Тестирование аппаратных средств в контуре (HIL)
Использование Simulink Coder также позволяет получить доступ к режимам Classic Accelerator и Rapid Accelerator. Режимы ускорителя работают путем формирования целевого кода, который затем используется для выполнения. Дополнительные сведения об этих режимах см. в разделе Работа режимов ускорения (Simulink).
Тестирование HIL позволяет проверить конструкцию контроллера и определить, действительна ли ваша физическая модель системы (установки). Дополнительные сведения о тестировании HIL см. в разделе Основы моделирования аппаратного обеспечения в цикле (Simscape).
Для начала настройки модели для создания кода с помощью Simulink Coder см. раздел Настройка модели и создание кода (Simulink Coder).
С добавлением Embedded Coder можно создать код C или C++, который будет более компактным, удобным для чтения и более быстрым в работе. Embedded Coder дополнительно расширяет возможности Simulink Coder, позволяя управлять сгенерированными функциями, файлами и данными. Кроме того, Embedded Coder позволяет легко интегрировать устаревший код, типы данных и параметры калибровки. Embedded Coder поддерживает стандарты программного обеспечения для:
AUTOSAR
MISRA C
ASAP2
Embedded Coder также предоставляет пакеты поддержки с расширенной оптимизацией и драйверами устройств для конкретного оборудования.
Чтобы начать настройку модели для создания кода с помощью встроенного кодера, см. раздел Создание кода с помощью средства быстрого запуска (Embedded Coder).
Это ограничение предотвращает появление длинных списков параметров в коде, сгенерированном для графической функции. Можно получить доступ к локальным данным, находящимся в той же диаграмме, что и графическая функция. Дополнительные сведения см. в разделе Повторное использование логических шаблонов путем определения графических функций.
Кроме того, Embedded Coder не поддерживает использование библиотек замены кода для машинных данных. Дополнительные сведения см. в разделе Код, который можно заменить из моделей Simulink (встроенный кодер).
При использовании графической функции в диаграмме Stateflow выберите Inline или Function для свойства Function Inline Option. В противном случае код, сгенерированный для графической функции, может отображаться не так, как требуется. Дополнительные сведения см. в разделе Задание свойств графических функций.
При использовании нескольких триггеров создается несколько инструкций кода для обработки обнаружений растущих или падающих краев. Если требуется несколько триггеров, используйте события function-call. Дополнительные сведения см. в разделе Активация диаграммы потока состояний путем отправки входных событий.
При использовании объекта шины уменьшается количество параметров в списке параметров созданной функции. Эта инструкция также применяется к выходным сигналам диаграммы. Дополнительные сведения см. в разделе Определение структур потока состояний.
Код, генерируемый для дискретных диаграмм, которые не находятся внутри запущенной или включенной подсистемы, использует целочисленные счетчики для отслеживания времени вместо предоставленного Simulink времени. Созданный код использует меньше памяти и позволяет использовать код в режимах моделирования Software-in-the-Loop (SIL) и Processor-in-the-Loop (PIL).
В этой таблице содержится информация о создании кода на основе поставленных целей.
| Цель | Документация по кодировщику Simulink | Документация по встроенному кодеру |
|---|---|---|
Создать исходный код C/C + + | Основы создания кода (Simulink Coder) | Основы создания кода (встроенный кодер) |
Создание исходного кода C/C + + и исполняемого файла сборки | Процесс построения (Simulink Coder) | Процесс сборки (встроенный кодер) |
Интеграция внешнего кода | Интеграция внешнего кода (кодер Simulink) | Интеграция кода (встроенный кодер) |
Включение внешнего кода только для библиотечных диаграмм в переносной автономной библиотеке для использования в нескольких моделях | Интеграция внешнего кода для библиотечных диаграмм (Simulink Coder) | Интеграция внешнего кода для библиотечных диаграмм (встроенный кодер) |
Оптимизация сгенерированного кода | Сокращение использования памяти для логических переменных и переменных конфигурации состояния (Simulink Coder) | Сокращение использования памяти для логических переменных и переменных конфигурации состояния (встроенный кодер) |
Комментарии по отслеживанию позволяют:
Проверьте созданный код. Можно определить, какой объект Stateflow соответствует строке кода и коду отслеживания из различных объектов, которые вы просмотрели или не просмотрели.
Включение комментариев в код, созданный для крупномасштабных моделей. Можно идентифицировать объекты в сгенерированном коде и избежать ввода комментариев или описаний вручную.
Чтобы включить комментарии по отслеживанию, необходимо иметь ПО Embedded Coder или HDL Coder™. При формировании кода C/C + + в создаваемом коде появляются комментарии для встроенного реального времени (ert) только основанные цели. Дополнительные сведения см. в разделах Элементы Trace Stateflow в сгенерированном коде (встроенный кодер) и Навигация между моделью Simulink и кодом HDL с помощью отслеживания (HDL Coder).