Embedded Coder генерирует читаемый, компактный и быстрый C/C++ код для встраиваемых процессоров, используемых в массовом производстве. Он расширяет возможности MATLAB Coder и Simulink Coder специфическими оптимизациями для точного управления сгенерированными функциями, файлами и данными. Эти оптимизации повышают эффективность кода и облегчают интеграцию с унаследованным кодом, типами данных и параметрами калибровки. Embedded coder позволяет использовать инструменты разработки производителя процессора для создания исполняемого файла для развертывания «под ключ» во встроенной системе или отладочном комплекте.
Embedded Coder поддерживает такие стандарты программного обеспечения и кодирования, как AUTOSAR, MISRA C и ASAP2. В процессе генерации исходного кода генерируются отчеты о трассируемости, документация по коду. Embedded Coder обеспечивает автоматическую проверку программного обеспечения для обеспечения процесса разработки программного обеспечения согласно DO-178 (КТ-178), IEC 61508 (ГОСТ Р МЭК 61508) и ISO 26262 (ГОСТ Р ИСО 26262). Код Embedded Coder является переносимым и может быть скомпилирован и выполнен на любом процессоре. Кроме того, Embedded Coder предлагает пакеты поддержки оборудования с расширенной оптимизацией сгенерированного кода для конкретной аппаратной платформы.
Чтобы настроить параметры генерации кода для Embedded Coder, используется приложение MATLAB Coder для MATLAB или Embedded Coder Quick Start для Simulink. Также можно настроить каждый параметр напрямую, используя команды и скрипты MATLAB.
Из приложения MATLAB Coder вы можете:
С помощью Embedded Coder Quick Start в Simulink вы можете:
Embedded Coder использует объекты конфигурации и целевые системные файлы для преобразования вашего кода MATLAB и моделей Simulink в исходный код и исполняемые файлы промышленного качества.
Для MATLAB указывается одна из следующих выходных конфигураций:
Для Simulink вы указываете одну из готовых конфигураций, которые включают:
Кроме того, MathWorks и третьи лица предлагают дополнения MATLAB, которые расширяют встроенный кодер для поддержки определенного оборудования, включая ARM, Intel, NXP, STMicroelectronics и Texas Instruments.
Embedded Coder позволяет определять и контролировать отображение данных модели в сгенерированном коде для облегчения интеграции программного обеспечения.
Для кода MATLAB Embedded Coder поддерживает все определения данных MATLAB Coder, включая объекты с фиксированной точкой и предопределенные классы хранения.
Для моделей Simulink Embedded Coder поддерживает следующие возможности словарей данных и спецификации:
Embedded Coder предоставляет доступ к файлам обмена данными ASAP2 в Simulink, позволяя экспортировать данные модели со сложными определениями данных с использованием стандарта ASAP2. Также есть возможность создания других механизмов обмена данными.
При использовании Embedded Coder, пользователь может контролировать границы функций, сохранять выражения и применять оптимизации для нескольких блоков, чтобы еще больше уменьшить размер кода. Обмен данными с генерируемым кодом осуществляется через глобальные переменные или аргументы функции. Сгенерированный код трассируется до блоков и сигналов в исходной модели модели.
Параметры Embedded Coder для генерации кода из кода MATLAB и моделей Simulink позволяют:
Для моделей Simulink доступны дополнительные параметры оптимизации и настройки Embedded Coder, что позволяет:
Embedded Coder предоставляет несколько возможностей для проверки сгенерированного кода из файлов и функций MATLAB или моделей и подсистем Simulink. Используя эти возможности, вы можете:
Embedded Coder также предоставляет возможность вставлять высокоуровневые требования в виде комментариев кода со ссылками на источник требований (требуется Simulink Requirements). Отчеты о сгенерированном коде из моделей Simulink также включают описание интерфейса кода, отчет об трассируемости и отображение сгенерированных исходных файлов и кода. Генерируются двунаправленные связи между моделью и сгенерированным кодом, что упрощает навигацию между каждой строкой кода и соответствующим элементом модели Simulink, включая подсистемы, блоки, функции и код MATLAB, а также диаграммы и переходы Stateflow.
Embedded Coder позволяет включать сгенерированный код в пользовательскую среду выполнения кода.
Для алгоритмов MATLAB, код, сгенерированный из Embedded Coder, выполняется с использованием той же самой среды исполнения, что и MATLAB Coder.
Для моделей Simulink Embedded Coder значительно расширяет среду исполнения в реальном времени, предоставляемую Simulink Coder. По умолчанию код может выполняться в операционной системе реального времени (ОСРВ) или без нее, а также в однозадачном, многозадачном, многоядерном или асинхронном режимах. Результаты выполнения кода верифицируются с помощью тестирования ПО-в-контуре (SIL) и процессор-в-контуре (PIL).
Embedded Coder генерирует расширяемую программу main на основе информации, которая предоставляется для развертывания кода в среде реального времени. Эта возможность позволяет создавать и собирать полностью настраиваемый исполняемый файл из вашей модели.
Embedded Coder генерирует односкоростной или многоскоростной код, используя периодические выборки, указанные в модели. Для многоцелевых многозадачных моделей используется стратегия, называемая группировкой частот, которая генерирует отдельные функции для задачи базовой частоты и для каждой частоты в модели. Также можно использовать моделирование Simulink Concurrent Execution для создания многопоточного кода.
Embedded Coder автоматизирует выполнение сгенерированного кода в Simulink для SIL-тестирования или PIL-тестирования на целевой платформе с использованием режимов моделирования Simulink или блоков S-функций. Simulink Test помогает автоматизировать выполнение тестов и демонстрацию эквивалентности работы сгенерированного кода и модели. Анализ структурного покрытия кода для измерения полноты тестов может быть выполнен с помощью Simulink Coverage или с интеграцией со сторонними инструментами. Анализ профилирования кода обеспечивает сбор время выполнения на хосте или целевых процессорах.