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

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

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

Файловая структура ASAP2 на пути MATLAB

ASAP2 имел отношение, файлы организованы в папках, идентифицированных ниже:

  • Файлы TLC для генерации файла ASAP2

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

  • Конечные файлы ASAP2

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

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

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

  • Шаблоны ASAP2

    (Открытая) папка matlabroot/toolbox/rtw/targets/asap2/asap2/user/templates содержит шаблоны, которые задают каждый тип 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. Папка asap2/user содержит файлы определения шаблона для скаляров, 1D блоков Интерполяционной таблицы и 2D блоков Интерполяционной таблицы. Можно изменить эти файлы определения шаблона, или можно создать дополнительные шаблоны как требуется.

Процедура для создания нового шаблона 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 or 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 утверждают, что для определенных случаев описаний оси интерполяционной таблицы (целочисленный тип данных и никакие модули документа), метод вычисления не требуется, и параметр Метода Преобразования должен быть установлен на значение NO_COMPU_METHOD. Можно управлять, подавлены ли методы вычисления если не требуемое использование опции Компилятора выходного языка (TLC) ASAP2GenNoCompuMethod. Эта опция TLC отключена по умолчанию. Если вы включаете опцию, генерация файла ASAP2 не генерирует методы вычисления для описаний оси интерполяционной таблицы, если не требуемых, и вместо этого генерирует значение NO_COMPU_METHOD. Например:

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

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

Похожие темы