Сгенерируйте пользовательские файловые и функциональные баннеры для кода 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. Просмотрите шаблон по умолчанию и сгенерированный выход. Для примера приведем раздел Файла по умолчанию 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
     */
    

  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

См. также

Похожие темы