Сконфигурируйте сгенерированный код с 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.

WarnNonSaturatedBlocks=value

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

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

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

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

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

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

Похожие темы