Отладка

В диалоговом окне Configuration Parameters используйте параметры на панели Diagnostics и отладке параметров, чтобы сконфигурировать модель, таким образом, что сгенерированный код и процесс сборки установлены для отладки. Можно установить параметры, которые применяются к фазе компиляции модели, фазе генерации кода выходного языка или обоим.

Параметры в следующей таблице будут полезны, если вы запишете код TLC для настройки целей, интеграции унаследованного кода или разработки новых блоков.

К...Выбрать...
Отобразите информацию о прогрессе во время генерации кода в Командном окне MATLAB®

Многословная сборка (Simulink Coder).Compiler выход также отображается.

Препятствуйте тому, чтобы процесс сборки удалил model.rtw файл от папки сборки в конце сборки

Сохраните .rtw файл (Simulink Coder). Этот параметр полезен, если вы изменяете конечные файлы, в этом случае необходимо посмотреть на model.rtw файл.

Дайте профилировщику TLC команду анализировать производительность кода TLC, выполненного во время генерации кода и генерировать отчетПрофилируйте TLC (Simulink Coder). Отчет находится в формате HTML и может быть считан в вашем веб-браузере.
Запустите отладчик TLC во время генерации кодаЗапустите отладчик TLC при генерации кода (Simulink Coder). В качестве альтернативы введите аргумент -dc для Системного конечного файла (Simulink Coder) параметр на панели Code Generation. Чтобы запустить отладчик и запустить скрипт отладчика, введите -df filename для System target file.
Сгенерируйте отчет, содержащий статистику, указывающую, сколько раз генератор кода читает каждую строку кода TLC во время генерации кодаЗапустите покрытие TLC при генерации кода (Simulink Coder). В качестве альтернативы введите аргумент -dg для параметра System Target File на панели Code Generation.
Остановите сборку, если предоставленный пользователями файл TLC содержит %assert директива, которая оценивает к FALSE

Включите утверждение TLC (Simulink Coder). В качестве альтернативы можно использовать команды MATLAB, чтобы управлять обработкой утверждения TLC.

Чтобы установить флаг на или прочь, используйте set_param команда. Значение по умолчанию выключено.

set_param(model, 'TLCAssertion', 'on|off') 

Чтобы проверять текущую установку, используйте get_param.

get_param(model, 'TLCAssertion')
Обнаружьте потерю приспособляемости

Обнаружьте потерю приспособляемости (Simulink) на Diagnostics> панель Data Validity. Можно использовать этот параметр, чтобы сообщить о потере приспособляемости, когда выражение уменьшается до числового выражения. Это может произойти, если настраиваемая переменная рабочей области изменяется кодом Инициализации Маски или используется в арифметическом выражении с неподдерживаемыми операторами или функциями. Возможные значения:

  • none — Потеря приспособляемости может произойти без уведомления.

  • warning — Потеря приспособляемости генерирует предупреждение (значение по умолчанию).

  • error — Потеря приспособляемости генерирует ошибку.

Для списка поддерживаемых операторов и функций, смотрите Настраиваемые Ограничения Выражения (Simulink Coder)

Включите верификацию модели (утверждение) блоки

Блок Model Verification, разрешающий (Simulink). Используйте этот параметр, чтобы включить или отключить блоки верификации модели те, которые Утверждают, Проверка Статический Разрыв и связанные блоки проверки диапазона. Диагностика применяется к сгенерированному коду и поведению симуляции. Например, симуляция и генерация кода игнорируют этот параметр, когда блоки верификации модели в S-функции. Возможные значения:

  • User local settings

  • Enable All

  • Disable All

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

utAssert(input_signal);
utAssert(input_signal != 0.0);
utAssert(input_signal != 0);

По умолчанию, utAssert не изменяет сгенерированный код. Для утверждений, чтобы прервать выполнение, необходимо включить им путем определения следующего make_rtw команда для Code Generation > Делает команду (Simulink Coder) параметр:

make_rtw OPTS="-DDOASSERTS"

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

make_rtw OPTS="-DDOASSERTS -DPRINT_ASSERTS"

utAssert задан как #define utAssert(exp) assert(exp).

Чтобы настроить поведение утверждения, предоставьте свое собственное определение utAssert в рукописном заголовочном файле, который заменяет utAssert.h по умолчанию. Для получения дополнительной информации о том, как включать индивидуально настраиваемый заголовочный файл в сгенерированный код, смотрите, Интегрируют Внешний Код при помощи Параметров конфигурации Модели (Simulink Coder).

При выполнении модели в режиме Accelerator механизм Simulink® перезванивает к себе, чтобы выполнить блоки утверждения вместо того, чтобы использовать сгенерированный код. Таким образом пользовательские коллбэки все еще называются, когда утверждения перестали работать.

Для получения дополнительной информации о параметрах отладки TLC, смотрите Отладку на Компиляторе Выходного языка (Simulink Coder). Кроме того, рассмотрите использование Model Advisor как инструмента для поиска и устранения неисправностей сборок модели.

Похожие темы