Когда вы генерируете 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