exponenta event banner

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

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

Затем компилятор целевого языка запускает (интерпретирует) файлы TLC, начиная с системного целевого файла, например: grt.tlc. Это точка входа в системные файлы TLC и блокировки, то есть другие файлы TLC, включенные в файл TLC или сгенерированные из него, переданные компилятору целевого языка в его командной строке (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-код проходит цикл через записи блоков и вызывает функции в соответствующем целевом файле блоков для этого типа блоков. Для встроенных S-функций он вызывает встроенный файл TLC.

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

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

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