Настройте сгенерированный файл 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 папка содержит файлы определения шаблона для скаляров, блоков 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 or Simulink.Signal объект (например, rpm или m/s), и cmName возвращает созданное имя метода расчета.

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

<localPrefix><datatype>_<cmUnits>

где

Кроме того, в сгенерированном файле 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.

Похожие темы