Компилятор выходного языка (TLC) работает с программным обеспечением Simulink®, чтобы сгенерировать код.
TLC program является набором ASCII-файлов по имени scripts. Поскольку TLC является интерпретированным языком, нет никаких объектных файлов. Файл единой цели, который вызывает (с %include
директива), другие конечные файлы, используемые для программы, называется entry point.
TLC интерпретирует набор конечных файлов, чтобы преобразовать частичное представление модели Simulink (
) в целевой код.model
.rtw
Конечные файлы предоставляют вам гибкость, чтобы настроить код, сгенерированный компилятором. Например, если вы используете доступные системные конечные файлы, вы производите типовой код C or C++ из своей модели Simulink. Этот исполняемый код не специфичен для платформы.
Примечание
Не настраивайте файлы TLC даже при том, что возможность существует, чтобы сделать так. Такие индивидуальные настройки TLC не могут быть применены во время процесса генерации кода и могут привести к непредсказуемым результатам. Настройте только файлы TLC, которые вы создаете.
Параметры в конечных файлах читаются из
файл и искавший при помощи правил определения областей видимости блока. Можно задать дополнительные параметры в конечных файлах при помощи model
.rtw%assign
оператор.
Используйте директивы выходного языка, чтобы записать конечные файлы. Директивы компилятора Выходного языка предоставляют полные описания правил области действия блока и директив выходного языка.
Файл model.rtw и Осциллографы описывают model.rtw
файл, который полезен для создания и изменения конечных файлов.
В контексте генерации кода существует два типа конечных файлов:
Системные конечные файлы
Системные конечные файлы определяют полную среду генерации кода. Они определяют, когда блоки выполняются, как данные регистрируются и так далее.
Блокируйте конечные файлы
Каждый блок имеет конечный файл, который определяет, какой код должен быть сгенерирован для блока. Код может варьироваться в зависимости от точных параметров блока или типов связей с ним (e.g., широкий по сравнению со скалярным входом). Для получения дополнительной информации см. Методы Конечного файла Блока
Вы используете конечные файлы всей модели на базисе всей модели. Конечные файлы всей модели предоставляют основную информацию TLC, который преобразовывает
файл в целевой код.model
.rtw
Системный конечный файл является точкой входа для TLC. Это походит на main()
стандартная программа программы C. Системные конечные файлы наблюдают за целым процессом генерации кода. Например, системный конечный файл grt.tlc
настраивает некоторые переменные для codegenentry.tlc
, который является точкой входа в системные конечные файлы. Для полного списка доступных системных конечных файлов смотрите, Сравнивают Системную Поддержку Конечного файла Через продукты.
Используйте конечные файлы для:
Встройте 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"
Сгенерированный код помещается в функцию подсистемы или модель. Соответствующие сгенерированные имена функций и их порядок выполнения описаны в Подписании Кода, Сгенерированного из Модели, и Конфигурируют генерацию кода C для Функций Точки входа Модели. Во время генерации кода выполняются функции от каждого из конечных файлов блока, и сгенерированный код помещается в функции подсистемы или модель.