Общие сведения о генерации кода C в DSP System Toolbox

Сгенерируйте C и Код С++ из алгоритмов обработки сигналов в DSP System Toolbox™ с помощью MATLAB® Coder™ и Simulink® Продукты кодера. Можно интегрировать сгенерированный код в ваши проекты как исходный код, статические библиотеки, динамические библиотеки или даже как независимые исполняемые файлы. Можно также сгенерировать код, оптимизированный для ARM® Кора®Процессоры -M и ARM Cortex-A, использующие Embedded Coder® продукт.

Сгенерируйте C и Код С++ из кода MATLAB

Используя 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).

Сгенерируйте C и Код С++ из модели Simulink

Используя 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).

Сгенерированные оптимизации Коды С ANSI

Сгенерированный код 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).

Сгенерируйте код С для процессоров ARM Cortex-M и ARM Cortex-A

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.

См. также

Функции

Похожие темы

Внешние веб-сайты