Используйте трассируемость в блоках MATLAB Function

Степень трассируемости в блоках MATLAB function

Как другие блоки Simulink®, блоки MATLAB Function поддерживают двустороннюю отслеживаемость, но расширяют навигацию к линиям исходного кода. Таким образом, можно перейти между линией сгенерированного кода и его соответствующей линией исходного кода. В других блоках Simulink можно перейти между линией сгенерированного кода и его соответствующим объектом.

Кроме того, можно выбрать, чтобы включать исходный код как комментарии в сгенерированном коде. Когда вы выбираете параметр MATLAB source code as comments, исходный код MATLAB® сразу появляется после связанного тега трассируемости. Для получения дополнительной информации смотрите, Как Включать код MATLAB как Комментарии в Сгенерированном коде.

Для получения информации о том, как трассируемость работает в блоках Simulink, смотрите, Проверяют Сгенерированный код при помощи Кода, Прослеживающего (Embedded Coder).

Требования трассируемости

Чтобы включить комментарии трассируемости в вашем коде, у вас должна быть лицензия на программное обеспечение Embedded Coder®. Эти комментарии появляются только в коде, который вы генерируете для Встроенного В реальном времени (ERT) цель.

Примечание

Трассируемость не поддерживается для файлов MATLAB, которые вы вызываете от блока MATLAB Function.

Пример: Используя трассируемость в блоке MATLAB function

В этом примере показано, как проследить между исходным кодом и сгенерированным кодом в блоке MATLAB Function в eml_fire модель. Выполните эти шаги:

  1. Введите eml_fire в подсказке MATLAB.

  2. В окне модели Simulink, во вкладке Modeling, нажимают Model Settings.

  3. В панели Code Generation перейдите к разделу Target selection и введите ert.tlc для системного конечного файла. Затем нажмите Apply.Traceability, комментарии кажутся связанными гиперссылками в сгенерированном коде только для встроенного, в реальном времени (ert) цели.

  4. В панели Code Generation > Report выберите Create code generation report (Simulink Coder) параметр, если не уже выбранный.

    Это действие автоматически выбирает Открытый отчет автоматически (Simulink Coder), Код к модели (Embedded Coder) и Модель к коду (Embedded Coder) параметры.

  5. Проверьте, что Code-to-model и параметры Model-to-code включены.

  6. В панели Code Generation > Comments выберите исходный код MATLAB как комментарии объекта (Simulink Coder) и Stateflow комментариев (Simulink Coder) параметры. Эти параметры управляют различными частями комментария трассируемости. Смотрите Местоположение Комментариев в Сгенерированном коде для получения дополнительной информации.

  7. Перейдите к панели Code Generation > Interface. В разделе Software environment выберите параметр continuous time. Затем нажмите Apply. Поскольку эта модель в качестве примера содержит блок со временем непрерывной выборки, необходимо выполнить этот шаг прежде, чем сгенерировать код.

  8. В окне модели нажмите Ctrl+B.

    Это действие генерирует файлы исходного кода и заголовочные файлы для eml_fire модель, которая содержит flame блок. После того, как процесс генерации кода завершен, отчет генерации кода появляется автоматически.

  9. Нажмите eml_fire.c гиперссылка в отчете.

  10. Прокрутите вниз через код, чтобы видеть комментарии трассируемости, которые появляются как ссылки в /*...*/ скобки, как в этом примере.

  11. Нажмите <S2>:1:19 гиперссылка в этом комментарии трассируемости:

    /* '<S2>:1:19' */

    Линия 19 из функции в исходном коде кажется подсвеченной в Редакторе блока MATLAB function.

  12. Можно проследить линию в функции MATLAB к линиям сгенерированного кода. Например, щелкните правой кнопкой по линии по 21 из своей функции и выберите Code Generation> Navigate to Code из контекстного меню.

    Участок кода для линии 21 кажется подсвеченным в eml_fire.c.

  13. Можно проследить линию сгенерированного кода к линии исходного кода в функции MATLAB с помощью гиперссылок номера строки в сгенерированном коде.

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте