exponenta event banner

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

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

Создание кода C и C++ из кода MATLAB

С помощью кодера MATLAB можно создавать высокооптимизированные коды ANSI C и C++ из функций и системных объектов в панели системных инструментов DSP. Список функций и системных объектов, поддерживающих генерацию кода, см. в разделе Функции и системные объекты в панели системных инструментов DSP, поддерживающих генерацию кода C. Вы можете использовать приложение MATLAB Coder или codegen (Кодер MATLAB) для создания кода в соответствии с выбранным типом сборки. Если типом построения является один из следующих типов:

  • Исходный код - создание исходного кода C для интеграции с внешним проектом.

  • MEX Code -- создание функции MEX для выполнения в MATLAB с использованием параметров конфигурации по умолчанию.

  • Статическая библиотека (.lib) - создание двоичной библиотеки для статической связи с другим проектом.

  • Динамическая библиотека (.dll) - создание двоичной библиотеки для динамической связи с внешним проектом.

  • Исполняемый файл - создание автономной программы (требуется отдельный основной файл, написанный на языке C или C++).

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

Пример, иллюстрирующий рабочий процесс создания кода с помощью codegen см. раздел Создание кода C из кода MATLAB. Подробные сведения о каждом из шагов создания кода см. в разделах Создание кода C с помощью приложения кодера MATLAB (MATLAB Coder) и Создание кода C в командной строке (MATLAB Coder).

Для повышения скорости выполнения и использования памяти генерируемого кода MATLAB Coder имеет несколько опций оптимизации. Дополнительные сведения см. в разделе Оптимизация кодера MATLAB в сгенерированном коде (кодер MATLAB).

Создание кода C и C++ из модели Simulink

С помощью Simulink Coder можно создавать высокооптимизированные коды ANSI C и C++ из блоков Simulink в DSP System Toolbox. Список блоков, поддерживающих генерацию кода, см. в разделе Блоки Simulink в панели системных инструментов DSP, поддерживающих генерацию кода C. Кроме того, эти данные можно найти в таблице поддержки типов данных блока Simulink для панели инструментов системы DSP. Для доступа к этой таблице введите следующую команду в командной строке MATLAB:

Блоки с «X» в столбце «Code Generation Support» поддерживают генерацию кода.

Можно создать код из модели Simulink, построить исполняемый файл и даже запустить исполняемый файл в MATLAB. Пример см. в разделе Создание кода C из модели Simulink.

Подробные сведения о каждом из шагов создания кода см. в разделе Создание кода C для модели (Simulink Coder).

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

Сгенерированный код C часто подходит для встраиваемых приложений и включает следующие оптимизации:

  • Повторное использование функций (библиотеки времени выполнения ) - повторное использование общих алгоритмических функций посредством вызовов общих служебных функций. Общие служебные функции - это высокооптимизированные функции ANSI/ISO C, реализующие базовые алгоритмы, такие как FFT и свертка.

  • Повторное использование параметров (Simulink Coder run-time parameters) - несколько экземпляров блока, имеющих одинаковое значение для конкретного параметра, указывают на одну и ту же переменную в сгенерированном коде. Этот процесс снижает требования к памяти.

  • Блоки имеют параметры, влияющие на оптимизацию кода  . Некоторые блоки, например блок синусоидальной волны, имеют параметры, позволяющие оптимизировать моделирование для памяти или для скорости. Эти оптимизации также применимы к созданию кода.

  • Другие оптимизации - использование смежных массивов ввода и вывода, повторно используемых входов, перезаписываемых массивов и встроенных алгоритмов обеспечивает меньший размер генерируемого кода 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).

Создание кода C для процессоров ARM Cortex-M и ARM Cortex-A

DSP System Toolbox поддерживает оптимизированную генерацию кода C для популярных алгоритмов, таких как фильтрация FIR и FFT на процессорах ARM Cortex-M и ARM Cortex-A. Для создания этого оптимизированного кода необходимо установить пакет поддержки встроенного кодера для процессоров ARM Cortex-M или пакет поддержки встроенного кодера для процессоров ARM Cortex-A. Кроме того, вы должны иметь следующие продукты: DSP System Toolbox, MATLAB Coder, Embedded Coder, Simulink и Simulink Coder для рабочих процессов на основе Simulink.

С помощью этих пакетов поддержки Embedded Coder можно создавать код C, который может связываться с библиотекой CMSIS или вызывать функции библиотеки Ne10. Этот созданный код может быть скомпилирован для обеспечения оптимизированных исполняемых файлов, работающих на процессорах ARM Cortex-M или ARM Cortex-A.

Также можно перенести сгенерированный код CRL ARM Cortex-M из MATLAB в KEIL мкVision IDE и IAR Embedded Workbench. Дополнительные сведения см. в разделах Порт сгенерированного кода CRL ARM Cortex-M от MATLAB к KEIL мкVision IDE и Порт сгенерированного кода CRL ARM Cortex-M от MATLAB к IAR Embedded Workbench.

Чтобы загрузить пакеты поддержки Embedded Coder для процессоров ARM Cortex, см. раздел https://www.mathworks.com/hardware-support.html.

Дополнительные сведения о пакетах поддержки и инструкции по их загрузке см. в разделе Пакет поддержки встроенного кодера для процессоров ARM Cortex-M и Пакет поддержки встроенного кодера для процессоров ARM Cortex-A.

Создать код для мобильных устройств

С помощью пакета поддержки Simulink для устройств Apple iOS можно создавать и запускать модели Simulink на iPhone, iPod Touch и iPad. Вы также можете отслеживать и настраивать алгоритмы, работающие на устройствах Apple. Пример см. в разделе График массива с устройствами Apple iOS (пакет поддержки Simulink для устройств Apple iOS).

С помощью пакета поддержки Simulink для устройств Android™ можно создавать и запускать модели Simulink на поддерживаемых устройствах Android. Пример см. в разделе График массива с устройствами Android.

См. также

Функции

Связанные темы

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