slbuild

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

Описание

пример

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

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

пример

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

пример

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

пример

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

пример

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

Примеры

свернуть все

Сгенерируйте код С для модели 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

'none'

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

Установка параметраРезультаты
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

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

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

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

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

  • Соблюдает установку параметра Rebuild на панели Model Referencing диалогового окна Configuration Parameters.

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

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

buildSpecСоздайте действие

'StandaloneCoderTarget'

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

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

'ModelReferenceSimTarget'

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

'ModelReferenceCoderTarget'

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

'ModelReferenceCoderTargetOnly'

Сборки только цель Simulink Coder модели - ссылки.

'CleanTopModel'

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

Пример: 'ModelReferenceSimTarget'

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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'.

Типы данных: логический

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

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

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

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

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

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

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

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

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

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

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

Зависимости

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

Типы данных: логический

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

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

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

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

Зависимости

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

Типы данных: логический

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

свернуть все

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

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

развернуть все

Поведение изменяется в R2020b

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

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

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