Simulink® Coder™ генерирует автономный C и Код С++ из моделей Simulink для развертывания в большом разнообразии приложений. Рабочий процесс, описанный в этой теме, использует функции DSP System Toolbox™, но тот же рабочий процесс запрашивает Communications Toolbox™.
Этот пример генерирует код С из модели ex_codegen_dsp
и создает исполняемый файл из сгенерированного кода. Можно запустить исполняемый файл в среде MATLAB®. Кроме того, можно группировать и переместить код к другой среде разработки, которая не имеет MATLAB и продуктов Simulink установленными.
Модель ex_codegen_dsp
реализует простой адаптивный фильтр, чтобы удалить шум из сигнала, одновременно идентифицируя фильтр, который характеризует шумовое содержимое частоты. Чтобы открыть эту модель, введите следующую команду в подсказку команды MATLAB:
open_system('ex_codegen_dsp')
Можно альтернативно создать модель с помощью шаблона DSP System. Для получения дополнительной информации смотрите, Конфигурируют окружение Simulink для Моделей Обработки сигналов (DSP System Toolbox).
Подготовьте модель к генерации кода путем определения настроек генерации кода в диалоговом окне Configuration Parameters. Выберите соответствующий решатель и цель генерации кода, и проверяйте настройку модели на эффективность выполнения. Для получения дополнительной информации на каждом из этих шагов, смотрите, Генерируют код С для Модели (Simulink Coder).
Моделируйте модель. Осциллограф Времени показывает вход и отфильтровал характеристики сигнала.
График Массивов показывает последние 32 веса фильтра, к которым фильтр LMS эффективно адаптировался и отфильтровал шум от сигнала.
К этим коэффициентам можно также получить доступ с помощью следующей команды:
filter_wts(:,:,1201)
Прежде чем вы сгенерируете код из модели, необходимо сначала гарантировать, что у вас есть разрешение записи в вашей текущей папке.
Чтобы сгенерировать код, необходимо внести следующие изменения:
Откройте диалоговое окно модели Configuration Parameters, перейдите к вкладке Code Generation, и установите флажок Generate code only и нажмите Apply.
От образцовой панели инструментов кликните по значку Build Model ().
После того, как модель закончила генерировать код, Code Generation Report появляется, позволяя вам осмотреть сгенерированный код. Обратите внимание на то, что процесс сборки создает новую подпапку под названием ex_codegen_dsp_grt_rtw
в вашем текущем MATLAB рабочая папка. Эта подпапка содержит все файлы, созданные процессом генерации кода, включая тех, которые содержат сгенерированный исходный код C. Для получения дополнительной информации о просмотре сгенерированного кода смотрите, Генерируют код С для Модели (Simulink Coder).
Чтобы создать исполняемый файл, необходимо настроить поддерживаемый компилятор C. Для списка компиляторов, поддержанных в текущем релизе, см. Поддерживаемые и Совместимые Компиляторы.
Чтобы настроить ваш компилятор, запустите следующую команду в подсказке команды MATLAB:
mex –setup
После того, как ваш компилятор является настройкой, можно создать и запустить скомпилированный код. ex_codegen_dsp модель в настоящее время сконфигурирована, чтобы сгенерировать код только. Чтобы создать сгенерированный код, необходимо сначала внести следующие изменения:
Откройте диалоговое окно модели Configuration Parameters, перейдите к вкладке Code Generation и снимите флажок Generate Code Only.
Нажмите OK, чтобы применить ваши изменения и закрыть диалоговое окно.
От образцовой панели инструментов кликните по значку Build Model ().
Генератор кода создает исполняемый файл и генерирует 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, можно переместить код к другой среде разработки с помощью утилиты упаковывать-и-идти. Используйте эту утилиту, когда среда разработки не будет иметь продукты Simulink и MATLAB.
Утилита упаковывать-и-идти использует инструменты для настройки процесса сборки после генерации кода и функции packNGo
, чтобы найти и группировать файлы для создания исполняемого изображения. Файлы группированы в сжатом файле, что можно переместить и распаковать использование стандартной утилиты zip.
Можно группировать код или использованием пользовательского интерфейса или при помощи интерфейса командной строки. Интерфейс командной строки обеспечивает больше управления деталями упаковки кода. Для получения дополнительной информации о каждом из этих методов смотрите, Перемещают Код к Другой Среде разработки (Simulink Coder).
Для примера о том, как группировать код С и исполняемый файл, сгенерированный от этого примера, смотрите, Перемещают Код, Сгенерированный от Модели Simulink до Другой Среды разработки (DSP System Toolbox).