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

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

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

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

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

    • Операторы

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

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

Примечание

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

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

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

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

  2. Создайте или сгенерируйте код для модели. Представление кода открывается по умолчанию, чтобы отобразить сгенерированный код рядом с моделью.

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

    Code view containing generated code is open next to the model. Mouse cursor is
                placed over a comment and the corresponding block is highlighted in the model.

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

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

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

    In the model, Stateflow chart is highlighted.

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

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

/* <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. Создайте или сгенерируйте код для модели. Сгенерированный код отображен в окне Представления кода рядом с моделью.

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

  4. В сгенерированном коде в окне Представления кода вы видите первую инстанцию подсвеченного кода, который сгенерирован для элемента модели. Наверху Представления кода числа, которые появляются справа от сгенерированных имен файлов, указывают на общее количество подсвеченных линий в каждом файле. Этот рисунок показывает результат трассировки блока Unit Delay в модели rtwdemo_hyperlinks.

    Code view containing generated code is open next to the model. Mouse cursor
                clicks a block in the model and corresponding lines of code are highlighted in Code
                view.

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

Если вы закрываете и вновь открыли модель, Представление кода не открывается, пока вы не открываете приложение Embedded Coder. Представление кода не может быть доступным, потому что Embedded Coder не может найти папку сборки для вашей модели в текущей рабочей папке. Сбросьте текущую рабочую папку к родительской папке существующей папки сборки.

Если вы используете отчет генерации кода и хотите перезагрузить существующую информацию о трассируемости, смотрите Перезагрузку Существующая информация о Трассируемости.

Похожие темы