Когда вы генерируете C и Код С++ из MATLAB® код, можно использовать файл шаблона генерации кода (CGT), чтобы задать пользовательский:
Файловые баннеры
Функциональные баннеры
Файловые трейлеры
Комментарии перед секциями кода
В этом примере показано, как вы можете создать свой собственный файл CGT и настроить его, чтобы сгенерировать свои собственные файловые и функциональные баннеры.
Создайте локальную копию файла CGT по умолчанию для MATLAB Coder™ и переименуйте его. По умолчанию CGT- файла является matlabcoder_default_template.cgt
в
папка.matlabroot
/ toolbox/coder/matlabcoder/templates/
Сохраните копию в папке, которая находится вне структуры папки MATLAB, но в пути MATLAB. При необходимости добавьте папку в путь MATLAB. Если вы хотите использовать файл CGT с пользовательским объектом, найдите файл CGT в папке в целевой корневой папке. Если файл не указан в пути MATLAB, укажите полный путь к файлу при добавлении файла к вашему строению.
Просмотрите шаблон по умолчанию и сгенерированный выход. Для примера приведем раздел Файла по умолчанию 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. Вы можете изменить значения по умолчанию и добавить свои собственные пользовательские лексемы. Например, вот раздел «Файл» со стилем, измененным на 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