Запустите анализ Polyspace пользовательского кода в моделях Simulink

Если вы реализуете алгоритмы в своей модели Simulink® при помощи пользовательского кода C/C++, можно анализировать пользовательский код непосредственно от панели инструментов Simulink, вручную не настраивая проект Polyspace®. Поведение пользовательского кода в вашей модели зависит от контекста модели, такого как номер и природа входа и спецификации области значений проекта. Когда вы запускаете анализ Polyspace от MATLAB® или Simulink, анализ принимает контекст модели во внимание. При выполнении анализа Polyspace пользовательского кода за пределами MATLAB/Simulink задайте контекст модели вручную, например, при помощи файлов опций.

Анализ Polyspace пользовательского кода имеет различные цели и настройки по сравнению с анализом Polyspace сгенерированного кода:

  • Анализ пользовательского кода обнаруживает проблемы в пользовательском коде, который может вызвать ошибки времени выполнения или ошибки в симуляции. Этот анализ использует целевую настройку, которая совместима с симуляцией Simulink.

  • Анализ сгенерированного кода обнаруживает ошибки, ошибки времени выполнения и неэффективность в коде. сгенерированный из полной модели Этот анализ использует настройки, которые вы задаете в панели Hardware Implementation диалогового окна Configuration Parameters, чтобы сконфигурировать настройки Polyspace Target processor type.

Необходимое условие

Прежде чем вы запустите Polyspace с Simulink, соедините ваш Polyspace и установки MATLAB. Смотрите Интегрируют Polyspace с MATLAB и Simulink.

Анализируйте пользовательский код

Можно реализовать пользовательский алгоритм при помощи различных блоков пользовательского кода Simulink, таких как:

Эти блоки имеют различные функциональности. Смотрите Сравнение Функциональности пользовательских блоков (Simulink).

Задайте настройку

Перед рабочим Polyspace на модели Simulink сконфигурируйте модель Simulink, чтобы быть совместимыми с Polyspace.

Чтобы анализировать пользовательский код в Polyspace, выберите Import custom code в диалоговом окне Configuration Parameters на панели Simulation Target.

Если включенный пользовательский код не компилирует, анализ Polyspace может перестать работать. Прежде, чем запустить анализ Polyspace, включайте соответствующие заголовочные файлы и проверяйте пользовательский код на проблемы компиляции. Блок C function не поддерживает включая заголовочные файлы. Для этого блока задайте включать операторы в панели Simulation Target. Для кода, включенного в C Caller и блоки S Function, задайте включать операторы в исходном файле. Polyspace имеет более строгий код и требования компиляции, чем Simulink и ваш пользовательский код могут привести компиляцию Polyspace к сбою даже при том, что ваша симуляция модели приводит к правильным результатам.

Запустите анализ Polyspace

Запустите анализ Polyspace пользовательского кода в вашей модели в Редакторе Simulink или в командном окне MATLAB.

Если анализ запускается, Polyspace извлекает пользовательский код из модели. Чтобы сохранить правильную спецификацию области значений проекта и природу входных параметров, Polyspace принимает, что каждый экземпляр блока пользовательского кода в топ-модели имеет уникальный контекст модели и обрабатывает блоки как уникальные. Когда на модель, содержащую блок пользовательского кода, ссылаются многократно в другой топ-модели, контекст модели блоков пользовательского кода остаются то же самое. Polyspace обрабатывает блок пользовательского кода в различных экземплярах модели, на которую ссылаются, как один экземпляр пользовательского кода.

После извлечения кода и контекста модели, Polyspace анализирует их как рукописный код. Смотрите Аналитические Предположения Bug Finder.

Рассмотрите результаты анализа

В Редакторе Simulink нажмите Analysis Results. Пользовательский интерфейс Polyspace открывается результатами анализа. Отмеченные проблемы появляются в панели Results List. Смотрите также:

Чтобы устранить отмеченные проблемы, измените код. Для получения дополнительной информации смотрите, Устраняют Идентифицированные Проблемы. В качестве альтернативы измените модель Simulink, чтобы разрешить результаты Polyspace. Смотрите Устраняют Проблемы.

Если отмеченная проблема известна или выравнивается по ширине, то аннотируйте ту информацию в блоках пользовательского кода. Можно аннотировать блоки пользовательского кода непосредственно из Пользовательского интерфейса Polyspace. Смотрите Аннотируют Блоки, чтобы Выровнять по ширине Результаты.

Смотрите также

|

Похожие темы