exponenta event banner

Создание пользовательских баннеров файлов и функций для кода C/C + +

При создании кода C и C++ из кода MATLAB ® можно использовать файл шаблона создания кода (CGT) для задания пользовательского:

  • Баннеры для файлов

  • Баннеры функций

  • Трейлеры файлов

  • Комментарии перед разделами кода

В этом примере показано, как можно создать собственный файл CGT и настроить его для создания собственного файла и баннеров функций.

  1. Создайте локальную копию файла CGT по умолчанию для MATLAB Coder™ и переименуйте ее. Файл CGT по умолчанию: matlabcoder_default_template.cgt в matlabroot/toolbox/coder/matlabcoder/templates/ папка.

  2. Сохраните копию в папке, которая находится вне структуры папок MATLAB, но по пути MATLAB. При необходимости добавьте папку к пути MATLAB. Если предполагается использовать CGT-файл с пользовательским целевым файлом, найдите CGT-файл в папке под конечной корневой папкой. Если файл отсутствует в пути MATLAB, укажите полный путь к файлу при добавлении файла в конфигурацию.

  3. Просмотр шаблона по умолчанию и созданных выходных данных. Например, вот раздел «Баннер файлов» по умолчанию:

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %% 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
     */
    

  4. Отредактируйте локальную копию файла 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.

  5. Создайте объект конфигурации для создания статической библиотеки C для встроенного целевого объекта.

    % Create configuration object for an embedded target
    cfgObj = coder.config('lib','ecoder',true); 
    

  6. Создать MATLABCodeTemplate объект из файла CGT и добавьте его в объект конфигурации.

    % Specify the custom CGT file
    CGTFile = 'myCGTFile.cgt';
    % Use custom template
    cfgObj.CodeTemplate = coder.MATLABCodeTemplate(CGTFile); 
    
  7. Назначьте значения для пользовательских маркеров, добавленных в шаблон. Например, присвойте значение 'myValue' в myCustomToken маркер, добавленный на предыдущем шаге.

    cfgObj.CodeTemplate.setTokenValue('myCustomToken','myValue');

  8. Убедитесь, что создание комментариев включено. В противном случае генератор кода не создает баннеры файлов или функций.

    cfgObj.GenerateComments=true;

  9. Создайте код с помощью созданного объекта конфигурации.

    codegen -config cfgObj coderand

  10. Просмотр изменений в созданном баннере файла. Например, вот баннер файла для 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, использованное в предыдущем примере, необходимо повторить следующие шаги:

  1. Создать MATLABCodeTemplate объект из myCGTFile.cgt и добавьте его в объект конфигурации.

    CGTFile = 'myCGTFile.cgt';
    cfgObj.CodeTemplate = coder.MATLABCodeTemplate(CGTFile); 
    
  2. Присвоение значения 'myValue' в myCustomToken токен.

    cfgObj.CodeTemplate.setTokenValue('myCustomToken','myValue');

  3. Создать код.

    codegen -config cfgObj coderand

См. также

Связанные темы