Зачем использовать компилятор целевого языка?

Если вам просто нужно произвести ANSI® Код C or C++ из Simulink® модели, вам не нужно знать, как подготовить файлы для Target Language Compiler. Если необходимо настроить выход, необходимо запустить Target Language Compiler. С помощью Target Language Compiler можно:

  • Настройте набор опций, заданный в вашем системном целевом файле.

  • Введите код для блоков S-Function.

  • Сгенерируйте дополнительные или различные типы файлов.

Блок MATLAB Function и Embedded Coder® продукт облегчает индивидуальную настройку кода различными способами. Вы можете выполнить то, что вам нужно с ними, без необходимости записи файлов TLC. Однако вам нужно подготовить файлы TLC, если вы намерены встроить S-функции.

См. следующие разделы.

Настройка выхода

Чтобы создать пользовательский выход с помощью Target Language Compiler, это помогает, если вы понимаете, как блоки выполняют свои функции, какими типами данных манипулируются, структурой model.rtw файл, и как изменить целевые файлы, чтобы получить требуемый выход. Директивы и встроенные функции на Target Language Compiler, описывают директивы целевого языка и связанные с ними конструкции. Вы будете использовать директивы и конструкции Компилятора целевого языка, чтобы изменить существующие целевые файлы или создать новые таковые, в зависимости от ваших потребностей. Дополнительные сведения о целевых файлах см. в разделе «Файлы TLC».

Примечание

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

Инкрустация S-функций

Target Language Compiler предоставляет большую свободу для изменения, оптимизации и улучшения сгенерированного кода. Одна из самых важных функций TLC заключается в том, что она позволяет встроить S-функции, которые вы записываете, чтобы добавить свои собственные алгоритмы, драйверы устройств и пользовательские блоки к модели Simulink.

Чтобы создать S-функцию, вы записываете код после четко определенного интерфейса прикладной программы (API). По умолчанию Target Language Compiler сгенерирует неинлинфицированный код для S-функций, который вызывает их с помощью этого же API. Этот обобщенный интерфейс несет изрядные накладные расходы из-за наличия большой структуры данных, называемой SimStruct для каждого образца каждого блока S-Function в вашей модели. В сложение дополнительные накладные расходы во время выполнения включаются всякий раз, когда вызываются методы (функции) в вашей S-функции. Можно устранить эти накладные расходы с помощью Target Language Compiler, чтобы встроить S-функцию, создав TLC-файл с именем sfunction_name.tlc который генерирует исходный код для S-функции, как если бы это был встроенный блок. Вставка S-функции повышает эффективность сгенерированного кода и уменьшает использование памяти.

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

Определенные размещения данных, такие как вложенные структуры, не могут быть сгенерированы с помощью стандартного Unstructured и FlatStructure типы классов памяти. Можно задать расширенный класс памяти, если необходимо сгенерировать другие типы данных. Создание расширенной классы хранения требует понимания программирования TLC и использования специального расширенного режима Custom Storage Class Designer. Для получения дополнительной информации смотрите Мелкое Управление Представлением Данных путем Записи Кода TLC для Класса памяти (Embedded Coder). Обратите внимание, что для этой поддержки требуется лицензия Embedded Coder.

Похожие темы