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

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

Примечание

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

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

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

%assign MaxStackSize = 4096

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

Для описания %assign оператор, см. Директивы компилятора Выходного языка (Simulink Coder). Запишите свой %assign операторы в Configure RTW code generation settings раздел системного конечного файла.

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

Компилятор выходного языка дополнительные переменные  

Переменная

Описание

MaxStackSize=N

Когда флажок Enable local block outputs (Simulink Coder) устанавливается, общий размер выделения локальных переменных, которые объявляются блоком выходными параметрами в модели, не может превысить 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 со ссылкой на целевой компьютер. Для получения дополнительной информации смотрите Верификацию Предположений Генерации кода.

WarnNonSaturatedBlocks=value

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

  • 0 — Предупреждение не выведено.

  • 1 — Выводит одно предупреждение для модели во время генерации кода

  • 2 — Выводит одно предупреждение, которое содержит список оскорбления блоков

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

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

Похожие темы