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

Обзор компилятора целевого языка

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

TLC включает в себя:

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

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

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

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

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

Примечание

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

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

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

Target Language Compiler (TLC) предназначен для преобразования файла описания модели model.rtw (или подобные файлы) в специфичный для целевого объекта код или текст.

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

После чтения model.rtw Target Language Compiler генерирует свой код на основе target files, которые задают конкретный код для каждого блока, и model-wide files, которые задают общий стиль кода. TLC использует целевые файлы и model.rtw файл для генерации кода ANSI C или C++.

Чтобы создать целевое приложение, генератору кода требуется шаблон 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-функции C MEX с сгенерированным кодом в исполняемый файл программы. Можно записать целевой файл для вашей C MEX S-функции, чтобы inline S-функцию (см. Inline C MEX S-Functions), улучшить эффективность, исключив вызовы функций к самой S-функции и накладные расходы на память SimStruct S-функции. Вставка S-функции включает код Блока s-function в сгенерированный код для модели. Когда целевой файл TLC отсутствует для S-функции, это файл кода C or C++ вызывается вызовом функции. См. Встроенные S-функции. Можно также записать целевые файлы для языковых файлов MATLAB или S-функций Фортран.

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

Target Language Compiler работает со своими целевыми файлами и выходом кода, выводит код.

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

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

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

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

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

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

  • make-файл, model.mk, для создания приложения

  • Дополнительные файлы, описанные в Manage Build Process Files

Похожие темы