Компилятор выходного языка (TLC) работает с программным обеспечением Simulink®, чтобы сгенерировать код.
TLC program является набором ASCII-файлов по имени scripts. Поскольку TLC является интерпретированным языком, нет никаких объектных файлов. Файл единой цели, который вызывает (с директивой %include
) другие конечные файлы, используемые для программы, называется entry point.
TLC интерпретирует набор конечных файлов, чтобы преобразовать частичное представление модели Simulink (
) в целевой код.model.rtw
Конечные файлы предоставляют вам гибкость, чтобы настроить код, сгенерированный компилятором. Например, если вы используете доступные системные конечные файлы, вы производите типичный C или Код С++ из вашей модели Simulink. Этот исполняемый код не специфичен для платформы.
Не настраивайте файлы TLC даже при том, что возможность существует, чтобы сделать так. Такие индивидуальные настройки TLC не могут быть применены во время процесса генерации кода и могут привести к непредсказуемым результатам. Настройте только файлы TLC, которые вы создаете.
Параметры в конечных файлах читаются из файла
и ищутся при помощи правил определения областей видимости блока. Можно задать дополнительные параметры в конечных файлах при помощи оператора model.rtw
%assign
.
Используйте директивы выходного языка, чтобы записать конечные файлы. Директивы компилятора Выходного языка предоставляют полные описания правил области действия блока и директив выходного языка.
Файл model.rtw и Осциллографы описывают файл model.rtw
, который полезен для создания и изменения конечных файлов.
В контексте генерации кода существует два типа конечных файлов:
Системные конечные файлы
Системные конечные файлы определяют полную среду генерации кода. Они определяют, когда блоки выполняются, как данные регистрируются и так далее.
Блокируйте конечные файлы
Каждый блок имеет конечный файл, который определяет, какой код должен быть сгенерирован для блока. Код может отличаться в зависимости от точных параметров блока или типов связей с ним (например, широкий по сравнению со скалярным входом). Для получения дополнительной информации см. Методы Конечного файла Блока
Вы используете конечные файлы всей модели на основе всей модели. Конечные файлы всей модели предоставляют основную информацию TLC, который преобразовывает файл
в целевой код.model.rtw
Системный конечный файл является точкой входа для TLC. Это походит на стандартную программу main()
программы C. Системные конечные файлы наблюдают за целым процессом генерации кода. Например, системный конечный файл, grt.tlc
настраивает некоторые переменные для codegenentry.tlc
, который является точкой входа в системные конечные файлы. Для полного списка доступных системных конечных файлов смотрите, Сравнивают Системную Поддержку Конечного файла Через продукты (Simulink Coder).
Используйте конечные файлы для:
Встройте S-функцию
Встраивание S-функции означает записывать конечный файл блока, который сообщает TLC, как сгенерировать код для того Блока s-function. Компилятор может сгенерировать код для невстроенных S-функций MEX C. Если вы встраиваете S-функцию MEX C, компилятор может сгенерировать более эффективный код. Невстроенные S-функции MEX C выполняются при помощи прикладного программного интерфейса (API) S-функции и могут быть неэффективными. Можно встроить файл MATLAB® или S-функцию Фортрана. TLC может сгенерировать код для S-функции в обоих случаях.
Настройте код, сгенерированный для всех моделей
Вы можете хотеть оснастить сгенерированный код для профилирования или внести другие изменения в полную генерацию кода для всех моделей. Чтобы выполнить такие изменения, измените некоторые системные конечные файлы.
Целый процесс генерации кода запускается с конечного файла единой системы, который вы задаете в диалоговом окне Configuration Parameters на панели Code Generation. Нажмите кнопку Browse, чтобы активировать системный браузер конечного файла с этой целью. Тщательное изучение системного конечного файла показывает, как генерация кода происходит. Этот листинг является списком нестрок с комментариями в grt.tlc
, конечный файл, чтобы сгенерировать код для типичного исполняемого файла в реальном времени.
%selectfile NULL_FILE %assign TargetType = "RT" %assign Language = "C" %assign MatFileLogging = 1 %include "codegenentry.tlc"
Эти три переменные, Language
, TargetType
, и MatFileLogging
, являются глобальными переменными TLC, которые используют другие функции. Генерация кода затем инициируется вызовом codegenentry.tlc
, основной точки входа для генерации кода.
Если вы хотите изменить полную генерацию кода, необходимо изменить системный конечный файл. После начальной настройки, вместо того, чтобы вызвать codegenentry.tlc
, необходимо вызвать собственные файлы TLC. Этот код показывает системный конечный файл в качестве примера под названием mygrt.tlc
.
%% Set up variables, etc. %% Load my library functions %% Note that mylib.tlc should %include funclib.tlc at the %% beginning. %include "mylib.tlc" %include "commonsetup.tlc" %% Next, you can include TLC files that you need for %% preprocessing information about the model and to fill in %% hooks. The following is an example of including a single %% TLC file that contains custom hooks. %include "myhooks.tlc" %% Finally, call the code generator. %include "commonentry.tlc"
Сгенерированный код помещается в функцию подсистемы или модель. Соответствующие сгенерированные имена функций и их порядок выполнения описаны в Подписании Кода, Сгенерированного из Модели (Simulink Coder), и Конфигурируют Генерацию кода для Образцовых Функций Точки входа (Simulink Coder). Во время генерации кода выполняются функции от каждого из конечных файлов блока, и сгенерированный код помещается в функции подсистемы или модель.