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

То, когда вы записываете покрытие для моделей, содержащих, поддержало S-функции C/C++, блоки MATLAB function, которые вызывают внешний код C/C++, C блоки Вызывающей стороны с кодом 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 Блоки Вызывающей стороны и диаграммы Stateflow

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

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

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

Simulink Coverage™ записывает покрытие кода для пользовательского кода C/C++ в блоках MATLAB function, C блоки Вызывающей стороны и диаграммы Stateflow.

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

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

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

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

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. Выберите Analysis> Coverage> Settings.

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

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

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

Больше о