Продукт 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 блоки Справочной таблицы и 2-е блоки Справочной таблицы. Можно изменить эти файлы определений шаблонов или при необходимости создать дополнительные шаблоны.
Процедура создания нового шаблона 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 методы вычисления преобразуют внутреннее представление измеренных и калибровочных величин электронного блока управления (ЭБУ) в представление, ориентированное на физическую модель. Программное обеспечение Simulink Coder™ предоставляет возможность настройки имен методов вычислений. Можно предоставить имена, которые являются более интуитивно понятными, улучшают удобочитаемость ASAP2 файлов или соответствуют организационным требованиям.
Для настройки имен методов вычислений используйте функцию MATLAB getCompuMethodName, которая определена в .matlabroot/toolbox/rtw/targets/asap2/asap2/user/getCompuMethodName.m
getCompuMethodName функция создает имя метода вычисления. Прототипом функции является
cmName = getCompuMethodName(dataTypeName, cmUnits)
где - имя типа данных, связанного с методом вычисления, dataTypeName - единицы измерения, указанные в cmUnitsUnit свойство 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
Версии 1.51 и более поздние спецификации ASAP2 гласят, что для определенных случаев описаний осей таблицы поиска (целочисленный тип данных и отсутствие единиц документации) метод вычисления не требуется, и параметр Conversion Method должен быть установлен в значение NO_COMPU_METHOD. Можно управлять подавлением методов вычислений при отсутствии необходимости с помощью параметра TLC (Target Language Compiler). 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