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