Сгенерируйте C и Код С++ из алгоритмов обработки сигналов в DSP System Toolbox™ с помощью MATLAB® Coder™ и Simulink® Продукты кодера. Можно интегрировать сгенерированный код в ваши проекты как исходный код, статические библиотеки, динамические библиотеки или даже как независимые исполняемые файлы. Можно также сгенерировать код, оптимизированный для ARM® Кора®Процессоры -M и ARM Cortex-A, использующие Embedded Coder® продукт.
Используя MATLAB Coder, можно сгенерировать высоко оптимизированные ANSI C и Код С++ из функций и системных объектов в DSP System Toolbox. Список функций и системных объектов, поддерживающих генерацию кода, см. в разделах Функции и Системные объекты в DSP System Toolbox, которые Поддержка генерацию кода C. Вы можете использовать или приложение MATLAB Coder или codegen
(MATLAB Coder) для генерации кода в соответствии с выбранным типом сборки. Когда тип сборки один из следующих:
Исходный код -- Сгенерируйте исходный код C для интеграции с внешним проектом.
Код MEX - Сгенерируйте MEX-функцию для запуска внутри MATLAB с использованием параметров конфигурации по умолчанию.
Статическая библиотека (.lib) -- Сгенерируйте двоичную библиотеку для статического связывания с другим проектом.
Динамическая библиотека (.dll) -- Сгенерируйте двоичную библиотеку для динамического связывания с внешним проектом.
Исполняемый файл -- Сгенерируйте автономную программу (требуется отдельный основной файл, записанный на C или C++).
Если вы используете скрипты сборки для задания типов входных параметров и опций генерации кода, используйте codegen
функция.
Для примера, который иллюстрирует рабочий процесс генерации кода с использованием codegen
, см. Генерация кода С из кода MATLAB. Для получения дальнейшей информации на каждом из шагов генерации кода, посмотрите, Производят Код С при помощи Приложения MATLAB CODER (MATLAB CODER) и Производят Код С в Командной строке (MATLAB CODER).
В порядок улучшить скорость выполнения и использование памяти сгенерированного кода, MATLAB Coder имеет несколько опции оптимизации. Для получения дополнительной информации смотрите Оптимизация кодера MATLAB в Сгенерированном коде (MATLAB Coder).
Используя Simulink Coder, можно сгенерировать высоко оптимизированные ANSI C и Код С++ из блоков Simulink в DSP System Toolbox. Список блоков, поддерживающих генерацию кода, см. в Simulink Blocks в DSP System Toolbox, который Поддержка генерацию кода С. Кроме того, эти данные можно найти в таблице поддержки типа Блока Simulink для DSP System Toolbox. Для доступа к этой таблице введите следующую команду в командной строке MATLAB:
Блоки с 'X' в столбце 'Code Generation Поддержки' поддержки генерацией кода.
Можно сгенерировать код из модели Simulink, создать исполняемый файл и даже запустить исполняемый файл в MATLAB. Для получения примера смотрите Сгенерировать Код С из Simulink модели.
Для получения дополнительной информации о каждом шаге генерации кода смотрите Сгенерируйте код C для модели (Simulink Coder).
Сгенерированный код C часто подходит для встраиваемых приложений и включает следующие оптимизации:
Повторное использование функции (библиотеки во время выполнения ) - повторное использование общих алгоритмических функций через вызовы общих служебных функций. Общие служебные функции являются высоко оптимизированными функциями ANSI/ISO C, которые реализуют основные алгоритмы, такой как БПФ и свертка.
Повторное использование параметра (параметры времени выполнения Simulink Coder ) - Несколько образцы блока, которые имеют то же значение для определенного параметра, указывают на ту же переменную в сгенерированном коде. Этот процесс уменьшает требования к памяти.
Блоки имеют параметры, которые влияют на оптимизацию кода - Некоторые блоки, такие как блок Sine Wave, имеют параметры, которые позволяют вам оптимизировать симуляцию для памяти или для скорости. Эти оптимизации также применяются к генерации кода.
Другие оптимизации - Использование смежных входных и выходных массивов, переиспользуемых входов, перезаписываемых массивов и встроенных алгоритмов обеспечивают меньший сгенерированный код C, который более эффективен во время исполнения.
В большинстве случаев код C/C + +, который вы генерируете из объектов и блоков DSP System Toolbox, является портативным. После того, как вы сгенерируете код, с помощью утилиты pack-and-go, можно упаковать и перенести код в другую среду разработки, в которой не установлены MATLAB и Simulink. Для примеров смотрите Перенос кода, сгенерированного из кода MATLAB, в другую среду разработки и Перемещение кода, сгенерированного из модели Simulink, в другую среду разработки .
Существует несколько функций DSP System Toolbox, которые генерируют код с ограниченной переносимостью. Исполняемые файлы, сгенерированные из этих функций, основаны на предварительно созданных файлах динамической библиотеки (.dll файлы), включенных в MATLAB. Вы должны включать эти файлы .dll, когда вы запускаете соответствующие исполняемые файлы во внешнем окружении. Список таких объектов и блоков и информацию о том, как запустить эти исполняемые файлы за пределами MATLAB, см. в разделе Как запустить сгенерированный исполняемый файл за пределами MATLAB.
Simulink Coder и MATLAB Coder обеспечивают функции, которые помогут вам настроить и управлять информацией о сборке для ваших моделей. Для примера, одна из функций, которую предоставляет Simulink Coder, getNonBuildFiles
(Simulink Coder), позволяет вам идентифицировать общие библиотеки, требуемые блоками в вашей модели. Если ваша модель содержит любые блоки, которые используют предварительно скомпилированные общие библиотеки, можно установить эти библиотеки в целевой системе. Папка, в которую вы устанавливаете общие библиотеки, должна находиться в системном пути. В целевой системе не требуется установка MATLAB, но она должна поддерживаться MATLAB. Для получения дополнительной информации смотрите Настройка процесса сборки (Simulink Coder). Функция getNonBuildFiles
может также применяться к алгоритмам MATLAB. Для получения дополнительной информации см. раздел Индивидуальную настройку процесса сборки (MATLAB Coder).
DSP System Toolbox поддержек оптимизированную генерацию кода C для популярных алгоритмов, таких как фильтрация и БПФ конечной импульсной характеристики на процессорах ARM Cortex-M и ARM Cortex-A. Чтобы сгенерировать этот оптимизированный код, необходимо установить пакет поддержки Embedded Coder для процессоров ARM Cortex-M или пакет поддержки Embedded Coder для процессоров ARM Cortex-A. В сложение у вас должны быть следующие продукты: DSP System Toolbox, MATLAB Coder, Embedded Coder, Simulink и Simulink Coder для рабочих процессов на основе Simulink.
Используя эти пакеты поддержки Embedded Coder, можно сгенерировать код С, который может связываться с библиотекой CMSIS или вызывать функции Ne10 библиотеки. Этот сгенерированный код может быть скомпилирован, чтобы предоставить оптимизированные исполняемые файлы, которые работают на процессорах ARM Cortex-M или ARM Cortex-A.
Можно также портировать сгенерированный код CRL ARM Cortex-M из MATLAB в KEIL uVision IDE и IAR Embedded Workbench. Для получения дополнительной информации смотрите Порт Сгенерированного кода CRL ARM Cortex-M от MATLAB до KEIL, и Порт Сгенерированного кода CRL ARM Cortex-M от MATLAB к IAR Embedded Workbench.
Для загрузки пакетов поддержки Embedded Coder для процессоров ARM Cortex смотрите https://www.mathworks.com/hardware-support.html.
Для получения дополнительной информации о пакетах поддержки и инструкциях по их загрузке смотрите Пакет поддержки Embedded Coder для процессоров ARM Cortex-M и Пакет поддержки Embedded Coder для процессоров ARM Cortex-A.
Используя пакет поддержки Simulink для Apple iOS Devices, можно создавать и запускать модели Simulink на iPhone, iPod Touch и iPad. Также можно контролировать и настраивать алгоритмы, работающие на устройствах Apple. Для получения примера смотрите Массив Plot with Apple iOS Devices (Simulink Support Package for Apple iOS Devices).
Используя пакет поддержки Simulink для Android™ устройств, можно создавать и запускать модели Simulink на поддерживаемых Android-устройствах. Для получения примера смотрите Массив Plot with Android Devices.
codegen
(MATLAB Coder) | getNonBuildFiles
(Simulink Coder)