rtwbuild

(Не рекомендуемый) Создать сгенерированный код из модели

rtwbuild не рекомендуется. Использовать slbuild вместо этого.

Описание

пример

rtwbuild(model) генерирует код из model на основе текущих настроек параметров конфигурации модели. Если model не загружен в MATLAB® окружение, rtwbuild загружает его перед генерацией кода.

Если вы очищаете параметр конфигурации модели Generate code only, функция генерирует код и создает исполняемый образ.

Чтобы уменьшить время генерации кода, при перестройке модели, rtwbuild обеспечивает инкрементальную сборку модели. Генератор кода перестраивает модель или подмодели только тогда, когда они изменились со времени последней сборки модели. Чтобы принудительно создать сборку топовой модели, смотрите 'ForceTopModelBuild' аргумент.

пример

rtwbuild(model,Name,Value) использует дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар.

пример

rtwbuild(subsystem) генерирует код из subsystem на основе текущих настроек параметров конфигурации модели. Прежде чем инициировать сборку, откройте (или загрузите) родительскую модель.

Если вы очищаете параметр конфигурации модели Generate code only, функция генерирует код и создает исполняемый образ.

пример

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

пример

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

Примеры

свернуть все

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

rtwbuild('rtwdemo_rtwintro')

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

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

rtwdemo_rtwintro.c

rtwdemo_rtwintro.h

rtwdemo_rtwintro_private.h

rtwdemo_rtwintrotypes.h

rtGetInf.c

rtGetInf.h

rtGetNaN.c

rtGetNaN.h

rt_nonfinite.c

rt_nonfinite.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 выбранОтчет, который предоставляет информацию и ссылки на файлы сгенерированного кода, отчеты подсистемы и интерфейса кода, функции точки входа, inports, outports, параметры интерфейса и хранилища данных

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

rtwbuild('rtwdemo_mdlreftop', ...
    'ForceTopModelBuild',true)

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

rtwbuild('rtwdemo_rtwintro/Amplifier')

Для цели GRT генератор кода создает следующие файлы кода и помещает их в папки Amplifier_grt_rtw и slprj/grt/_sharedutils.

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

Amplifier.c

Amplifier.h

Amplifier_private.h

Amplifier_types.h

rtGetInf.c

rtGetInf.h

rtGetNaN.c

rtGetNaN.h

rt_nonfinite.c

rt_nonfinite.h

rtwtypes.h

multiword_types.h

builtin_typeid_types.h

rtmodel.h

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

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

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

rtwdemo_exporting_functions
rtwbuild('rtwdemo_exporting_functions/rtwdemo_subsystem','Mode','ExportFunctionCalls')

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

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

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

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

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

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

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

rtwdemo_exporting_functions
rtwbuild('rtwdemo_exporting_functions/rtwdemo_subsystem',...
'Mode','ExportFunctionCalls','ExportFunctionInitializeFunctionName','subsysinit')

Имя функции инициализации subsysinit появляется в rtwdemo_subsystem_ert_rtw/ert_main.c.

Отобразите информацию о сборке в окне Build Status при генерации кода и запуске параллельной сборки модели rtwdemo_mdlreftop_witherr.

rtwbuild('rtwdemo_mdlreftop_witherr', ...
    'OpenBuildStatusAutomatically',true)

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

свернуть все

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

Пример: 'rtwdemo_exporting_functions'

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

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

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

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

Пример: rtwbuild('rtwdemo_mdlreftop','ForceTopModelBuild',true)

Принудительная регенерация верхней части модели, заданная как true или false.

ДействиеОпределить
Заставьте генератор кода регенерировать код для верхней модели системы, которая включает ссылочные модели true
Задайте, что генератор кода определяет, регенерировать ли код верхней модели, на основе изменений параметров модели и модели false

Рассмотрите принудительную регенерацию кода для верхней части, если вы изменяете элементы, связанные с внешним или пользовательским кодом, например, код для пользовательского целевого объекта. Для примера задайте ForceTopModelBuild на true если вы измените:

  • Код TLC

  • Исходный код S-функции, включая rtwmakecfg.m файлы

  • Интегрированный пользовательский код

Также можно форсировать регенерацию кода верхней модели путем удаления папок в папке генерации кода, таких как slprj или сгенерированная папка кода модели.

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

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

ДействиеОпределить

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

true

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

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

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

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

Пример: rtwbuild (subsystem, 'Mode', 'ExportFunctionCalls', 'ExportFunctionInitializeFunctionName', fcnname)

Отображение информации о сборке в окне Build Status, заданное как true или false. Дополнительные сведения об использовании окна Состояние сборки см. в разделе Мониторинг параллельного построения ссылочных Моделях.

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

ДействиеОпределить
Отображение информации о сборке в окне Build Statustrue
Никаких действийfalse

Задайте, генерировать ли запутанный код С, заданный как true или false.

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

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

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

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

свернуть все

Указатель на блок SIL, созданный для сгенерированного кода подсистемы. Возвращается только в том случае, если применяются оба из следующих условий:

  • Вы имеете лицензию на использование программного обеспечения Embedded Coder.

  • Create block параметра конфигурации модели установлено на SIL.

Совет

Вы можете инициировать генерацию кода и процесс сборки путем:

  • Нажатие Ctrl+B.

  • Выбор Code > C/C++ Code > Build Model.

  • Вызов slbuild команда из командной строки MATLAB.

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

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

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

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

Введенный в R2009a