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

Чтобы записать TLC-код для вашей S-функции, необходимо понять процесс Target Language Compiler для генерации кода. Как описано ранее, Simulink® программное обеспечение генерирует model.rtw файл, который содержит частичное представление семантики выполнения блока. The model.rtw файл является ASCII-файлом, которая содержит структуру данных в виде вложенного набора записей TLC. Записи состоят из пар имя/значение свойства. Компилятор целевого языка читает model.rtw файл и преобразует его во внутреннее представление.

Далее Target Language Compiler запускает (интерпретирует) файлы TLC, начиная сначала с системного целевого файла, например grt.tlc. Это точка входа в систему TLC и блочные файлы, то есть другие файлы TLC, включенные в или сгенерированные из TLC файла, переданные в Target Language Compiler в его командной строке (grt.tlc). Когда запускается код TLC в системе и целевых файлах блоков, он использует, добавляет и изменяет существующие пары имя/значение свойства и записи, первоначально загруженные из model.rtw файл.

model.rtw Структура

Структура model.rtw файл отражает структуру блока:

  • Для каждой невиртуальной системы в модели существует соответствующая системная запись в model.rtw файл.

  • Для каждого невиртуального блока в невиртуальной системе существует запись блока в model.rtw файл в соответствующей системе.

Основная структура model.rtw является

CompiledModel {
  System {
    Block {
      DataInputPort {
        ...
      }
      DataOutputPort{
        ...
      }
      ParamSettings {
        ...
      }
      Parameter {
        ...
      }
    }
  }
}

Последовательность операций

Для каждого вхождения данного блока в модели соответствующая запись блока существует в model.rtw файл. Системный целевой файл TLC кода циклов через записи блоков и вызывает функции в соответствующем целевом файле блоков для этого типа блоков. Для inlined S-функций он вызывает inlining TLC файла.

Существует метод для получения специфичной для блока информации (внутренней блочной информации, в отличие от входов, выходов, параметров и т.д.) в блочную запись в model.rtw файл для блока при помощи mdlRTW функция в функции C MEX блока.

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

Похожие темы