Продукт Embedded Coder® обеспечивает много файлов Компилятора выходного языка (TLC), чтобы позволить вам настроить файл ASAP2, сгенерированный из модели Simulink®.
ASAP2 имел отношение, файлы организованы в папках, идентифицированных ниже:
Файлы TLC для генерации файла ASAP2
(Открытая) папка
содержит файлы TLC, которые генерируют файлы ASAP2, matlabroot/rtw/c/tlc/mw
asamlib.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/templates
CHARACTERISTIC
в файле ASAP2.
ASAP2 связанные файлы TLC позволяют вам настроить внешний вид файла ASAP2, сгенерированного из модели Simulink. Большая часть индивидуальной настройки сделана путем изменения или добавления в файлы, содержавшиеся в
(открытой) папки. Этот раздел называет эту папку папкой matlabroot/toolbox/rtw/targets/asap2/asap2/user
asap2/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
содержит файлы определения шаблона для скаляров, 1D блоков Интерполяционной таблицы и 2D блоков Интерполяционной таблицы. Можно изменить эти файлы определения шаблона, или можно создать дополнительные шаблоны как требуется.
Процедура для создания нового шаблона 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>
где
Кроме того, в сгенерированном файле 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