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

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

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

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

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. Для получения дополнительной информации о просмотре сгенерированного кода смотрите, Генерируют код С для Модели (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. Используйте эту утилиту, когда среда разработки не будет иметь продукты Simulink и MATLAB.

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

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

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

Похожие темы

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