Когда вы генерируете C и Код С++ из кода MATLAB®, можно использовать файл шаблона генерации кода (CGT), чтобы задать пользовательский:
Баннеры файла
Функциональные баннеры
Трейлеры файла
Комментарии перед секциями кода
Этот пример показывает, как можно создать собственный файл CGT и настроить его, чтобы сгенерировать собственный файл и функциональные баннеры.
Создайте локальную копию файла CGT по умолчанию для MATLAB Coder™ и переименуйте его. Файлом CGT по умолчанию является matlabcoder_default_template.cgt
в папке
.matlabroot/toolbox/coder/matlabcoder/templates/
Сохраните копию в папке, которая является за пределами структуры папок MATLAB, но на пути MATLAB. При необходимости добавьте папку в путь MATLAB. Если вы намереваетесь использовать файл CGT с пользовательской целью, определить местоположение файла CGT в папке под вашей целевой корневой папкой. Если файл не находится на пути MATLAB, задайте полный путь к файлу при добавлении файла в настройку.
Просмотрите шаблон по умолчанию и сгенерированный вывод. Например, вот раздел File Banner по умолчанию:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Custom File Banner section (optional)
%% Customize File banners by using either custom tokens or the following
%% predefined tokens:
%% %<FileName>, %<MATLABCoderVersion>, %<EmbeddedCoderVersion>
%% %<SourceGeneratedOn>, %<HardwareSelection>, %<OutputType>
%%
%% You can also use "custom tokens" in all of the sections below. See the
%% documentation center for more details.
%%
<FileBanner style="classic">
File: %<FileName>
MATLAB Coder version : %<MATLABCoderVersion>
C/C++ source code generated on : %<SourceGeneratedOn>
</FileBanner>
Когда вы генерируете код с помощью этого значения по умолчанию, баннер файла выглядит подобным этому баннеру файла:/*
* File: coderand.c
*
* MATLAB Coder version : 2.7
* C/C++ source code generated on : 06-Apr-2014 14:34:15
*/
Отредактируйте свою локальную копию файла CGT. Можно изменить значения по умолчанию и добавить собственные лексемы. Например, вот раздел File Banner со стилем, измененным на
box
и пользовательский маркерный myCustomToken
:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Custom File Banner section (optional)
%% Customize File banners by using either custom tokens or the following
%% predefined tokens:
%% %<FileName>, %<MATLABCoderVersion>, %<EmbeddedCoderVersion>
%% %<SourceGeneratedOn>, %<HardwareSelection>, %<OutputType>
%%
%% You can also use "custom tokens" in all of the sections below. See the
%% documentation center for more details.
%%
<FileBanner style="box">
File: %<FileName>
My custom token : %<myCustomToken>
MATLAB Coder version : %<MATLABCoderVersion>
C/C++ source code generated on : %<SourceGeneratedOn>
</FileBanner>
Для получения дополнительной информации смотрите Файлы Шаблона Генерации кода для кода MATLAB.
Создайте объект настройки для генерации статической библиотеки C для целевого процессора.
% Create configuration object for an embedded target
cfgObj = coder.config('lib','ecoder',true);
Создайте объект
MATLABCodeTemplate
из своего файла CGT и добавьте его в объект настройки.
% Specify the custom CGT file
CGTFile = 'myCGTFile.cgt';
% Use custom template
cfgObj.CodeTemplate = coder.MATLABCodeTemplate(CGTFile);
Присвойте значения для пользовательских лексем, которые вы добавили в шаблон. Например, присвойте значение
'myValue'
лексеме myCustomToken
, которую вы добавили на предыдущем шаге.
cfgObj.CodeTemplate.setTokenValue('myCustomToken','myValue');
Убедитесь, что генерация комментариев включена. В противном случае генератор кода не производит файл или функциональные баннеры.
cfgObj.GenerateComments=true;
Сгенерируйте код с помощью объекта настройки, что вы создали.
codegen -config cfgObj coderand
Просмотрите изменения в сгенерированном баннере файла. Например, вот баннер файла для
coderand.c
с помощью индивидуально настраиваемого файла CGT:
/******************************************************************************/
/* File: coderand.c */
/* */
/* My custom token : myValue */
/* */
/* MATLAB Coder version : 2.7 */
/* C/C++ source code generated on : 06-Apr-2014 14:42:55 */
/******************************************************************************/
Изменения в файле CGT не влияют на сгенерированный код, если вы не создаете объект
MATLABCodeTemplate
из измененного файла CGT, и затем добавляете его в объект настройки. Если вы изменяете Файл CGT, myCGTFile.cgt
, используемый в предыдущем примере, необходимо повторить эти шаги:
Создайте объект MATLABCodeTemplate
из myCGTFile.cgt
и добавьте его в объект настройки.
CGTFile = 'myCGTFile.cgt';
cfgObj.CodeTemplate = coder.MATLABCodeTemplate(CGTFile);
Присвойте значение 'myValue'
лексеме myCustomToken
.
cfgObj.CodeTemplate.setTokenValue('myCustomToken','myValue');
Сгенерируйте код.
codegen -config cfgObj coderand
Смотрите также
Похожие темы