Продукт Embedded Coder® обеспечивает много файлов Компилятора выходного языка (TLC), чтобы позволить вам настроить файл ASAP2, сгенерированный из модели Simulink®.
ASAP2 имел отношение, файлы организованы в папках, идентифицированных ниже:
Файлы TLC для генерации файла ASAP2
(открытая) папка содержит файлы TLC, которые генерируют файлы ASAP2, matlabroot
/rtw/c/tlc/mwasamlib.tlc
, asap2lib.tlc
, asap2main.tlc
, и asap2grouplib.tlc
. Эти файлы включены установкой параметра конфигурации модели System target file. (См., что Системные Конечные файлы Поддерживают ASAP2.)
Конечные файлы ASAP2
(открытая) папка содержит системный конечный файл ASAP2 и другие файлы управления.matlabroot
/toolbox/rtw/targets/asap2/asap2
Настраиваемые файлы TLC
(открытая) папка содержит файлы, которые можно изменить, чтобы настроить содержимое файлов ASAP2.matlabroot
/toolbox/rtw/targets/asap2/asap2/user
Шаблоны ASAP2
(открытая) папка содержит шаблоны, которые задают каждый тип matlabroot
/toolbox/rtw/targets/asap2/asap2/user/templatesCHARACTERISTIC
в файле ASAP2.
ASAP2 связанные файлы TLC позволяют вам настроить внешний вид файла ASAP2, сгенерированного из модели Simulink. Большая часть индивидуальной настройки сделана путем изменения или добавления к файлам, содержавшимся в
(открытая) папка. Этот раздел называет эту папку matlabroot
/toolbox/rtw/targets/asap2/asap2/userasap2/user
папка.
Настраиваемые пользователем обеспеченные файлы разделены на две группы:
Статические файлы задают части файла ASAP2, которые связаны со средой, в которой используется сгенерированный код. Они описывают информацию, характерную для пользователя или проекта. Статические файлы не являются зависимым модели.
Динамические файлы задают части файла ASAP2, которые сгенерированы на основе структуры исходной модели.
Процедура для настройки файла ASAP2 следующие:
Сделайте копию asap2/user
папка прежде, чем сделать модификации.
Удалите старый asap2/user
папка от пути MATLAB®, или добавляют новый asap2/user
папка к пути MATLAB выше старой папки. Сеанс работы с MATLAB использует файл настройки ASAP2, asap2setup.tlc
, в новой папке.
asap2setup.tlc
задает папки и файлы, чтобы включать в путь TLC во время процесса генерации файла ASAP2. Измените asap2setup.tlc
управлять папками и папками, включенными в путь TLC.
Измените статические части файла 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
.
Внешний вид CHARACTERISTIC
записями в файле ASAP2 управляют с помощью различного шаблона для каждого типа CHARACTERISTIC
. asap2/user
папка содержит файлы определения шаблона для скаляров, блоков 1-D Lookup Table и блоков 2-D Lookup Table. Можно изменить эти файлы определения шаблона, или можно создать дополнительные шаблоны как требуется.
Процедура для создания нового шаблона ASAP2 следующие:
Создайте файл определения шаблона. Смотрите Создают Файлы Определения Шаблона.
Включайте файл определения шаблона в путь TLC. Путь задан в файле настройки ASAP2, asap2setup.tlc
.
В этом разделе описываются компоненты, которые составляют файл определения шаблона ASAP2. Это описание в форме примеров кода от asap2lookup1d.tlc
, файл определения шаблона для Lookup1D
шаблон. Этот шаблон соответствует Lookup1D
группа параметра.
Примечание
При создании нового шаблона используйте соответствующее название группы параметра вместо Lookup1D
в показанном коде.
Входной параметр является именем группы параметра, сопоставленной с этим шаблоном:
%<LibASAP2RegisterTemplate("Lookup1D")>
Имена размещения записи (псевдонимы) могут быть произвольно заданы для каждого типа данных. Эта функция используется другими компонентами этого файла.
%function ASAP2UserFcnRecordLayoutAlias_Lookup1D(dtId) void %switch dtId %case tSS_UINT8 %return "Lookup1D_UBYTE" ... %endswitch %endfunction
Эта функция пишет 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
Версии 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