Настройте обработку сборки постгенерации кода

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

Рабочий процесс для подготовки индивидуальных настроек

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

  1. Программируйте команду генерации кода сообщения.

  2. Задайте команду генерации кода сообщения.

  3. Подавите генерацию make-файла, если применимо.

  4. Создайте модель.

  5. Измените команду и восстановите модель, пока результаты сборки не будут приемлемы.

Создайте информационный объект

В начале сборки модели процесс сборки регистрирует следующую опцию сборки и информацию о зависимостях к временному информационному объекту сборки:

  • Параметры компилятора

  • Определения идентификатора препроцессора

  • Опции компоновщика

  • Исходные файлы и пути

  • Включайте файлы и пути

  • Предварительно скомпилированные внешние библиотеки

Можно получить информацию из и добавить информацию в этот объект при помощи обширного набора функций. Для списка доступных функций и подробных функциональных описаний, смотрите Индивидуальную настройку Процесса сборки (Simulink Coder). Программируйте Команду Генерации кода Сообщения, объясняет, как использовать функции, чтобы управлять обработкой сборки генерации кода сообщения.

Программируйте команду генерации кода сообщения

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

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

Если вы программируете команду как a:Затем:
СкриптСкрипт может получить доступ к имени модели и информации о сборке непосредственно
ФункцияФункция может передать имя модели и информацию о сборке в качестве аргументов

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

Можно затем вызвать комбинацию функций информации о сборке, как перечислено в Индивидуальной настройке Процесса сборки (Simulink Coder), чтобы настроить обработку сборки генерации кода сообщения модели.

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

function analyzegencode(buildInfo)
% Get the names and paths of source and include files
% generated for the model and then analyze them.

% buildInfo - build information for my model.

% Define cell array to hold data.
MyBuildInfo={};

% Get source file information.
MyBuildInfo.srcfiles=getSourceFiles(buildInfo, true, true);
MyBuildInfo.srcpaths=getSourcePaths(buildInfo, true);

% Get include (header) file information.
MyBuildInfo.incfiles=getIncludeFiles(buildInfo, true, true);
MyBuildInfo.incpaths=getIncludePaths(buildInfo, true);

% Analyze generated code.
.
.
.

Задайте команду генерации кода сообщения

После того, как вы программируете команду генерации кода сообщения, сообщите процессу сборки, что команда существует и добавить его в обработку сборки модели. Задайте команду с параметром конфигурации модели PostCodeGenCommand. Когда вы задаете команду генерации кода сообщения, процесс сборки оценивает команду после генерации и записи сгенерированного кода к диску и прежде, чем сгенерировать make-файл.

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

Примечание

При определении команды как функции можно задать произвольное число входных параметров. Чтобы передать имя и информацию о сборке модели к функции, задайте идентификаторы modelName и buildInfo в качестве аргументов.

Скрипт

set_param(model, 'PostCodeGenCommand',...
'pcgScriptName');

Функция

set_param(model, 'PostCodeGenCommand',...
 'pcgFunctionName(modelName)');

Несколько функций

pcgFunctions=...
'pcgFunction1Name(modelName);...
pcgFunction2Name(buildInfo)';
set_param(model, 'PostCodeGenCommand',...
 pcgFunctions);

Следующий вызов set_param задает PostCodGenCommand, чтобы оценить функциональный analyzegencode.

set_param(model, 'PostCodeGenCommand',...
'analyzegencode(buildInfo)');

Настройте процесс сборки с PostCodeGenCommand и переместите сгенерированный код к внешней среде

Этот пример показывает, как использовать API информации о Сборке и параметр Команды Генерации кода Сообщения, PostCodeGenCommand.

Значением параметров PostCodeGenCommand является rtwdemo_buildinfo_data. Это значение направляет процесс сборки, чтобы вызвать функцию после генерации кода.

Пример также демонстрирует, как использовать API rtwmakecfg.m.

Для получения дополнительной информации нажмите на ссылки на документацию в модели.

Открытая модель в качестве примера

Откройте модель rtwdemo_buildinfo в качестве примера.

open_system('rtwdemo_buildinfo');

Сгенерируйте код из модели

Дважды кликните на кнопке Generate Code Using Simulink Coder, чтобы сгенерировать код для цели GRT.

Или, если Embedded Coder установлен, дважды кликните на кнопке Generate Code Using Embedded Coder, чтобы сгенерировать код для цели ERT.

Процесс сборки генерирует файл BuildInfo.html, чтобы зарегистрировать информационный объект сборки.

Исследуйте индивидуальные настройки процесса сборки и Вывод

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

Чтобы просмотреть файл BuildInfo.html в веб-браузере, нажмите на Open BuildInfo.html.

Пример использует параметр PostCodeGenCommand модели, чтобы сгенерировать файл HTML от информационного объекта сборки. Файл обеспечивает гиперссылки, чтобы открыть исходные файлы (сгенерированный код) из модели. Чтобы просмотреть значение параметров PostCodeGenCommand, введите:

get_param('rtwdemo_buildinfo','PostCodeGenCommand');

Это значение указывает на функцию, чтобы выполниться на этапе Команды Генерала Сообщения Кода.

rtwdemo_buildinfo_data(buildInfo);

Чтобы учиться, как пример использует API rtwmakecfg, нажмите на Open rtwmakecfg.m или тип:

edit rtwmakecfg.m;

Чтобы изучить API для объекта buildInfo.mat, нажмите на Open rtwdemo_buildinfo_data.m или тип:

edit rtwdemo_buildinfo_data.m;

Объект buildInfo.mat доступен в:

rtwdemo_<target>_rtw\buildInfo.mat

В конце функции генерации кода сообщения rtwdemo_buildinfo_data.m функция вызывает packNGo, чтобы группировать источник и объекты, идентифицированные в объекте buildInfo для перемещения.

Далее изучите темы

Подавите генерацию make-файла

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

Чтобы дать генератору кода команду не производить make-файл, выполнить одно из следующих действий:

  • Очистите опцию Generate makefile на панели Code Generation диалогового окна Configuration Parameters.

  • Установите значение параметра конфигурации GenerateMakefile к off.

Когда вы подавляете генерацию make-файла,