Настройка сгенерированного ASAP2 файла

Сведения о ASAP2 индивидуальной настройки файла

Embedded Coder® продукт предоставляет ряд файлов Target Language Compiler (TLC), чтобы вы могли настроить файл ASAP2, сгенерированный Simulink® модель.

ASAP2 файловой структуры в пути MATLAB

Связанные с ASAP2 файлы организованы в следующих папках:

  • TLC- файлов для генерации ASAP2 файла

    The matlabroot/ rtw/c/tlc/mw (open) папка содержит файлы TLC, которые генерируют файлы ASAP2, asamlib.tlc, asap2lib.tlc, asap2main.tlc, и asap2grouplib.tlc. Эти файлы включены в настройку параметра конфигурации модели System target file. (См. Системные целевые файлы, поддерживающие ASAP2.)

  • ASAP2 целевые файлы

    The matlabroot/ toolbox/rtw/targets/asap2/asap2 (open) папка содержит ASAP2 системный целевой файл и другие файлы управления.

  • Настраиваемые файлы TLC

    The matlabroot/ toolbox/rtw/targets/asap2/asap2/user (open) папка содержит файлы, которые можно изменить, чтобы настроить содержимое файлов ASAP2.

  • ASAP2 шаблоны

    The matlabroot/ toolbox/rtw/targets/asap2/asap2/user/templates (open) папка содержит шаблоны, которые определяют каждый тип CHARACTERISTIC в файле ASAP2.

Настройка содержимого файла ASAP2

Связанные с ASAP2 файлы TLC позволяют вам настроить внешний вид файла ASAP2, сгенерированного из модели Simulink. Большая часть индивидуальной настройки выполняется путем изменения или добавления к файлам, содержащимся в matlabroot/ toolbox/rtw/targets/asap2/asap2/user (откройте) папку. В этом разделе эта папка называется asap2/user папка.

Предоставляемые пользовательские файлы разделены на две группы:

  • Статические файлы определяют части файла ASAP2, которые связаны со окружением, в которой используется сгенерированный код. Они описывают информацию, относящуюся к пользователю или проекту. Статические файлы не зависят от модели.

  • Динамические файлы определяют части файла ASAP2, которые генерируются на основе структуры исходной модели.

Для настройки файла ASAP2 используется следующая процедура:

  1. Сделайте копию asap2/user папка перед внесением изменений.

  2. Удалите старые asap2/user папка из MATLAB® путь, или добавить новую asap2/user папка в путь MATLAB над старой папкой. В сеансе работы с MATLAB используется ASAP2 файл настройки, asap2setup.tlc, в новой папке.

    asap2setup.tlc задает папки и файлы, которые будут включены в путь TLC в процессе генерации ASAP2 файлов. Изменение asap2setup.tlc для управления папками и папками, включенными в путь TLC.

  3. Измените статические части файла ASAP2. Они включают в себя

    • Символы проекта и заголовка, которые указаны в asap2setup.tlc

    • Статические разделы файла, такие как заголовок и конец файла, A2ML, MOD_COMMON, и так далее Они указаны в asap2userlib.tlc.

    • Задайте внешний вид динамического содержимого файла ASAP2 путем изменения существующих шаблонов ASAP2 или путем определения новых шаблонов ASAP2. Разделы ASAP2 файла включают

      RECORD_LAYOUT: изменение частей файлов шаблона ASAP2.

      CHARACTERISTIC: изменение частей файлов шаблона ASAP2. Для получения дополнительной информации об изменении внешнего вида CHARACTERISTIC записи, см. ASAP2 шаблонов.

    • MEASUREMENT: Они указаны в asap2userlib.tlc.

    • COMPU_METHOD: Они указаны в asap2userlib.tlc.

ASAP2 шаблонов

Внешний вид CHARACTERISTIC записи в файле ASAP2 управляются с помощью другого шаблона для каждого типа CHARACTERISTIC. The asap2/user папка содержит файлы определений шаблонов для скаляров, блоков 1-D Lookup Table и блоков 2-D Lookup Table. Можно изменять эти файлы определений шаблонов или создавать дополнительные шаблоны по мере необходимости.

Процедура создания нового шаблона ASAP2 следующая:

  1. Создайте файл определения шаблона. См. «Создание файлов определения шаблонов».

  2. Включите файл определения шаблона в путь TLC. Путь задан в файле настройки ASAP2, asap2setup.tlc.

Создание файлов определения шаблона

В этом разделе описываются компоненты, составляющие файл определения шаблона ASAP2. Это описание представлено в виде примеров кода из asap2lookup1d.tlc, файл определения шаблона для Lookup1D шаблон. Этот шаблон соответствует Lookup1D группа параметров.

Примечание

При создании нового шаблона используйте соответствующее имя группы параметров вместо Lookup1D в показанном коде.

Функция регистрации шаблонов

Входным параметром является имя группы параметров, связанной с этим шаблоном:

%<LibASAP2RegisterTemplate("Lookup1D")>

RECORD_LAYOUT определения имени

Имена размещений записей (псевдонимы) могут быть произвольно заданы для каждого типа данных. Эта функция используется другими компонентами этого файла.

%function ASAP2UserFcnRecordLayoutAlias_Lookup1D(dtId) void
  %switch dtId
  %case tSS_UINT8
    %return "Lookup1D_UBYTE"
  ...
  %endswitch
%endfunction

Функция для записи определений RECORD_LAYOUT

Эта функция записывает RECORD_LAYOUT определения, связанные с этим шаблоном. Функция вызывается встроенными функциями, участвующими в процессе генерации ASAP2 файлов. Имя функции должно быть определено как показано на рисунке с именем шаблона после подчеркивания:

%function ASAP2UserFcnWriteRecordLayout_Lookup1D() Output
  /begin RECORD_LAYOUT 
%<ASAP2UserFcnRecordLayoutAlias_Lookup1D(tSS_UINT8)>
    ...
  /end   RECORD_LAYOUT
%endfunction

Функция для записи ХАРАКТЕРИСТИКИ

Эта функция записывает CHARACTERISTIC связана с этим шаблоном. Функция вызывается встроенными функциями, участвующими в процессе генерации ASAP2 файлов. Имя функции должно быть задано как показано на рисунке, с именем шаблона после подчеркивания.

Входной параметр этой функции является указателем на запись группы параметров. Показанный пример предназначен для Lookup1D группа параметров, которая имеет два представителей. Ссылки на связанные x и y записи данных получаются из записи группы параметров, как показано на рисунке.

Эта функция вызывает ряд встроенных функций, чтобы получить необходимую информацию. Для примера, LibASAP2GetSymbol возвращает символ (имя) для указанной записи данных:

%function ASAP2UserFcnWriteCharacteristic_Lookup1D(paramGroup) 
Output
  %assign xParam = paramGroup.Member[0].Reference
  %assign yParam = paramGroup.Member[1].Reference
  %assign dtId = LibASAP2GetDataTypeId(xParam)
    /begin CHARACTERISTIC
     /* Name */              %<LibASAP2GetSymbol(xParam)>
     /* Long identifier */   "%<LibASAP2GetLongID(xParam)>"
     ...
    /end CHARACTERISTIC
%endfunction

Настройка имен методов расчетов

В сгенерированных файлах ASAP2 методы расчета переводят электронный модуль управления (ECU) внутреннее представление измерения и калибровочных величин в ориентированное на физическую модель представление. Программное обеспечение Simulink Coder™ предоставляет возможность настраивать имена методов расчетов. Можно задать имена, которые более интуитивно понятны, улучшая удобство чтения ASAP2 файлов, или имена, которые отвечают организационным требованиям.

Чтобы настроить имена методов расчетов, используйте функцию MATLAB getCompuMethodName, который определен в matlabroot/ toolbox/rtw/targets/asap2/asap2/user/getCompuMethodName.m.

getCompuMethodName функция создает имя метода расчета. Прототип функции

cmName = getCompuMethodName(dataTypeName, cmUnits)

где dataTypeName - имя типа данных, сопоставленного с методом расчетов, cmUnits - модули, заданные в Unit свойство Simulink.Parameter или Simulink.Signal объект (для примера, rpm или m/s), и cmName возвращает имя построенного метода расчета.

Построенное по умолчанию имя, возвращенное функцией, имеет формат

<localPrefix><datatype>_<cmUnits>

где

  • <local_Prefix> является локальным префиксом, CM_, заданный в matlabroot/ toolbox/rtw/targets/asap2/asap2/user/getCompuMethodName.m.

  • <datatype> и <cmUnits> являются аргументами, заданными в getCompuMethodName функция.

Кроме того, в сгенерированном файле ASAP2 построенное имя префиксируется с <ASAP2CompuMethodName_Prefix>, префикс модели, заданный в matlabroot/ toolbox/rtw/targets/asap2/asap2/user/asap2setup.tlc.

Для примера, если вы вызываете getCompuMethodName функция со dataTypeName аргумент 'int16' и cmUnits аргумент 'm/s', и сгенерировать файл ASAP2 для модели с именем myModelимя метода расчета появится в сгенерированном файле следующим образом:

/begin COMPU_METHOD
   /* Name of CompuMethod */ myModel_CM_int16_m_s
   /* Units */ "m/s"
   ...
/end COMPU_METHOD

Подавление методов расчета для FIX_AXIS

Версии 1.51 и более поздние из спецификации ASAP2 утверждают, что для определенных случаев описания осей интерполяционной таблицы (целочисленный тип данных и отсутствие модулей измерения doc) не требуется метод расчета, и параметр Conversion Method должен быть установлен на значение NO_COMPU_METHOD. Можно контролировать, подавляются ли методы расчета, когда это не требуется, с помощью опции Target Language Compiler (TLC) ASAP2GenNoCompuMethod. Эта опция TLC отключена по умолчанию. Если вы включите эту опцию, ASAP2 генерация файлов не генерирует методы расчета для описаний осей интерполяционной таблицы, когда это не требуется, и вместо этого генерирует значение NO_COMPU_METHOD. Для примера:

/begin CHARACTERISTIC
/* Name            */
lu1d_fix_axisTable_data
...
/begin AXIS_DESCR
    ...	
    /* Conversion Method    */
NO_COMPU_METHOD
    ...
/end CHARACTERISTIC

The ASAP2GenNoCompuMethod опция задана в matlabroot/ toolbox/rtw/targets/asap2/asap2/user/asap2setup.tlc.

Похожие темы