Основы компилятора выходного языка

Обзор компилятора выходного языка

Компилятор выходного языка (TLC) является неотъемлемой частью генератора кода. Это позволяет вам настроить сгенерированный код. Посредством индивидуальной настройки можно произвести специфичный для платформы код, или можно включить собственные алгоритмические изменения для производительности, размера кода или совместимости с существующими методами.

TLC включает:

  • Файлы, соответствующие подмножеству обеспеченных блоков Simulink®.

  • Файлы для получения информации всей модели, которые задают информация о параметре и заголовок.

Файлами TLC являются ASCII-файлы, которые явным образом управляют способом, которым сгенерирован код. Путем редактирования файла TLC можно изменить способ, которым сгенерирован код.

Компилятор Выходного языка обеспечивает полный набор готовых к использованию файлов TLC для генерации ANSI® C или Кода С++. Можно просмотреть файлы TLC и внести незначительные или обширные изменения в них. Эта открытая среда обеспечивает огромную гибкость для настройки сгенерированного кода.

Для получения дополнительной информации смотрите Реализацию S-функции C/C++ (Simulink), который описывает, как записать перенесенные и полностью встроенные S-функции с акцентом на функцию mdlRTW().

Примечание

Не настраивайте файлы TLC в папке matlabroot/rtw/c/tlc, даже при том, что возможность существует. Такие индивидуальные настройки TLC не могут быть применены во время процесса генерации кода и могут привести к непредсказуемым результатам.

Обзор процесса TLC

Эта схема верхнего уровня показывает, как Компилятор Выходного языка помещается с процессом генерации кода.

Компилятор выходного языка (TLC) разработан, чтобы преобразовать образцовый файл описания model.rtw (или подобные файлы) в целевой код или текст.

Компилятор Выходного языка преобразовывает представление Диаграммы Simulink, названной model.rtw, в C или Код С++. Файл model.rtw содержит частичное представление модели. Представление описывает семантику выполнения блок-схемы в высокоуровневом языке. Для получения дополнительной информации см. model.rtw Файл и Осциллографы.

После чтения файла model.rtw Компилятор Выходного языка генерирует свой код на основе target files, которые задают конкретный код для каждого блока и model-wide files, которые задают полный стиль кода. TLC использует конечные файлы и файл model.rtw, чтобы сгенерировать ANSI C или Код С++.

Чтобы создать целевое приложение, генератор кода требует make-файла шаблона, который задает C или параметры компилятора C++ и параметры компилятора для процесса сборки. Генератор кода преобразовывает make-файл шаблона в целевой make-файл (model.mk) путем выполнения маркерного расширения, характерного для данной модели. Целевой make-файл является измененной версией типичного файла rt_main (или grt_main). Необходимо изменить grt_main, чтобы соответствовать конкретным требованиям цели, таким как процедуры обработки прерывания. Смотрите Make-файлы Шаблона и Сделайте Опции (Simulink Coder) и Настройте Make-файлы Шаблона (Simulink Coder).

Компилятор Выходного языка имеет общие черты с HTML, Perl и MATLAB®. Это имеет синтаксис разметки, подобный HTML, степень и гибкость Perl и других языков сценариев, и степень обработки данных MATLAB (TLC может вызвать функции MATLAB). Код, что сгенерированный TLC высоко оптимизирован и полностью прокомментирован. С TLC можно сгенерировать код из линейных, нелинейных, непрерывных, дискретных, или гибридных моделей Simulink. Модели могут включать блоки Simulink, которые автоматически преобразованы в код. Исключениями являются блоки MATLAB function и Блоки s-function, которые вызывают файлы MATLAB. Компилятор Выходного языка использует block target files, чтобы преобразовать каждый блок в файл model.rtw и model-wide target file для глобальной индивидуальной настройки кода.

Можно включить S-функции MEX C со сгенерированным кодом в исполняемый файл программы. Можно записать конечный файл для S-функции MEX C к inline S-функция (см. Встроенные S-функции MEX C), чтобы улучшать производительность путем устранения вызовов функции к самой S-функции и памяти наверху о theSimStruct S-функции. Встраивание S-функции включает код Блока s-function в сгенерированный код для модели. То, когда конечный файл TLC не присутствует для S-функции, это - файл C или Кода С++, вызывается посредством вызова функции. Смотрите Встроенные S-функции. Можно также записать конечные файлы для файлов языка MATLAB или S-функций Фортрана.

Обзор процесса генерации кода

Компилятор Выходного языка работает с его конечными файлами и генератором кода вывод, чтобы произвести код.

При генерации кода из модели Simulink первый шаг в автоматизированном процессе должен сгенерировать файл model.rtw. Файл model.rtw включает образцово-специфичную информацию, запрошенную для генерации кода из модели Simulink. model.rtw передается Компилятору Выходного языка, который использует его в сочетании с набором включенных системных конечных файлов и конечных файлов блока, чтобы сгенерировать код.

Только итоговый исполняемый файл записан непосредственно в текущую папку. Для других файлов, созданных во время генерации кода, включая файл model.rtw, используется папка сборки. Эту папку создают в текущей папке и называют model_target_rtw. target является сокращением от целевого окружения grt, который является типичной целью в реальном времени.

Файлы, помещенные в папку сборки, включают:

  • Тело для сгенерированного C или исходного кода C++ (model.c или model.cpp)

  • Заголовочные файлы (model.h)

  • Заголовочный файл параметры определения model_private.h и структуры данных, частные к сгенерированному коду

  • Make-файл, model.mk, для того, чтобы создать приложение

  • Дополнительные файлы, описанные в, Управляют Файлами Процесса сборки (Simulink Coder)

Похожие темы