slbuild

Создайте независимый исполняемый файл файл или цель модели-ссылки для модели

Описание

пример

slbuild(model) создает автономный Simulink® Coder™ двоичный исполняемый файл из указанной модели, используя текущие настройки параметра конфигурации. Если модель не загружена, slbuild загружает модель перед началом процесса сборки.

slbuild(model,buildSpec) создает автономный исполняемый файл Simulink Coder из модели в соответствии с заданным действием генерации кода.

пример

slbuild(model,Name,Value) создает автономный исполняемый файл Simulink Coder из модели, заданный одним или несколькими аргументами имя-значение.

пример

blockHandle = slbuild(subsystem) генерирует код подсистемы и создает двоичный исполняемый файл Simulink Coder с помощью текущих настроек параметров конфигурации вашей модели. Если выбранный системный целевой файл создает блок S-Function, функция возвращает непустой указатель на блок в автогенерированный оболочку S-Function. Перед запуском команды необходимо открыть или загрузить родительскую модель.

пример

blockHandle = slbuild(subsystem,'Mode','ExportFunctionCalls') генерирует код из подсистемы, который включает вызовы функций, которые можно экспортировать во внешний код приложения. Эта команда требует Embedded Coder®. Если для параметра конфигурации Create block задано значение SILфункция возвращает указатель в блок SIL. Затем можно использовать блок SIL для численной проверки эквивалентности.

пример

blockHandle = slbuild(subsystem,Name,Value) генерирует код подсистемы и создает двоичный исполняемый файл Simulink Coder, заданный одним или несколькими аргументами имя-значение.

Примеры

свернуть все

Сгенерируйте код С для rtwdemo_rtwintro модели.

slbuild('rtwdemo_rtwintro')
% Same operation as ...
% slbuild('rtwdemo_rtwintro','StandaloneCoderTarget') 

Для типового целевого устройства в реальном времени (GRT) кодер генерирует эти файлы кода и помещает их в папки rtwdemo_rtwintro_grt_rtw и slprj/grt/_sharedutils.

Файлы моделиОбщие файлыИнтерфейсные файлыДругие файлы

rtwdemo_rtwintro.c

rtwdemo_rtwintro.h

rtwdemo_rtwintro_private.h

rtwdemo_rtwintrotypes.h

rtwtypes.h

multiword_types.h

builtin_typeid_types.h

rtmodel.h

ничего

Если применяются следующие настройки параметров конфигурации модели, кодер генерирует дополнительные результаты.

Установка параметровРезультаты
Code Generation > Generate code only панель очищенаИсполняемые файлы rtwdemo_rtwintro.exe
Code Generation > Report > Create code generation report выбранПоявляется отчет, предоставляющий информацию и ссылки на файлы сгенерированного кода, отчеты подсистемы и интерфейса кода, функции точки входа, входные порты, выходные порты, параметры интерфейса и хранилища данных

В этом примере показано, как использовать slbuild чтобы сгенерировать исполняемый код для двух моделей, sldemo_mdlref_depgraph и rtwdemo_counter. sldemo_mdlref_depgraph является верхней моделью, которая ссылается на модели. В примере также показано, как создать ссылку на модели параллельно.

Создайте локальную папку.

if exist(fullfile('.','myTempFolder'),'dir')
    rmdir('myTempFolder','s')
end
mkdir myTempFolder
cd myTempFolder

Копировать sldemo_mdlref_depgraph, который ссылается на модели, в локальную папку.

src_dir = fullfile(matlabroot, ...
                   'toolbox', ...
                   'simulink', ...
                   'simdemos', ...
                   'simfeatures', ...
                   'modelreference');
copyfile(fullfile(src_dir, ...
                  'sldemo_mdlref_depgraph.slx'), ...
                  '.');

Включите параллельное создание моделей, на которые ссылаются sldemo_mdlref_depgraph.

load_system('sldemo_mdlref_depgraph')
set_param('sldemo_mdlref_depgraph', ...
'EnableParallelModelReferenceBuilds', 'on');

Инициализация MATLAB® рабочие для параллельного создания ссылочных моделей.

set_param('sldemo_mdlref_depgraph', ...
          'ParallelModelReferenceMATLABWorkerInit', ...
          'Copy Base Workspace');

Создайте модели.

slbuild({'sldemo_mdlref_depgraph', 'rtwdemo_counter'})

В myTempFolderпроцесс сборки создает автономные исполняемые файлы, sldemo_mdlref_depgraph.exe и rtwdemo_counter.exe.

Для каждой модели в Командном окне процесс сборки отображает сводные данные сборки.

Сгенерируйте код и создайте исполняемый файл для rtwdemo_mdlreftop, который относится к модели rtwdemo_mdlrefbot, независимо от контрольных сумм модели и настроек параметра.

slbuild('rtwdemo_mdlreftop','StandaloneCoderTarget', ...
    'ForceTopModelBuild',true)

Сгенерируйте код С для Amplifier подсистемы в rtwdemo_rtwintro модели.

rtwdemo_rtwintro
slbuild('rtwdemo_rtwintro/Amplifier')

Генератор кода производит файлы кода в Amplifier_grt_rtw и slprj/grt/_sharedutils папки.

В текущей рабочей папке процесс сборки создает исполняемый файл (Amplifier.exe).

Чтобы экспортировать вызовы функций в код внешнего приложения, создайте исполняемый файл из подсистемы вызова функций.

rtwdemo_exporting_functions
set_param('rtwdemo_exporting_functions','GenCodeOnly','off');
slbuild('rtwdemo_exporting_functions/rtwdemo_subsystem','Mode','ExportFunctionCalls')

Исполняемый файл rtwdemo_subsystem.exe появится в рабочей папке.

Из подсистемы вызова функций создайте блок SIL, который можно использовать, чтобы протестировать код, сгенерированный из модели.

Откройте rtwdemo_subsystem подсистемы в rtwdemo_exporting_functions модели и установите параметр конфигурации Create block равным SIL.

Создайте блок SIL.

mysilblockhandle = slbuild('rtwdemo_exporting_functions/rtwdemo_subsystem',...
'Mode','ExportFunctionCalls')

Генератор кода производит блок SIL для сгенерированного кода подсистемы. Можно добавить блок к окружению или тестовой обвязке модели, которая поставляет тестовые векторы или вход стимула. Затем можно запустить симуляции, которые выполняют тесты SIL и проверяют, что сгенерированный код в блоке SIL дает тот же результат, что и исходная подсистема.

Входные параметры

свернуть все

Если вы задаете имя модели как указатель или вектор символов, процесс сборки создает файл независимого исполняемого файла или цели модели-ссылки.

Если вы задаете несколько моделей через массив ячеек из указателей или векторов символов, применяется процесс сборки buildSpec к каждой модели в массиве ячеек.

Пример: gcs

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

Можно задать несколько подсистем через массив ячеек с указателями или векторами символов

Пример: 'rtwdemo_exporting_functions/rtwdemo_subsystem'

buildSpec указывает генератору кода выполнить выбранное действие сборки для модели и процесса сборки:

  • Учитывает настройку параметра Rebuild на панели Model Referencing диалогового окна Параметров конфигурации.

  • Требуется лицензия Simulink Coder только, если вы строите модель-ссылку цель Simulink Coder, но не, если вы строите только модель-ссылка цель симуляции.

The buildSpec аргумент должен быть одним из следующих.

buildSpecДействие сборки

'StandaloneCoderTarget'

Создает автономный бинарный исполняемый файл Simulink Coder для указанной модели, используя текущие настройки конфигурации модели. Он также создает целевые модели-ссылки кодера для моделей-ссылок.

Если заданная модель не загружена, slbuild загружает его перед началом процесса сборки.

'ModelReferenceSimTarget'

Создает модель-ссылку цель симуляции (не требует лицензии Simulink Coder).

'ModelReferenceCoderTarget'

Создает модель-ссылку цель Simulink Coder и соответствующую модель-ссылку цель симуляции.

'ModelReferenceCoderTargetOnly'

Создает только модель-ссылка цель Simulink Coder.

'CleanTopModel'

Очищает область сборки модели достаточно, чтобы запустить регенерацию кода верхней модели при следующей сборке.

Пример: 'ModelReferenceSimTarget'

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'UpdateThisModelReferenceTarget','Force'

Опция условного перестроения для модели-ссылки сборки, заданная как разделенная запятой пара, состоящая из 'UpdateThisModelReferenceTarget' и 'Force', 'IfOutOfDateOrStructuralChange', или 'IfOutOfDate'.

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

Значение 'UpdateThisModelReferenceTarget'Эквивалентная опция перестроенияПерестроить действие

'Force'

Always

Безоговорочно перестраивает модель.

'IfOutOfDateOrStructuralChange'

If any changes detected

Перестраивает модель, если процесс сборки обнаруживает какие-либо изменения.

'IfOutOfDate'

If any changes in known dependencies detected

Перестраивает модель, если процесс сборки обнаруживает какие-либо изменения в известных зависимостях этой модели.

Дополнительные сведения о различных опциях перестроения см. в разделе Перестроение.

Пример: 'UpdateThisModelReferenceTarget','Force'

Зависимости

Чтобы использовать эту опцию, задайте buildSpec на 'ModelReferenceSimTarget', 'ModelReferenceCoderTarget', или 'ModelReferenceCoderTargetOnly'.

Типы данных: char | string

Опция для принудительного создания верхней модели иерархии модели, заданная как разделенная разделенными запятой парами, состоящая из 'ForceTopModelBuild' и true или false.

Установка значения true указывает генератору кода сгенерировать код и создать исполняемый файл для верхней модели иерархии модели, независимо от контрольных сумм модели и настроек параметра.

Пример: 'ForceTopModelBuild',true

Зависимости

Чтобы использовать эту опцию, задайте buildSpec на 'StandaloneCoderTarget'.

Типы данных: logical

Если вы не задаете значение, Generate code only (GenCodeOnly) на панели Code Generation управляет поведением процесса сборки.

Если вы задаете значение, аргумент переопределяет Generate code only (GenCodeOnly) опция на панели Code Generation:

  • true -- Сгенерируйте только код.

  • false -- Сгенерируйте код и создайте исполняемый файл.

  • 'ExportFunctionCalls' - Если у вас есть Embedded Coder, генерирует код из subsystem который включает вызовы функций, которые можно экспортировать во внешний код приложения.

  • 'Normal' - Не экспортирует вызовы функций.

Назовите экспортированную функцию для указанной подсистемы.

Пример: slbuild (subsystem, 'Mode', 'ExportFunctionCalls', 'ExportFunctionFileName', fcnname)

Опция для отображения информации о сборке, заданная как разделенная разделенными запятой парами, состоящая из 'OpenBuildStatusAutomatically' и true или false.

Чтобы отобразить информацию о сборке в окне Build Status, задайте true. Значение по умолчанию является false. Дополнительные сведения об использовании окна состояния см. в разделе «Мониторинг параллельного построения ссылочных моделей» (Simulink Coder).

Окно Build Status поддерживает параллельные сборки ссылочных иерархий модели. Не используйте окно Build Status для последовательных сборок.

Зависимости

Чтобы использовать эту опцию, задайте buildSpec на 'StandaloneCoderTarget'.

Типы данных: logical

Укажите, генерировать ли запутанный код С:

  • true - Сгенерируйте запутанный код С, которым вы можете делиться с третьими лицами с меньшей вероятностью ущерба интеллектуального свойства.

  • false - Сгенерированный код C не запутан.

Опция для построения модели-ссылки симуляции целей, заданная как разделенная запятой пара, состоящая из 'IncludeModelReferenceSimulationTargets' и true или false.

Зависимости

Чтобы использовать эту опцию, задайте buildSpec на 'StandaloneCoderTarget'.

Типы данных: logical

Выходные аргументы

свернуть все

Блокируйте указатель на автогенерированный блок оболочки S-Function.

Вопросы совместимости

расширить все

Поведение изменено в R2020b

Не рекомендуемый запуск в R2019a

Расширенные возможности

Представлено до R2006a