Сконфигурируйте сгенерированный код с TLC

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

Примечание

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

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

The %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

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

RemoveFixptWordSizeChecks = value

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

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

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

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

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

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

WarnNonSaturatedBlocks = value

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

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

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

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

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

Можно задать опции командной строки TLC для генерации кода, используя параметр модели TLCOptions в set_param вызов функции. Для получения дополнительной информации об этих опциях смотрите Задать TLC для Генерации кода и Сконфигурировать TLC.

Похожие темы