Если вы реализуете алгоритмы в своей модели 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, таких как:
C Function: смотрите вызов и интегрируйте внешние алгоритмы C в Simulink (Simulink)
C Caller: смотрите интегрируют код С Используя блоки вызывающей стороны C (Simulink)
S-Function: Смотрите Реализуют S-функции C/C++ (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 пользовательского кода в вашей модели в Редакторе Simulink или в командном окне MATLAB.
Для получения дополнительной информации о выполнении анализа Polyspace пользовательского кода в блоке S function, смотрите Анализ Polyspace Запуска Кода S-функции.
Для получения дополнительной информации о выполнении анализа Polyspace пользовательского кода в блоке C Caller, смотрите Анализ Polyspace Запуска Пользовательского кода в Блоках Вызывающей стороны C и диаграммах Stateflow.
Для получения дополнительной информации о выполнении анализа Polyspace пользовательского кода в блоке C function, смотрите Анализ Polyspace Запуска Пользовательского кода в блоке C Function.
Если анализ запускается, Polyspace извлекает пользовательский код из модели. Чтобы сохранить правильную спецификацию области значений проекта и природу входных параметров, Polyspace принимает, что каждый экземпляр блока пользовательского кода в топ-модели имеет уникальный контекст модели и обрабатывает блоки как уникальные. Когда на модель, содержащую блок пользовательского кода, ссылаются многократно в другой топ-модели, контекст модели блоков пользовательского кода остаются то же самое. Polyspace обрабатывает блок пользовательского кода в различных экземплярах модели, на которую ссылаются, как один экземпляр пользовательского кода.
После извлечения кода и контекста модели, Polyspace анализирует их как рукописный код. Смотрите Аналитические Предположения Bug Finder.
В Редакторе Simulink нажмите Analysis Results. Пользовательский интерфейс Polyspace открывается результатами анализа. Отмеченные проблемы появляются в панели Results List. Смотрите также:
Чтобы устранить отмеченные проблемы, измените код. Для получения дополнительной информации смотрите, Устраняют Идентифицированные Проблемы. В качестве альтернативы измените модель Simulink, чтобы разрешить результаты Polyspace. Смотрите Устраняют Проблемы.
Если отмеченная проблема известна или выравнивается по ширине, то аннотируйте ту информацию в блоках пользовательского кода. Можно аннотировать блоки пользовательского кода непосредственно из Пользовательского интерфейса Polyspace. Смотрите Аннотируют Блоки, чтобы Выровнять по ширине Результаты.