exponenta event banner

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 в соответствии с одним или несколькими аргументами «имя-значение».

Примеры

свернуть все

Создание кода C для модели 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

ничего

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

Настройка параметровРезультаты
Окно «Создание кода» > «Создать только код» очищеноИсполняемый файл rtwdemo_rtwintro.exe
Создание кода > Отчет > Создание отчета по созданию кодаПоявится отчет, содержащий информацию и ссылки на сгенерированные файлы кода, отчеты об интерфейсах подсистемы и кода, функции точки входа, входы, выходы, параметры интерфейса и хранилища данных.

В этом примере показано, как использовать 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)

Создание кода C для подсистемы 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) диалогового окна Параметры конфигурации (Configuration Parameters).

  • Лицензия Simulink Coder требуется только в том случае, если создается целевой объект Simulink Coder для привязки модели, а не только в том случае, если создается целевой объект моделирования для привязки модели.

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

buildSpecДействие построения

'StandaloneCoderTarget'

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

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

'ModelReferenceSimTarget'

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

'ModelReferenceCoderTarget'

Построение привязки модели Simulink Coder target и соответствующей модели reference simulation target.

'ModelReferenceCoderTargetOnly'

Создает только привязку модели Simulink Coder target.

'CleanTopModel'

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

Пример: 'ModelReferenceSimTarget'

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

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

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

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

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

«Значение» StartThisModelReferureTarget «»Эквивалентный вариант перестроенияПерестроить действие

'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

Если значение не указано, используется только команда «Создать код» (GenCodeOnly) на панели «Создание кода» управляет поведением процесса построения.

При указании значения аргумент переопределяет только параметр «Создать код» (GenCodeOnly) на панели «Создание кода»:

  • true -- Создать только код.

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

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

Опция для построения целевых объектов моделирования привязки модели, заданная как разделенная запятыми пара, состоящая из 'IncludeModelReferenceSimulationTargets' и true или false.

Зависимости

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

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

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

свернуть все

Дескриптор блока для автоматически созданного блока оболочки S-Function.

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

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

В R2020b изменилось поведение

Не рекомендуется начинать с R2019a

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

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