Ограничения поддержки и факторов по S-функциям и коду C/C + +

Включение S-функций в Simulink Design Verifier

Simulink® Design Verifier™ поддерживает генерацию тестов для кода, сгенерированного Embedded Coder®. Simulink Design Verifier также поддерживает выявление ошибок, генерацию тестов и проверку свойств для S-функций, которые:

  • Legacy Code Tool генерирует, с def.Options.supportCoverageAndDesignVerifier установите значение true.

  • S-Function Builder генерирует, с Enable support for Design Verifier, выбранными на вкладке Build Info диалогового окна S-Function Builder.

  • Функция slcovmex компилирует, с опцией -sldv передается в функцию при компиляции S-функции.

Для получения дополнительной информации о трех подходах смотрите О C MEX S-Functions.

Ограничения поддержки S-функций и кода C/C + +

  • Simulink Design Verifier не поддерживает S-функции или код C/C + +, содержащий:

    • Непрерывные состояния. Simulink Design Verifier не анализирует такой код.

    • Функции пересечения нулем. Simulink Design Verifier игнорирует такой код во время анализа.

    • Константы, которые описывают объекты INF или NaN. Simulink Design Verifier рассматривает такой код как содержащий ошибки переполнения с плавающей точкой. Несмотря на то, что анализ Simulink Design Verifier не может определить тип ошибки переполнения для таких случаев, анализ может определить, какие строки кода вводят несовместимость. Polyspace® может предоставить дополнительные сведения о том, почему код содержит ошибки переполнения с плавающей точкой.

  • Вы должны задать, что элементы сигнала, входящие в порты S-функций, скомпилированы с slcovmex являются смежными. Используйте SimStruct функция ssSetInportPortRequiredContiguous.

Simulink Design Verifier поддерживает следующие ошибки проектирования для кода S-Function и C/C + +:

  • Мертвая логика, включая активную логику.

  • Массив вне границ. Это включает указатель вне границ в случае C/C + +.

  • Деление на нули.

Обрабатывайте энергонезависимые переменные как нормальные переменные

Simulink Design Verifier позволяет упрямить или обработать опцию для переменных с изменяющимися состояниями как нормальные. При выборе параметра Ignore the volatile qualifier летучие элементы будут обрабатываться так же, как и энергонезависимые элементы. Отмена выбора Ignore the volatile qualifier вернется к предыдущему поведению упругого доступа к летучим элементам.

Факторы по включению S-функций и кода C/C + + в Simulink Design Verifier

  • При выполнении проверки свойств или анализа генерации тестов для моделей с активированным кодом S-Functions или C/C + +, сгенерированным Embedded Coder, 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 + +, таких как:

    • Вызываются функции библиотеки (функция библиотеки заменяется заглушкой).

    • Комплексные операции с указателем.

    • Привлечение к несовместимым или неизвестным типам указателей или из них.

    Модели, содержащие такие конструкции, маркируются Partially compatible.

Защита исходного кода

Для анализа содержимого S-функции информация о реализации S-функции, включая информацию, выведенную из исходного кода, хранится в совместно используемом объекте. Несмотря на то, что эта информация не доступна непосредственно пользователям, рассмотрите возможность отключения поддержки Simulink Design Verifier для S-функций в моделях, которые выпускаются извне, если S-функции содержат конфиденциальный исходный код.

См. также

|