Embedded Coder® программное обеспечение предоставляет библиотеку блоков и скриптов Configuration Wizard, которая поможет настроить и оптимизировать генерацию кода из моделей.
Библиотека содержит блок Строения Wizard, который можно настроить. Он также предоставляет четыре предустановленных блока Строения Wizard, которые обновляют активные параметры конфигурации для указанной цели.
Блок | Описание |
---|---|
Custom MATLAB file | Обновляйте активные параметры конфигурации родительской модели с помощью пользовательского файла |
ERT (optimized for fixed-point) | Обновляйте активные параметры конфигурации родительской модели для генерации кода с фиксированной точкой ERT |
ERT (optimized for floating-point) | Обновляйте активные параметры конфигурации родительской модели для генерации кода с плавающей точкой ERT |
GRT (debug for fixed/floating-point) | Обновляйте активные параметры конфигурации родительской модели для генерации кода с фиксированной или плавающей точкой GRT с включенной отладкой |
GRT (optimized for fixed/floating-point) | Обновляйте активные параметры конфигурации родительской модели для генерации кода с фиксированной или плавающей точкой GRT |
Когда вы добавляете один из предустановленных блоков Мастера строения к вашей модели и дважды кликаете его, предопределенный MATLAB® файловый скрипт конфигурирует параметры активной конфигурации модели без ручного вмешательства. Предустановленные блоки оптимально конфигурируют параметры для одного из следующих случаев:
Генерация кода с фиксированной точкой с целевым объектом ERT
Генерация кода с плавающей точкой с целевым объектом ERT
Генерация кода с фиксированной точкой или с плавающей точкой с включенными параметрами отладки TLC с целевой точкой GRT.
Генерация кода с фиксированной точкой или с плавающей точкой с целью GRT
Пользовательский блок предоставляет пример скрипта файла MATLAB, который можно адаптировать к вашим требованиям.
Можно также настроить блоки Строения Wizard, чтобы вызвать процесс сборки после настройки модели.
Блоки Строения Wizard доступны в библиотеке блоков Embedded Coder. Чтобы использовать блок мастера строения:
Откройте модель, которую вы хотите сконфигурировать.
Откройте библиотеку блоков Embedded Coder путем ввода команды rtweclib
.
Дважды щелкните значок Мастера строения. Откроется вложенный раздел Мастера строения.
Выберите блок Строения Wizard, который вы хотите использовать, и перетащите его в модель. Эта модель содержит ERT (optimized for fixed-point)
Блок мастера строения.
Если необходимо, чтобы блок мастера Строения активировал процесс сборки после строения, щелкните правой кнопкой мыши блок мастера Строения в модели и выберите Mask > Mask Parameters из контекстного меню. Затем выберите процесс Invoke build после параметра конфигурации. Не изменяйте Настройте модель для параметров блоков, если вы не хотите создать пользовательский блок и скрипт. В этом случае см. раздел Создание блока мастера пользовательское строение.
Нажмите кнопку Применить (Apply) и закройте диалоговое окно Параметры маски (Mask Parameters).
Сохраните модель.
После добавления блока Строения Wizard к модели, чтобы сконфигурировать модель, дважды кликните блок. Скрипт, связанный с блоком, устанавливает параметры активной конфигурации модели, которые имеют отношение к генерации кода (включая выбор целевого объекта). Вы можете увидеть, что параметры изменились, открывая диалоговое окно Параметров конфигурации и исследуя настройки параметра.
Если вы выбрали параметр Invoke build process after блок Configuration, скрипт также инициирует генерацию кода и процесс build.
Примечание
Чтобы обеспечить быстрый способ переключения между строениями, можно добавить несколько блоков мастера строения к модели.
Блок мастера пользовательского строения и связанный с ним скрипт файла MATLAB,
, предоставьте начальную точку для индивидуальной настройки.matlabroot
/ toolbox/coder/simulinkcoder_core/rtwsampleconfig.m
Настройте пользовательский блок мастера строения и соедините его со скриптом. Если вы хотите использовать блок в более чем одном режиме, рекомендуется создать Simulink® библиотеку, содержащую блок.
Чтобы начать, сделайте копию примера скрипта для последующей индивидуальной настройки:
Чтобы сохранить пользовательский скрипт, создайте папку. Эта папка не должна быть нигде в структуре папки MATLAB (то есть не должна находиться под
).matlabroot
Пример относится к этой папке следующим /my_wizards
.
Добавьте папку в путь MATLAB. Сохраните путь к будущим сеансам.
Скопируйте пример скрипта rtwsampleconfig.m
в папке
(открыто) к matlabroot
/ toolbox/rtw/rtw/my_wizards
папка, которую вы создали. Затем переименуйте скрипт. В этом примере используется имя my_configscript.m
.
Откройте пример скрипта в редакторе MATLAB. Прокрутите файл до конца и введите следующую строку кода:
disp('Custom Configuration Wizard Script completed.');
Этот оператор используется позже как тест, чтобы увидеть, что ваш пользовательский блок выполнил скрипт.
Сохраните скрипт и закройте редактор MATLAB.
Следующая задача - создать библиотеку Simulink и добавить к ней пользовательский блок.
Откройте библиотеку блоков Embedded Coder и подзаголовок Строения Wizards, как описано в разделе «Добавление блока мастера Строения».
На вкладке Library выберите New > Library. На начальной странице Simulink выберите пустую библиотеку. Откроется пустое окно библиотеки.
Выберите блок Custom MATLAB file из вложенного списка Мастера строения и перетащите его в пустое окно библиотеки.
Чтобы отличить пользовательский блок от исходного, отредактируйте метку Custom MATLAB file под блоком.
На вкладке Library выберите Save > Save as. Сохраните библиотеку в /my_wizards
папка, под вашим именем библиотеки по выбору. На этом рисунке библиотека сохранена как ex_custom_button
и блок помечен my_wizard MATLAB-file
.
Следующая задача - связать пользовательский блок с пользовательским скриптом:
Щелкните правой кнопкой мыши блок в модели и выберите Mask > Mask Parameters из контекстного меню. Для меню Configure the model for задано значение Custom
. Когда Custom
выбран, Configuration function поле редактирования включено, чтобы можно было ввести имя пользовательского скрипта.
В Configuration function поле введите имя пользовательского скрипта. (Не вводите .m
расширение имени файла, неявное.)
По умолчанию параметр Invoke build process after configuration очищается. Вы можете изменить значение по умолчанию для пользовательского блока, выбрав эту опцию. Пока оставьте этот параметр очищенным.
Нажмите кнопку Применить (Apply) и закройте диалоговое окно Параметры маски (Mask Parameters).
Сохраните библиотеку.
Закройте библиотеку блоков Embedded Coder и вложенный раздел Строения Wizards. Оставьте пользовательскую библиотеку открытой для использования в следующей задаче.
Протестируйте свой блок и скрипт в модели.
Откройте vdp
модель путем ввода команды:
vdp
Откройте диалоговое окно Параметры конфигурации (Configuration Parameters) и просмотрите параметры, щелкнув Code Generation в списке на левой панели диалогового окна.
Наблюдайте за этим vdp
сконфигурировано по умолчанию для целевого устройства GRT. Закройте диалоговое окно Параметры конфигурации.
Выберите пользовательский блок из пользовательской библиотеки. Перетащите блок в vdp
модель.
В vdp
дважды кликните пользовательский блок.
В окне MATLAB отображается тестовое сообщение, которое вы ранее добавили к своему скрипту:
Custom Configuration Wizard Script completed.
Тестовое сообщение указывает, что пользовательский блок выполнил скрипт.
Снова откройте диалоговое окно Параметры конфигурации и снова просмотрите панель Code Generation. Теперь модель сконфигурирована для целевого устройства ERT.
Прежде чем применять дополнительные изменения к пользовательскому скрипту, перейдите к следующему разделу, чтобы узнать о операции и соглашениях скриптов мастера строения.
Создайте пользовательский скрипт Строения Wizard путем копирования и изменения примера скрипта, rtwsampleconfig.m
.
Функция строения. Скрипт примера реализует одну функцию без возврата значения. Функция принимает один аргумент cs
:
function rtwsampleconfig(cs)
Аргумент cs
- указатель на проприетарный объект, содержащий информацию об активной конфигурации модели. Программа Simulink получает этот указатель и передает его в функцию строения при двойном клике по блоку Configuration Wizard.
Ваш пользовательский скрипт должен соответствовать этому прототипу. Ваш код должен использовать cs
как объект «черного ящика», который передает информацию в активную конфигурацию модели и из него.
Доступ к параметрам конфигурации модели. Чтобы задать параметры или получить значения параметров, используйте Simulink set_param
и get_param
функций.
Имена опций передаются в set_param
и get_param
как векторы символов, задающие имя внутренней опции. Имя внутренней опции может отличаться от метки опции в пользовательском интерфейсе (для примера - диалоговое окно Параметров конфигурации). Пример строению сопровождает каждую set_param
и get_param
вызов с комментарием, который коррелирует внутренние имена опций с метками опций пользовательского интерфейса. Для примера:
set_param(cs,'LifeSpan','1'); % Application lifespan (days)
Чтобы получить текущую настройку опции в активной конфигурации модели, вызовите get_param
. Пройдите в cs
объект как первый аргумент, за которым следует внутреннее имя опции. Например, следующий фрагмент кода проверяет настройку опции Create code generation report:
if strcmp(get_param(cs, 'GenerateReport'), 'on') ...
Чтобы установить опцию в активной конфигурации модели, вызовите set_param
. Пройдите в cs
объект как первый аргумент, за которым следуют одна или несколько пар параметр/значение, которые задают имя внутренней опции и ее значение. Например, следующий фрагмент кода отключает опцию Support absolute time:
set_param(cs,'SupportAbsoluteTime','off');
Выберите цель. Строение мастера скрипта должен выбрать целевое строение. В качестве примера скрипта используется цель ERT по умолчанию. Скрипт сначала сохраняет переменные вектора символов, которые соответствуют необходимому Системному целевому файлу, Template make-файлу и настройкам команды Make:
stf = 'ert.tlc'; tmf = 'ert_default_tmf'; mc = 'make_rtw';
Вы выбираете системный целевой файл путем передачи cs
объект и stf
вектор символов в switchTarget
функция:
switchTarget(cs,stf,[]);
Установите шаблон make-файла и сделайте команду опции при помощи set_param
вызовы:
set_param(cs,'TemplateMakefile',tmf); set_param(cs,'MakeCommand',mc);
Чтобы выбрать цель, ваш пользовательский скрипт должен настроить переменные вектора символов stf
, tmf
, и mc
и передайте их на вызовы.
Получение информации о цели и конфигурации модели. Следующие служебные функции и свойства предусмотрены, чтобы ваш код мог получить информацию о текущей цели и конфигурации модели с cs
объект:
isValidParam(cs, 'option')
: The option
аргумент является внутренним именем опции. isValidParam
возвращает true, если option
доступ к нему можно получить с помощью get_param
функция в контексте активной конфигурации модели.
getPropEnabled(cs, 'option')
: The option
аргумент является внутренним именем опции. Возвращает true, если это option
включено (то есть доступно для записи).
IsERTTarget
Свойство: Ваш код может обнаружить, получен ли выбранный на данный момент целевой объект от ERT, проверяя IsERTTarget
свойство, следующим образом:
isERT = strcmp(get_param(cs,'IsERTTarget'),'on');
Можно использовать эту информацию, чтобы определить, должен ли скрипт конфигурировать параметры ERT, например:
if isERT set_param(cs,'ZeroExternalMemoryAtStartup','off'); set_param(cs,'ZeroInternalMemoryAtStartup','off'); set_param(cs,'InitFltsAndDblsToZero','off'); set_param(cs,'NoFixptDivByZeroProtection','on') end
Строение мастера можно запустить из командной строки MATLAB.
Перед вызовом скрипта необходимо открыть модель и создать экземпляр cs
объект, который передается в качестве аргумента скрипту. После запуска скрипта можно вызвать процесс сборки с помощью slbuild
команда. Следующий пример открывает, конфигурирует и создает модель.
open my_model; cs = getActiveConfigSet ('my_model'); rtwsampleconfig(cs); slbuild('my_model');