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

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

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

TLC включает:

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

Компилятор Выходного языка имеет общие черты с 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 or C++, вызывается посредством вызова функции. Смотрите Встроенные S-функции. Можно также записать конечные файлы для файлов языка MATLAB или S-функций Фортрана.

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

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

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

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

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

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

  • Заголовочные файлы (modelH)

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

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

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

Похожие темы