Покрытие для Пользовательского Кода C/C++ в Моделях Simulink

То, когда вы записываете покрытие для моделей, содержащих, поддержало S-функции C/C++, блоки MATLAB Function, которые вызывают внешний код C/C++, блоки C Caller с кодом C/C++ или графиками Stateflow®, которые интегрируют пользовательский код C/C++ для симуляции, покрытие зарегистрировано для кода C/C++ в S-функциях C/C++, блоках MATLAB Function или диаграммах Stateflow. Результаты покрытия для пользовательского кода могут быть просмотрены в том же отчете как остальная часть модели. Для каждого блока S-Function, блока MATLAB Function или диаграммы Stateflow, отчет соединяется с подробным отчетом покрытия для кода C/C++ в блоке.

Включите Покрытие кода для Пользовательского кода C/C++ в Блоках MATLAB Function, Блоках C Caller и диаграммах Stateflow

Включить покрытие кода для пользовательского кода C/C++ в вашей модели Simulink®:

  1. На панели Simulation Target Параметров конфигурации выберите Import custom code.

  2. На панели Simulation Target Параметров конфигурации выберите Enable custom code analysis.

Simulink Coverage™ записывает покрытие кода для пользовательского кода C/C++ в блоках MATLAB Function, блоках C Caller и диаграммах Stateflow.

Покрытие кода для S-функций

Сделайте S-Function совместимый с покрытием модели

Если вы используете legacy_code функция, блок S-Function Builder или mex функция, чтобы создать ваши S-функции, адаптируйте свой метод соответственно, чтобы сделать совместимое S-Function с покрытием модели.

Для получения дополнительной информации о трех подходах смотрите Реализацию S-функции C/C++.

S-функция Используя legacy_code Функция

  1. Инициализируйте структуру MATLAB® полями, которые представляют свойства Legacy Code Tool.

    def = legacy_code('initialize')

  2. Чтобы включить покрытие модели, включите опцию def.Options.supportCoverage.

    def.Options.supportCoverageAndDesignVerifier = true;
  3. Используйте структуру def обычным способом сгенерировать S-функцию. Для примера смотрите Покрытие для S-функций.

S-функция Используя разработчика S-функции

  1. Скопируйте экземпляр блока S-Function Builder из библиотеки User-Defined Functions в Браузере Библиотеки в вашу модель.

  2. Дважды кликните блок, чтобы открыть диалоговое окно S-Function Builder.

  3. На вкладке Build Info выберите Enable support for coverage.

S-функция Используя mex Функция.  Если вы используете mex функционируйте, чтобы скомпилировать и соединить ваши исходные файлы, использовать slcovmex функцию вместо этого. slcovmex функционируйте компилирует ваш исходный код и также делает его совместимым с покрытием.

Эта функция имеет тот же синтаксис и выбирает те же варианты как mex функция. Кроме того, можно предоставить некоторые возможности, важные для покрытия модели. Для получения дополнительной информации смотрите slcovmex.

Сгенерируйте отчет покрытия для S-функции

  1. В Редакторе Simulink выберите Model Settings на вкладке Modeling.

  2. На панели Coverage диалогового окна Configuration Parameters выберите C/C++ S-functions.

Когда вы запускаете симуляцию, отчет покрытия содержит метрики покрытия для Блоков s-function C/C++ в вашей модели. Для каждого блока S-Function отчет соединяется с подробным отчетом покрытия для кода C/C++ в блоке.

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

Больше о