exponenta event banner

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

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

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

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

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

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

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

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

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

Примечание

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

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

На этой диаграмме верхнего уровня показано соответствие компилятора целевого языка процессу создания кода.

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

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

После прочтения model.rtw компилятор целевого языка генерирует свой код на основе целевых файлов, в которых указывается конкретный код для каждого блока, и файлов всей модели, в которых указывается общий стиль кода. TLC использует целевые файлы и model.rtw для создания кода ANSI C или C++.

Для создания целевого приложения генератору кода требуется файл макета шаблона, определяющий параметры компилятора и компилятора C или C++ для процесса построения. Генератор кода преобразует файл макета шаблона в целевой файл макета (model.mk) путем выполнения расширения маркера, специфического для данной модели. Целевой файл makefile является измененной версией дженерик-программы rt_main файл (или grt_main). Необходимо изменить grt_main для соответствия конкретным требованиям целевого объекта, таким как процедуры обслуживания прерываний. См. разделы Makefiles и Make Options и Customize Template Makefiles.

Компилятор целевого языка имеет сходство с HTML, Perl и MATLAB ®. Он имеет синтаксис разметки, аналогичный HTML, мощь и гибкость Perl и других языков сценариев, а также способность обработки данных MATLAB (TLC может вызывать функции MATLAB). Код, сгенерированный TLC, оптимизирован и полностью комментирован. С помощью TLC можно генерировать код из линейных, нелинейных, непрерывных, дискретных или гибридных моделей Simulink. Модели могут включать блоки Simulink, которые автоматически преобразуются в код. Исключениями являются функциональные блоки MATLAB и S-функциональные блоки, которые вызывают файлы MATLAB. Компилятор целевого языка использует целевые файлы блоков для преобразования каждого блока в model.rtw файл и целевой файл для всей модели для глобальной адаптации кода.

Можно включить S-функции C MEX с сгенерированным кодом в исполняемый файл программы. Вы можете написать целевой файл для вашей C MEX S-функции, чтобы встроить S-функцию (см. Inline C MEX S-Functions), чтобы повысить производительность за счет исключения вызовов самой S-функции и накладных расходов на памятьSimStruct S-функции. Включение S-функции включает S-функциональный блочный код в сгенерированный код для модели. Если целевой файл TLC отсутствует для S-функции, то при вызове функции вызывается файл кода C или C++. См. раздел Встроенные S-функции. Также можно записать целевые файлы для языковых файлов MATLAB или S-функций Fortran.

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

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

При создании кода из модели 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 определение параметров и структур данных, закрытых для сгенерированного кода

  • Makefile, model.mk, для построения приложения

  • Дополнительные файлы, описанные в разделе Управление файлами процесса построения

Связанные темы