Сгенерируйте код С из модели Simulink

Simulink® Coder™ генерирует автономные C и Код С++ из моделей Simulink для развертывания в самых разных приложениях. Рабочий процесс, описанный в этом разделе, использует функции DSP System Toolbox™, но тот же самый процесс применяется и к Communications Toolbox™. Список функций Communications Toolbox, поддерживаемых Simulink Coder, см. в разделах Блоки, поддерживаемые для генерации кода C

Этот пример генерирует код С из ex_codegen_dsp моделирует и создает исполняемый файл из сгенерированного кода. Можно запустить исполняемый файл внутри MATLAB® окружение. В сложение можно упаковать и перенести код в другую среду разработки, в которой не установлены продукты MATLAB и Simulink.

Откройте модель

The ex_codegen_dsp модель реализует простой адаптивный фильтр для удаления шума из сигнала с одновременной идентификацией фильтра, который характеризует содержимое шумовой частоты. Чтобы открыть эту модель, введите следующую команду в командной строке MATLAB:

open_system('ex_codegen_dsp')

Можно также создать модель с помощью шаблона DSP System. Для получения дополнительной информации смотрите Настройте окружение Simulink для моделей обработки сигналов.

Сконфигурируйте модель для генерации кода

Подготовьте модель к генерации кода путем определения настроек генерации кода в диалоговом окне Configuration Parameters. Выберите соответствующий решатель и цель генерации кода и проверьте строение модели на эффективность выполнения. Для получения дополнительной информации о каждом из этих шагов см. «Генерация кода С для модели» (Simulink Coder).

Симулируйте модель

Симулируйте модель. На Time Scope показаны входы и фильтрованного сигналов.

На Array Plot показаны последние 32 веса фильтров, для которых фильтр LMS эффективно адаптировал и отфильтровал шум от сигнала.

К этим коэффициентам также можно обращаться с помощью следующей команды:

filter_wts(:,:,1201)

Сгенерируйте код из модели

Прежде чем вы сгенерируете код из модели, необходимо сначала убедиться, что у вас есть разрешение на запись в текущую папку.

Чтобы сгенерировать код, вы должны внести следующие изменения:

  1. На вкладке Modeling панели инструментов модели нажмите Model Settings. Откроется диалоговое окно Configuration Parameters. Перейдите на вкладку Code Generation, выберите параметр Generate code only и нажмите Apply.

  2. В галерее Apps нажмите Simulink Coder. Появится вкладка C Code. Щелкните значок Generate Code ().

После того, как модель закончит генерировать код, появляется Code Generation Report, позволяющее вам просмотреть сгенерированный код. Обратите внимание, что процесс сборки создает новую подпапку с именем ex_codegen_dsp_grt_rtw в текущей рабочей папке MATLAB. Эта подпапка содержит все файлы, созданные процессом генерации кода, включая файлы, которые содержат сгенерированный исходный код C. Для получения дополнительной информации о просмотре сгенерированного кода смотрите Сгенерировать код C для модели (Simulink Coder).

Создайте и запустите сгенерированный код

Настройка компилятора C/C + +

Чтобы создать исполняемый файл, необходимо настроить поддерживаемый компилятор C. Список компиляторов, поддерживаемых в текущем релизе, см. в Поддерживаемые и Совместимые компиляторы.

Чтобы настроить компилятор, запустите следующую команду в командной строке MATLAB:

mex –setup

Создайте сгенерированный код

После того, как ваш компилятор будет установлен, можно создать и запустить скомпилированный код. В настоящее время модель ex_codegen_dsp сконфигурирована, чтобы генерировать только код. Чтобы создать сгенерированный код, необходимо сначала внести следующие изменения:

  1. На вкладке Modeling панели инструментов модели нажмите Model Settings. Откроется диалоговое окно Configuration Parameters. Перейдите на вкладку Code Generation, очистите параметр Generate code only и нажмите Apply.

  2. На вкладке C Code панели инструментов модели щелкните значок Build ().

Генератор кода создает исполняемый файл и генерирует Code Generation Report. Генератор кода помещает исполняемый файл в рабочую папку. В Windows исполняемый файл ex_codegen_dsp.exe. В Linux исполняемый файл ex_codegen_dsp.

Запуск сгенерированного кода

Чтобы запустить сгенерированный код, введите следующую команду в командной строке MATLAB:

!ex_codegen_dsp

Выполнение сгенерированного кода создает MAT-файл, который содержит те же переменные, что и сгенерированные путем симуляции модели. Переменные в MAT-файле называются с префиксом rt_. После запуска сгенерированного кода можно загрузить переменные из MAT-файла, набрав следующую команду в подсказке MATLAB:

load ex_codegen_dsp.mat

Теперь можно сравнить переменные из сгенерированного кода с переменными из симуляции модели. Для доступа к последнему набору коэффициентов из сгенерированного кода введите следующее в подсказке MATLAB:

rt_filter_wts(:,:,1201)

Обратите внимание, что коэффициенты в filter_wts(:,:,1201) и rt_filter_wts(:,:,1201) соответствовать.

Для получения дополнительной информации о создании и запуске исполняемого файла смотрите Сгенерируйте код С для модели (Simulink Coder).

Перемещение кода в другую среду разработки

Если вы генерируете код из вашей модели Simulink, можно переместить код в другую среду разработки с помощью утилиты pack-and-go. Используйте эту утилиту, когда среда разработки не имеет продуктов MATLAB и Simulink.

Утилита pack-and-go использует инструменты для настройки процесса сборки после генерации кода и packNGo (Simulink Coder) функция для поиска и пакетирования файлов для создания исполняемого образа. Файлы упакованы в сжатый файл, который можно переместить и распаковать с помощью стандартной утилиты zip.

Упаковать код можно либо с помощью пользовательского интерфейса, либо с помощью интерфейса командной строки. Интерфейс командной строки обеспечивает больший контроль над деталями упаковки кода. Для получения дополнительной информации о каждом из этих методов смотрите Перемещение кода в другую среду разработки (Simulink Coder).

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

Похожие темы

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