Simulink ® Design Verifier™ поддерживает создание тестовых примеров для кода, созданного с помощью Embedded Coder ®. Simulink Design Verifier также поддерживает обнаружение ошибок, создание тестовых примеров и проверку свойств для S-функций, которые:
Инструмент устаревшего кода создает с помощью def.Options.supportCoverageAndDesignVerifier значение равно true.
S-Function Builder создает с включенной поддержкой Design Verifier, выбранной на вкладке Build Info диалогового окна S-Function Builder.
Функция slcovmex компилирует, с опцией -sldv передается функции при компиляции S-функции.
Дополнительные сведения о трех подходах см. в разделе О C MEX S-функциях.
Simulink Design Verifier не поддерживает S-функции или код C/C + +, содержащий:
Непрерывные состояния. Simulink Design Verifier не анализирует такой код.
Функции пересечения нуля. Simulink Design Verifier игнорирует такой код во время анализа.
Константы, описывающие объекты INF или NaN. Simulink Design Verifier рассматривает такой код как содержащий ошибки переполнения с плавающей запятой. Хотя анализ Simulink Design Verifier не может определить тип ошибки переполнения для таких случаев, анализ может определить, какие строки кода вносят несовместимость. Polyspace ® может предоставить дополнительную информацию о том, почему код содержит ошибки переполнения с плавающей запятой.
Необходимо указать, что сигнальные элементы, входящие в порты S-Functions, скомпилированы с slcovmex являются смежными. Используйте SimStruct функция ssSetInputPortRequiredContiguous.
Simulink Design Verifier поддерживает следующие ошибки проектирования для S-функций и кода C/C + +:
Неработоспособная логика, включая активную логику.
Массив вне границ. Это включает указатель вне границ в случае C/C + +.
Деление на ноль.
Программа Simulink Design Verifier позволяет использовать в качестве обычных переменных вариант, при котором энергозависимые переменные блокируются или обрабатываются. При выборе параметра Ignore the volatile qualifier летучие элементы будут обрабатываться так же, как и нелетучие элементы. Отмена выбора параметра Ignore the volatile qualifier вернет к предыдущему поведению ограничения доступа к изменчивым элементам.
При выполнении проверки свойств или анализа генерации тестов для моделей с включенными S-функциями или кодом C/C + +, созданными с помощью встроенного кодера, Simulink Design Verifier предполагает, что код не содержит ошибок времени выполнения. Если код содержит ошибки времени выполнения, такие как деление на ноль, доступ к неинициализированным переменным или массиву вне границ, проверка свойства или анализ генерации теста могут привести к неправильным результатам. Код, проверенный Polyspace и не содержащий ошибок времени выполнения, дает правильные результаты анализа Simulink Design Verifier.
Во избежание неправильных результатов, полученных из-за ошибок во время выполнения, сначала выполните анализ обнаружения ошибок проекта, а затем выполните проверку свойств или анализ генерации теста.
Если Simulink Design Verifier не может определить размер массивов в коде (например, массивов, динамически распределенных с непостоянным размером), Simulink Design Verifier предполагает верхнюю границу для массива. Убедитесь, что данная верхняя граница подходит.
Если поддержка Simulink Design Verifier для S-функции не включена, Simulink Design Verifier блокирует S-функцию. С включенной поддержкой S-функций Simulink Design Verifier проанализировал содержимое S-функции, чтобы получить более подробную информацию. Иногда Simulink Design Verifier внутренне блокирует S-функцию. Внутренние заглушки могут быть результатом различных конструкций C/C + +, таких как:
Вызовы библиотечных функций (функция библиотеки заменяется заглушкой).
Сложные операции с указателями.
Приводит к несовместимым или неизвестным типам указателей или из них.
Модели, содержащие такие конструкции, помечены как частично совместимые.
Для анализа содержимого S-функции в совместно используемом объекте хранится информация о реализации S-функции, включая информацию, полученную из исходного кода. Хотя эта информация не доступна непосредственно пользователям, рекомендуется отключить поддержку Simulink Design Verifier для S-функций в моделях, которые выпускаются извне, если S-функции содержат чувствительный исходный код.
Конфигурирование S-функции для генерации тестового примера | Создание тестовых примеров для кода, созданного встроенным кодером