embedded coder - matlab · сторонними средами разработки для...

8
Embedded Coder Генерация C и C++ кода, оптимизированного для встраиваемых систем Embedded Coder ® генерирует удобочитаемый, компактный и быстрый C и C++ код для использования во встраиваемых процессорах, отладочных платах и микропроцессорах, используемых для серийного производства. Embedded Coder активирует дополнительные настройки конфигурации для MATLAB Coder™ и Simulink Coder™, а также включает продвинутые оптимизации для тончайшей настройки функций, файлов и данных в сгенерированном коде. Эти оптимизации улучшают эффективность кода и облегчают интеграцию с существующим кодом, типами данных и калибровочными параметрами, используемыми в производстве. Вы можете подключить стороннюю среду разработки к процессу сборки, чтобы получить исполняемый файл "под ключ" для развертывания на вашей встраиваемой системе. Embedded Coder предлагает встроенную поддержку таких стандартов как AUTOSAR и ASAP2. Он также предлагает отчеты по отслеживаемости, связь документации с кодом и автоматизированную верификацию программного обеспечения для поддержки разработки в соответствии со стандартами DO-178, IEC 61508 и ISO 26262. Узнайте больше о поддержке MathWorks для сертификации в таких отраслях как автомобильная, авиакосмическая и промышленная автоматизация. Основные возможности Настройки по оптимизации и конфигурации кода, расширяющие MATLAB Coder и Simulink Coder Задание классов памяти, типов и синонимов с использованием возможностей словаря данных Simulink ® Оптимизация кода под конкретный процессор Выполнение многоскоростного, многозадачного и многоядерного кода с ОС реального времени или без нее Верификация кода, включая тестирование в режимах SIL и PIL, настраиваемые комментарии и отчеты по генерации кода с отслеживанием от моделей к коду и требованиям и обратно Интеграция с Texas Instruments Code Composer Studio™, Analog DevicesVisualDSP++ ® и другими сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая ASAP2, AUTOSAR, DO-178, IEC 61508, ISO 26262 и MISRA C ® в Simulink 1

Upload: others

Post on 27-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Embedded Coder - MATLAB · сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая

Embedded Coder

Генерация C и C++ кода, оптимизированного для встраиваемых систем

Embedded Coder® генерирует удобочитаемый, компактный и быстрый C и C++ код для использования во

встраиваемых процессорах, отладочных платах и микропроцессорах, используемых для серийного

производства. Embedded Coder активирует дополнительные настройки конфигурации для MATLAB

Coder™ и Simulink Coder™, а также включает продвинутые оптимизации для тончайшей настройки

функций, файлов и данных в сгенерированном коде. Эти оптимизации улучшают эффективность кода и

облегчают интеграцию с существующим кодом, типами данных и калибровочными параметрами,

используемыми в производстве. Вы можете подключить стороннюю среду разработки к процессу сборки,

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

Embedded Coder предлагает встроенную поддержку таких стандартов как AUTOSAR и ASAP2. Он также

предлагает отчеты по отслеживаемости, связь документации с кодом и автоматизированную верификацию

программного обеспечения для поддержки разработки в соответствии со стандартами DO-178, IEC 61508 и

ISO 26262.

Узнайте больше о поддержке MathWorks для сертификации в таких отраслях как автомобильная,

авиакосмическая и промышленная автоматизация.

Основные возможности

▪ Настройки по оптимизации и конфигурации кода, расширяющие MATLAB Coder и Simulink Coder

▪ Задание классов памяти, типов и синонимов с использованием возможностей словаря данных

Simulink®

▪ Оптимизация кода под конкретный процессор

▪ Выполнение многоскоростного, многозадачного и многоядерного кода с ОС реального времени или

без нее

▪ Верификация кода, включая тестирование в режимах SIL и PIL, настраиваемые комментарии и отчеты

по генерации кода с отслеживанием от моделей к коду и требованиям и обратно

▪ Интеграция с Texas Instruments Code Composer Studio™, Analog Devices™ VisualDSP++® и другими

сторонними средами разработки для встраиваемых систем

▪ Поддержка стандартов, включая ASAP2, AUTOSAR, DO-178, IEC 61508, ISO 26262 и MISRA C® в

Simulink

1

Page 2: Embedded Coder - MATLAB · сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая

Модель в фиксированной точке со сгенерированным кодом и установленным выполнением в режиме SIL.

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

встраиваемых систем.

Настройка и работа с целевыми платформами

Чтобы настроить параметры генерации кода в Embedded Coder, вы используете пользовательский

интерфейс MATLAB Coder или Simulink Model Explorer. Вы также можете настраивать каждый параметр

непосредственно при помощи команд MATLAB и скриптов.

При помощи пользовательского интерфейса MATLAB Coder вы можете:

▪ Генерировать код из ваших файлов и функций MATLAB

▪ Активировать возможности Embedded Coder

▪ Настраивать конфигурацию проекта для генерации кода

▪ Создавать, загружать и повторно использовать несколько проектов

При помощи Simulink Model Explorer вы можете:

▪ Генерировать код из ваших моделей и подсистем Simulink

▪ Выбирать целевое оборудование для Embedded Coder

▪ Настраивать генерацию кода под целевую платформу

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

Выбор целевой платформы

Embedded Coder использует объекты конфигурации (configuration objects) и системные целевые файлы

(system target files) для перевода вашего кода MATLAB и моделей Simulink в исходный код

производственного качества и исполняемые файлы.

2

Page 3: Embedded Coder - MATLAB · сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая

Для объекта конфигурации MATLAB, вы задаете одну из следующих целевых платформ:

▪ MEX-file

▪ C/C++ статическая или динамическая библиотека

▪ C/C++ исполняемый файл

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

будет работать ваш сгенерированный код. Embedded Coder включает целевые файлы для нескольких

конфигураций, готовых к запуску, а также поддерживает сторонние и настраиваемые целевые платформы.

Встроенные поддерживаемые целевые платформы включают в себя:

Embedded Real-Time Target — Генерирует ANSI/ISO C, C++ и инкапсулированный C++ код с данными в

плавающей и фиксированной точке для эффективного выполнения в реальном времени на практически

любом встраиваемом процессоре

AUTOSAR Target — Генерирует C код и интерфейсы времени выполнения, поддерживающие разработку

программных компонентов AUTOSAR

Shared Library Target — Генерирует разделяемую библиотеку из вашего кода для выполнения на хост-

компьютере; либо в виде динамической библиотеки под Windows® (.dll), либо в виде разделяемого

объекта под UNIX® (.so)

IDE Link Target — Генерирует код для компиляции и развертывания с использованием поддерживаемой

сторонней интегрированной среды разработки (IDE), такой, как Texas Instruments Code Composer Studio

Установка характеристик встраиваемого оборудования

При генерации кода из MATLAB или Simulink, вы выбираете целевой процессор из

предопределенного списка или используете общие установки. Вы можете также расширить

предопределенный список вашим конкретным оборудованием.

Simulink Model Explorer, который предоставляет доступ к списку процессоров или общим настройкам для вашего

конкретного процессора. Embedded Coder генерирует код для любого микропроцессора или DSP, включая 8-, 16-, и

32-битные.

3

Page 4: Embedded Coder - MATLAB · сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая

Определение и управление настраиваемыми данными

Embedded Coder позволяет вам определять и управлять тем, как данные из модели отображаются в

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

комплексность данных MATLAB при помощи пользовательского интерфейса MATLAB Coder для точек входа и

глобальных данных.

Для кода MATLAB, Embedded Coder поддерживает все определения данных MATLAB Coder, включая объекты в

фиксированной точке.

Для моделей Simulink, Embedded Coder поддерживает следующие спецификации данных и возможности словаря

данных при генерации кода:

Simulink data object — Предоставляет предопределенные классы памяти, включая константы, volatile

переменные, экспортируемые глобальные, импортируемые глобальные, директивы define, структуры, битовые

поля (включая упакованные структуры), а также методы get и set

Module packaging data object — Предоставляет предопределенные атрибуты для продвинутых типов данных,

обычно используемых в коде производственного уровня - таких, как регионы памяти для калибровки или

подстройки интерполяционных таблиц

User data type — Позволяет вам создавать абстрактные типы для сложных данных, чтобы вы могли тонко

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

с любыми существующими данными и изменять или подменять встроенные типы данных Simulink

Следующие инструменты в Simulink помогают вам разрабатывать и управлять данными, используемыми в

проекте:

Custom Storage Class Designer — Позволяет вам графически создавать настраиваемые определения и объявления

данных и структур в сгенерированном коде, для экономии памяти или автоматической генерации данных,

совместимых со стандартами, такими, как ASAM или ASAP2.

Simulink Model Explorer — Отображает все данные, используемые в моделях Simulink и диаграммах Stateflow®

и предоставляет настраиваемые виды, что позволяет вам представить информацию в формате словаря данных

Embedded Coder предоставляет вам доступ к файлам ASAP2 в Simulink, позволяя экспортировать данные из

модели со сложными определениями, используя стандарт ASAP2. Вы можете модифицировать эти встроенные

возможности, чтобы поддерживать другие механизмы обмена данными.

Настраиваемый класс, созданный при помощи Customer Storage Class Designer, который позволяет вам разрабатывать,

просматривать и проверять сложные типы данных, используя интуитивный графический интерфейс.

4

Page 5: Embedded Coder - MATLAB · сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая

Оптимизация и упаковка кода

С использованием Embedded Coder, вы можете управлять интерфейсами функций, сохранять

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

Обмен данными со сгенерированным кодом осуществляется через глобальные переменные или

аргументы функции. Вы можете отслеживать сгенерированный код к блокам и сигналам в вашей

модели.

Настройки Embedded Coder по генерации кода из MATLAB и Simulink позволяют вам:

▪ Генерировать специфичный для процессора код из математических функций и операторов

▪ Повторно использовать код при экспорте в существующее или внешнее окружение

▪ Устранять ненужную инициализацию, остановку, запись данных и код обработки ошибок

▪ Удалять код с плавающей точкой из систем, работающих только в фиксированной точке

Дополнительные настройки Embedded Coder по оптимизации и конфигурации доступны для моделей

Simulink models, позволяя вам:

▪ Генерировать варианты кода из моделей с использованием макросов препроцессора

▪ Сохранять логические данные и состояния Stateflow в битовых полях

▪ Управлять форматом каждого генерируемого файла

▪ Управлять тем, как определяются и вызываются глобальные данные

▪ Управлять содержимым и местоположением комментариев

5

Page 6: Embedded Coder - MATLAB · сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая

Использование специфичных для процессора оптимизаций и расширений на примере Simulink (сверху) и на примере

MATLAB (снизу). Embedded Coder также позволяет повторно использовать функции для оптимизации кода.

Комментирование, отслеживание и документирование кода

Embedded Coder предлагает несколько возможностей для исследования сгенерированного кода из ваших

файлов и функций MATLAB или моделей и подсистем Simulink. Эти возможности позволяют вам:

▪ Генерировать отчет по коду с описанием модулей и настроек конфигурации модели

▪ Управлять форматом сгенерированных глобальных данных, типов данных и функций

▪ Включать код MATLAB в виде комментариев в сгенерированный код, включая текст справки для функции

Для Simulink, Embedded Coder также предоставляет возможность вставлять высокоуровневые требования

в качестве комментариев со ссылками на источник требования (требуется Simulink Verification and

Validation™). Отчет по генерации кода из Simulink также содержит описание интерфейсов кода, отчет по

отслеживаемости и отображение сгенерированных исходных файлов и кода. Двусторонние ссылки

между моделью и сгенерированным кодом позволяют легко перемещаться от каждой строки кода к

соответствующему элементу модели Simulink, включая подсистемы, блоки, функции и код MATLAB, а

также состояния и переходы Stateflow. Вы можете щелкнуть по ссылке в отчете, чтобы подсветить

соответствующий элемент модели или строку кода, что упрощает инспекцию кода и отладку.

6

Page 7: Embedded Coder - MATLAB · сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая

Отчет по генерации кода из Simulink с подсветкой двусторонних связей между алгоритмом (моделью)

и реализацией (кодом).

Выполнение и верификация кода

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

кода.

Для MATLAB, сгенерированный код из Embedded Coder выполняется с использованием среды

выполнения, предоставляемой MATLAB Coder.

Для Simulink, Embedded Coder существенно расширяет среду выполнения, предоставляемую Simulink

Coder. По умолчанию, код может выполняться с операционной системой реального времени

(RTOS) или без нее, в режимах однозадачного, многозадачного и асинхронного выполнения. Вы

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

режиме код-в-контуре (software-in-the-loop, SIL) или процессор-в-контуре (processor-in-the-loop,

PIL).

Генерация функции main

Embedded Coder генерирует расширяемую программу main, исходя из информации, которую вы

предоставили для развертывания кода в вашей среде реального времени. Эта возможность позволяет вам

генерировать и собирать полноценный, настраиваемый исполняемый файл из вашей модели.

Группировка скоростей

Embedded Coder генерирует односкоростной или многоскоростной код, используя периоды

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

стратегия, называемая группировкой скоростей (rate grouping). В результате генерируются отдельные

функции для базового периода расчета и для каждого кратного периода в модели.

Связь с целевыми платформами и средами

Автоматизированное развертывание, интеграция, оптимизация и выполнение сгенерированного кода

доступно для поддерживаемых сторонних IDE, микропроцессоров и RTOS, включая Wind River

Systems® VxWorks®.

7

Page 8: Embedded Coder - MATLAB · сторонними средами разработки для встраиваемых систем Поддержка стандартов, включая

Тестирование в режимах SIL и PIL

Embedded Coder автоматизирует выполнение сгенерированного кода в Simulink путем SIL тестирования

или на встраиваемом целевом процессоре путем PIL тестирования с использованием режимов

симуляции Simulink или блоков S-function. Специализированный программный интерфейс (API) для

верификации сгенерированного кода помогает автоматизировать выполнение тестов и сравнение

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

сторонними инструментами позволяет проводить структурный анализ покрытия кода тестами, чтобы

измерять охват тестами. Профилирование кода позволяет анализировать время выполнения кода на

хост-компьютере, а также на целевых процессорах.

Ресурсы

Информация о продукте, примеры и системные требования

www.sl-matlab.ru/services/products/detail.php?ID=488&list=abc www.mathworks.com/products/embedded-coder

Пробная версия

www.sl-matlab.ru/services/request_trial.php

Лицензирование и цены

www.sl-matlab.ru/services/request_price.php

Техническая поддержка

www.sl-matlab.ru/services/service/ssms.php

Сообщество пользователей

www.mathworks.com/matlabcentral

http://matlab.exponenta.ru/

Обучение

www.sl-matlab.ru/training/

Сторонние продукты и сервисы

www.sl-matlab.ru/services/products/ppartnership.php

Контакты

www.sl-matlab.ru/about/

Email: [email protected] Тел.: +7 (495) 232-00-23, доб. 0609

© 2012 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of

additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 8