Используя файлы шаблона генерации кода (CGT), можно задать пользовательские баннеры файла и функциональные баннеры для файлов сгенерированного кода. Баннеры файла являются разделами комментария в заголовке и разделами трейлера сгенерированного файла. Функциональные баннеры являются разделами комментария для каждой функции в сгенерированном коде. Используйте эти баннеры, чтобы добавить оператор авторского права компании, задать символ специальной версии для вашей системы управления конфигурацией, удалить метки времени, и во многих других целях. Эти баннеры могут содержать символы, которые распространяют к сгенерированному коду.
Чтобы задать баннеры, создайте пользовательский файл CGT с индивидуально настраиваемыми разделами баннера. Процесс сборки создает исполняемый файл TLC из файла CGT. Процесс генерации кода затем вызывает файл TLC.
Вы не должны быть знакомы с TLC, программирующим, чтобы сгенерировать пользовательские баннеры. Можно изменить файлы в качестве примера, которые предоставляются целью ERT.
Предшествующие релизы поддержали прямое использование индивидуально настраиваемых файлов TLC как шаблоны баннера. Вы задали их с Исходным файлом (.c) шаблон баннера и Заголовочный файл (.h) опции шаблона баннера цели ERT. Можно все еще использовать пользовательский шаблон баннера файла TLC, однако, можно теперь использовать файлы CGT вместо этого.
Опции шаблона ERT на Code Generation> панель Templates конфигурации модели, в разделе Code templates, поддерживают генерацию баннера.
Опции для функции и генерации баннера файла:
Шаблоны кода: Исходный файл (*.c) шаблон: файл CGT, чтобы использовать при генерации источника (.c
или .cpp
) файлы. Поместите этот файл в путь MATLAB®.
Шаблоны кода: Заголовочный файл (*.h) шаблон: файл CGT, чтобы использовать при генерации заголовка (.h
) файлы. Необходимо поместить этот файл в путь MATLAB. Этот файл может быть тем же шаблоном, заданным в поле Code templates: Source file (*.c) template, в этом случае идентичные баннеры сгенерированы в исходных и заголовочных файлах.
По умолчанию шаблоном и для исходных и для заголовочных файлов является
.matlabroot
/toolbox/rtw/targets/ecoder/ert_code_template.cgt
В каждом из этих полей нажмите Browse, чтобы перейти к и выбрать существующий файл CGT для использования в качестве шаблона. Нажмите Edit, чтобы открыть заданный файл в редактор MATLAB, где можно настроить его.
Чтобы настроить файл CGT для пользовательской генерации баннера, сделайте локальную копию шаблона кода по умолчанию и отредактируйте его, можно следующим образом:
Активируйте конфигурацию модели, с которой вы хотите работать.
Откройте панель Code Generation активной конфигурации модели.
Кликните по вкладке Templates.
По умолчанию шаблоном кода, заданным в полях Code templates: Source file (*.c) template и Code templates: Header file (*.h) template, является
.matlabroot
/toolbox/rtw/targets/ecoder/ert_code_template.cgt
Если вы хотите использовать различный шаблон в качестве своей начальной точки, нажмите Browse, чтобы определить местоположение и выбрать файл CGT.
Нажмите кнопку Edit, чтобы открыть файл CGT в редактор MATLAB.
Сохраните локальную копию файла CGT. Сохраните копию в папке, которая является за пределами структуры папок MATLAB, но на пути MATLAB. При необходимости добавьте папку в путь MATLAB.
Если вы намереваетесь использовать файл CGT с пользовательской целью, определить местоположение файла CGT в папке под вашей целевой корневой папкой.
Переименуйте свою локальную копию файла CGT. Когда вы переименовываете файл CGT, обновляете связанное поле Code templates: Source file (*.c) template или Code templates: Header file (*.h) template, чтобы совпадать с новым именем файла.
Отредактируйте и настройте локальную копию файла CGT для генерации баннера, использование информации, предоставленной в, Настраивает Файл Шаблона генерации кода (CGT) для Файла и Функциональной Генерации Баннера.
Сохраните свои изменения в файле CGT.
Нажмите Apply, чтобы обновить конфигурацию модели.
Сохраните свою модель.
Сгенерируйте код. Исследуйте сгенерированный источник и заголовочные файлы, чтобы подтвердить, что они содержат баннеры, заданные шаблоном или шаблонами.
В этом разделе описывается отредактировать файл CGT для пользовательского файла и функциональной генерации баннера. Для описания файлов CGT смотрите Файлы Шаблона генерации кода (CGT).
В файле CGT можно изменить следующие разделы: баннер файла, функциональный баннер, совместно использовал баннер служебной функции и трейлер файла. Каждый раздел задан открытыми и близкими тегами. Теги, характерные для каждого раздела, показывают в следующей таблице.
Раздел файла CGT | Открытый тег | Закройте тег |
---|---|---|
Баннер файла | <FileBanner> | </FileBanner> |
Функциональный баннер | <FunctionBanner> | </FunctionBanner> |
Разделяемо-служебный баннер | <SharedUtilityBanner> | </SharedUtilityBanner> |
Трейлер файла | <FileTrailer> | </FileTrailer> |
Можно настроить баннеры включением лексем и комментариев между открытым и близким тегом для каждого раздела. Лексемы обычно являются переменными TLC, например, <ModelVersion>
, которые заменяются значениями в сгенерированном коде.
Включая C комментируют индикаторы, '/*' или '* / ', в содержимом вашего баннера может ввести ошибку в сгенерированном коде.
Открытый тег включает атрибуты тега. Заключите значение атрибута в двойных кавычках. Атрибуты, доступные для открытого тега:
width
: задает ширину файла или функциональных комментариев баннера в сгенерированном коде. Значение по умолчанию равняется 80.
style
: задает контур для файла или функциональных комментариев баннера в сгенерированном коде.
Открытый синтаксис тега следующие:
<OpenTag
style = “style_value”
width = “num_width”
>
Если параметр Configuration Parameters > Code Generation > Language устанавливается на C++
, выбрать стиль комментария, который использует обозначение комментария C (/*...*/
), необходимо также установить параметр Configuration Parameters > Comments > Comment style на Multi-line
.
Встроенные параметры стиля для style
атрибут:
classic
/* single line comments */ /* * multiple line comments * second line */
classic_cpp
// single line comments // // multiple line comments // second line //
box
/**********************************************************/ /* banner contents */ /**********************************************************/
box_cpp
//////////////////////////////////////////////////////////// // banner contents // ////////////////////////////////////////////////////////////
open_box
/********************************************************** * banner contents **********************************************************/
open_box_cpp
//////////////////////////////////////////////////////////// // banner contents ////////////////////////////////////////////////////////////
doxygen
/** single line comments */ /** * multiple line comments * second line */
doxygen_cpp
/// single line comments /// /// multiple line comments /// second line ///
doxygen_qt
/*! single line comments */ /*! * multiple line comments * second line */
doxygen_qt_cpp
//! single line comments //! //! multiple line comments //! second line //!
Этот раздел содержит комментарии и лексемы для использования в генерации пользовательского баннера файла. Баннер файла предшествует коду C or C++, сгенерированному моделью. Если вы не используете раздел баннера файла из файла CGT, то никакой баннер файла не испускает к сгенерированному коду.
Если вы настраиваете свой баннер файла, программное обеспечение не испускает индивидуально настраиваемый баннер для файла const_params.c
.
Следующий раздел является разделом баннера файла, которому предоставляют файл CGT по умолчанию,
.matlabroot
/toolbox/rtw/targets/ecoder/ert_code_template.cgt
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Custom file banner section (optional) %% <FileBanner style="classic"> File: %<FileName> Code generated for Simulink model %<ModelName>. Model version : %<ModelVersion> Simulink Coder version : %<RTWFileVersion> TLC version : %<TLCVersion> C/C++ source code generated on : %<SourceGeneratedOn> %<CodeGenSettings> </FileBanner>
Сводные данные лексем для генерации баннера файла
| Имя сгенерированного файла (например, |
| Любой |
| Учитывая имена файлов |
| Имя генерации модели. |
| Номер версии модели. |
| Номер версии |
| Метка времени |
| Версия компилятора выходного языка. |
| Метка времени сгенерированного файла. |
| Настройки генерации кода для модели: выходной язык, целевой выбор, производственный аппаратный выбор, тестирует аппаратный выбор, цели генерации кода (в порядке приоритетов), и Советник Генерации кода результат валидации. |
Этот раздел содержит комментарии и лексемы для использования в генерации пользовательского функционального баннера. Функциональный баннер предшествует C или функции C++, сгенерированной во время процесса сборки. Если вы не используете функциональный раздел баннера из файла CGT, функциональный баннер по умолчанию испускает к сгенерированному коду. Следующий раздел является функциональным разделом баннера по умолчанию, которому предоставляют файл CGT по умолчанию,
.matlabroot
/toolbox/rtw/targets/ecoder/ert_code_template.cgt
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Custom function banner section (optional) %% Customize function banners by using the following predefined tokens: %% %<ModelName>, %<FunctionName>, %<FunctionDescription>, %<Arguments>, %% %<ReturnType>, %<GeneratedFor>, %<BlockDescription>. %% <FunctionBanner style="classic"> %<FunctionDescription> %<BlockDescription> </FunctionBanner>
Сводные данные лексем для функциональной генерации баннера
| Имя функции |
| Список аргументов функции |
| Возвратите тип функции |
| Имя генерации модели |
| Короткий краткий обзор о функции |
| Полный блок path для сгенерированной функции |
| Ввод данных пользователем от параметра Block Description диалогового окна свойств блока. %<BlockDescription style = "content_only"> |
Разделяемый раздел баннера служебной функции содержит комментарии и лексемы для использования в генерации пользовательского разделяемого баннера служебной функции. Разделяемый баннер служебной функции предшествует C, или C++ совместно использовал служебную функцию, сгенерированную во время процесса сборки. Если вы не используете разделяемый раздел баннера служебной функции из файла CGT, совместно использованный баннер служебной функции значения по умолчанию испускает к сгенерированному коду. Следующий раздел является совместно использованным разделом баннера служебной функции значения по умолчанию, которому предоставляют файл CGT по умолчанию,
.matlabroot
/toolbox/rtw/targets/ecoder/ert_code_template.cgt
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Custom shared utility function banner section (optional) %% Customize banners for functions generated in shared location by using the %% following predefined tokens: %<FunctionName>, %<FunctionDescription>, %% %<Arguments>, %<ReturnType>. %% <SharedUtilityBanner style="classic"> %<FunctionDescription> </SharedUtilityBanner>
Сводные данные лексем для разделяемой генерации баннера служебной функции
| Имя функции |
| Список аргументов функции |
| Возвратите тип функции |
| Короткий краткий обзор о функции |
Раздел трейлера файла содержит комментарии для генерации пользовательского трейлера файла. Трейлер файла следует за кодом C or C++, сгенерированным из модели. Если вы не используете раздел трейлера файла из файла CGT, никакой трейлер файла не испускает к сгенерированному коду. Следующий раздел является трейлером файла по умолчанию, обеспеченным в файле CGT по умолчанию.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Custom file trailer section (optional) %% <FileTrailer style="classic"> File trailer for generated code. [EOF] </FileTrailer>
Лексемы, доступные для баннера файла, доступны для трейлера файла. См. Сводные данные Лексем для Генерации Баннера Файла.