Проследите элементы модели Simulink в сгенерированном коде

Чтобы проверить сгенерированный код, Embedded Coder® обеспечивает двустороннюю отслеживаемость между моделью Simulink® и сгенерированным кодом. Можно использовать любой метод в трассируемости:

  • Код к модели: сгенерированный код отображает эти гиперссылки в строках с комментариями в сгенерированном коде:

    • Имена блока/подсистем

    • Номера строки

    • Операторы

    Чтобы подсветить соответствующий блок или подсистему в Редакторе Simulink, кликните по гиперссылкам.

  • Модель к коду: можно выбрать один или несколько блоков модели в Редакторе Simulink и перейти к соответствующему сгенерированному коду.

Примечание

Представление кода в перспективе кода обеспечивает двустороннюю отслеживаемость по умолчанию.

Трассируемость кода к модели

Использовать гиперссылки в трассировке кода к элементам модели:

  1. Откройте модель и сконфигурируйте ее как цель ERT.

  2. На Code Generation> панель Report, выберите эти параметры конфигурации модели:

  3. Создайте или сгенерируйте код для модели. Отчет генерации кода HTML отображен в веб-браузере MATLAB®.

  4. В окне отчета HTML кликните по гиперссылкам, чтобы подсветить исходные блоки. Например, сгенерируйте отчет HTML для модели rtwdemo_hyperlinks. В сгенерированном коде для ступенчатой функции модели в rtwdemo_hyperlinks.c, кликните по первому UnitDelay: '<Root>/X' блокируйте гиперссылку.

    В окне модели, соответствующем UnitDelay блок подсвечен.

Использовать номера строки в трассировке кода к элементам модели:

  1. В предыдущей модели, rtwdemo_hyperlinks, кликните по гиперссылке в номере строки 153. Номера строки могут отличаться от чисел, которые появляются в вашем отчете генерации кода.

  2. В окне модели подсистема Графика подсвечена и содержит функциональность на линии 153.

Трассируемость со скрытыми блоками

Генератор кода иногда вставляет скрытые блоки во время процесса генерации кода по различным причинам, например, обеспечить целостность данных. Комментарии для скрытых блоков включены в сгенерированный код. Эти комментарии и код, сгенерированный от скрытого блока, прослеживают до исходного блока в модели, которая инициировала вставку скрытого блока. Комментарии со скрытыми блоками следуют за этим шаблоном:

/* <Hidden_Block_Type> generated from: <Hyperlinked_Original_Block_Name> */

Например,

/* SignalConversion generated from: '<Root>/Subsystem' */
  Varianttoground_B.VM_Conditional_Signal_Subsystem_0 = 0.0;
Скрытый блок SignalConversion не присутствует в модели. Можно проследить до '<Root>/Subsystem' блокируйтесь в модели, которая инициировала вставку скрытого блока путем нажатия на гиперссылку на '<Root>/Subsystem'. Для получения дополнительной информации об этом примере смотрите Генерацию кода для Различных Блоков с Одним Вариантом.

Трассируемость модели к коду

Прослеживать элементы модели до их соответствующего сгенерированного кода:

  1. Полные шаги 1 и 2 как в Трассируемости Кода к модели

  2. Проверьте, что вы выбрали параметр Model-to-code. Этот параметр включает кнопку Configure (Simulink Coder), которая открывает диалоговое окно для загрузки существующей информации о трассируемости. Для получения дополнительной информации смотрите Перезагрузку Существующая информация о Трассируемости.

  3. Создайте или сгенерируйте код для модели. Отчет генерации кода HTML отображен в веб-браузере MATLAB.

  4. В окне модели щелкните правой кнопкой по элементу модели. Чтобы выбрать несколько блоков, удержите клавишу SHIFT и выберите дополнительные блоки.

  5. Из контекстного меню выберите C/C++ Code> Navigate to C/C++ Code. В отчете генерации кода HTML вы видите первую инстанцию подсвеченного кода, который сгенерирован для элемента модели. На левой панели отчета числа, которые появляются справа от сгенерированных имен файлов, указывают на общее количество подсвеченных линий в каждом файле. Этот рисунок показывает результат трассировки блока Unit Delay в модели rtwdemo_hyperlinks.

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

Если вы закрываете и вновь открыли модель, опция контекстного меню Navigate to Code не может быть доступной, потому что Embedded Coder не может найти папку сборки для вашей модели в текущей рабочей папке. Выполнить одно из следующих действий:

  • Сбросьте текущую рабочую папку к родительской папке существующей папки сборки.

  • Выберите Model-to-code и восстановите модель. Восстановление модели регенерирует папку сборки в текущую рабочую папку.

  • Нажмите Configure. В диалоговом окне навигации Модели к коду перезагрузите существующую информацию о трассируемости путем определения исходной папки сборки.

Похожие темы