exponenta event banner

Конфигурирование сгенерированного кода с помощью TLC

Для точной настройки созданного кода можно использовать компилятор целевого языка (TLC). TLC поддерживает расширенные переменные и параметры генерации кода в дополнение к параметрам, доступным на панели Создание кода (Code Generation) в диалоговом окне Параметры конфигурации (Configuration Parameters). Существует два способа установки переменных и опций TLC, как описано в этом разделе.

Примечание

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

Назначение переменных компилятора целевого языка

%assign оператор позволяет назначить значение переменной TLC, как в:

%assign MaxStackSize = 4096

Это назначение также называется созданием пары имя/значение параметра.

Для описания %assign инструкции см. в разделе Директивы компилятора целевого языка. Напишите свой %assign операторы в Configure RTW code generation settings раздел целевого файла системы.

В следующей таблице перечислены переменные генерации кода, которые можно задать с помощью %assign заявление.

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

Переменная

Описание

MaxStackSize=N

Если установлен флажок Включить выходные данные локального блока (Enable local block outputs), общий размер распределения локальных переменных, объявленных выходными данными блока в модели, не может превышать MaxStackSize (в байтах). MaxStackSize может быть положительным целым числом. Если общий размер выходных переменных локального блока превышает этот максимум, остальные выходные переменные блока распределяются в глобальной, а не локальной памяти. Значение по умолчанию для MaxStackSize является rtInf, то есть неограниченный размер стека.

Примечание.Локальные переменные в сгенерированном коде из источников, отличных от выходных данных локального блока, например из диаграммы Stateflow ® или блока MATLAB Function, и использование стека из источников, таких как вызовы функций и переключение контекста, не включены в MaxStackSize расчет. Для общих показателей использования исполняемого стека выполните измерение для конкретного объекта с помощью анализа времени выполнения (эмпирического) или статического анализа (пути кода) с кодом объекта.

MaxStackVariableSize=N

Если установлен флажок Включить выходные данные локального блока, этот выбор ограничивает размер выходной переменной локального блока, объявленной в коде, до N байт, где N>0. Переменная, размер которой превышает MaxStackVariableSize выделяется в глобальной, а не локальной памяти. Значение по умолчанию - 4096.

RemoveFixptWordSizeChecks=value

Для модели, использующей типы данных с фиксированной точкой, управление генерацией директив препроцессора, выполняющих проверку размера слов с фиксированной точкой. Если value является:

  • 0, создайте директивы препроцессора. Созданный код содержит проверки размера слов с фиксированной точкой.

  • 1, подавить генерацию директив препроцессора. Созданный код не содержит проверки размера слова с фиксированной точкой.

Можно также подавить создание директив препроцессора, выполнив следующую команду:

set_param(gcs, 'TLCOptions', ...
          '-aRemoveFixptWordSizeChecks=1')

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

WarnNonSaturatedBlocks=value

Флажок для управления отображением предупреждений о переполнении для блоков, имеющих возможность насыщения, но отключенных (не выбранных) в диалоговом окне. Варианты включают в себя:

  • 0 - Предупреждение не отображается.

  • 1 - Отображает одно предупреждение для модели во время создания кода

  • 2 - отображает одно предупреждение, содержащее список блоков-нарушителей;

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

Параметры командной строки TLC для создания кода можно задать с помощью параметра модели TLCOptions в set_param вызов функции. Дополнительные сведения об этих параметрах см. в разделе Определение TLC для генерации кода и конфигурирования TLC.

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