Эти проверки помогают вам подготовить свою модель к анализу Simulink® Design Verifier™. Когда вы осуществляете проверку Simulink Design Verifier, Model Advisor проверяет лицензию Simulink Design Verifier.
Для получения дополнительной информации о Model Advisor смотрите Осуществленные Проверки Model Advisor и Автоматизируйте Выполнение Проверки Model Advisor.
ID проверки: mathworks.sldv.compatibility
Идентифицируйте элементы, которые не поддерживает анализ Simulink Design Verifier.
Эта проверка оценивает вашу модель для совместимости с Simulink Design Verifier.
Условие | Рекомендуемое действие |
---|---|
Несовместимый |
Избегайте использования следующих неподдерживаемых программных функций или блоков Simulink в компоненте модели или компоненте модели, который вы хотите анализировать: |
Частично совместимый |
|
Совместимый | Simulink Design Verifier может анализировать вашу модель. |
ID проверки: mathworks.sldv.deadlogic
Идентифицируйте логику, которая остается неактивной в процессе моделирования.
Эта проверка идентифицирует фрагменты вашей модели, которые остаются неактивными в процессе моделирования.
Можно запустить более детальный анализ, который идентифицирует и мертвую логику и активную логику с помощью поиска ошибок проектирования Simulink Design Verifier. Для получения дополнительной информации смотрите, Обнаруживают Мертвую логику, Вызванную Неправильным Значением.
В соответствии с рекомендациями этих увеличений проверки вероятность генерации MISRA C:2012 совместимый код для встраиваемых приложений, а также код, который выполняет CERT C и стандарты CWE
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. См.:
Также смотрите Несовместимости Указателя с Автоматическим Блокированием. |
Мертвая логика найдена в модели | Simulink Design Verifier доказал, что они решение и результаты условия не могут произойти и являются мертвой логикой в модели. Мертвая логика может также быть побочным эффектом заданных ограничений на параметры или задала минимальные и максимальные ограничения на входные порты. В редких случаях мертвая логика может следовать из приближений, выполняемых Simulink Design Verifier. Возможно, что существуют цели, которые не решил этот анализ. Чтобы расширить результаты этого анализа, используйте поиск ошибок проектирования Simulink Design Verifier, чтобы также идентифицировать активную логику. Из Редактора Simulink выберите Apps> Design Verifier> Settings. В окне Configuration Parameters, от Design Verifier> панель Design Error Detection, выбирают Dead logic и Identify active logic. |
Мертвая логика, не найденная в модели | Simulink Design Verifier не нашел мертвую логику в модели. Возможно, что существуют цели, которые не решил этот анализ. Чтобы расширить результаты этого анализа, используйте поиск ошибок проектирования Simulink Design Verifier, чтобы также идентифицировать активную логику. Из Редактора Simulink выберите Apps> Design Verifier> Settings. В окне Configuration Parameters, от Design Verifier> панель Design Error Detection, выбирают Dead logic и Identify active logic. |
MISRA C:2012: правило 2.1
CERT C, MSC07-C
CWE, CWE-561
Безопасные стандарты кодирования (Embedded Coder)
ID проверки: mathworks.sldv.arraybounds
Обнаруживает операции что доступ вне границ индекса массива
Эта проверка обнаруживает экземпляры из связанного доступа к массиву в Simulink Design Verifier.
В соответствии с рекомендациями этих увеличений проверки вероятность генерации MISRA C:2012 совместимый код для встраиваемых приложений, а также код, который выполняет CERT C, CWE, стандарты ISO/IEC TS 17961.
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. Смотрите
Также смотрите Несовместимости Указателя с Автоматическим Блокированием. |
Из связанного доступа к массиву, найденного в модели |
Чтобы просмотреть условия, которые вызывают из связанного доступа к массиву, создайте модель тестовой обвязки. Когда вы симулируете обвязку, входные параметры реплицируют ошибку. Нажмите View test case в отчете Model Advisor. |
MISRA C:2012: правило 18.1
ISO/IEC TS 17961: 2013, invptr
CERT C, ARR30-C
CWE, CWE-118
Безопасные стандарты кодирования (Embedded Coder)
ID проверки: mathworks.sldv.divbyzero
Обнаруживает ошибки деления на нуль в вашей модели
Эта проверка идентифицирует операции в вашей модели то деление на нуль причины ошибки.
В соответствии с рекомендациями этих увеличений проверки вероятность генерации MISRA C:2012 совместимый код для встраиваемых приложений, а также код, который выполняет CERT C, CWE, стандарты ISO/IEC TS 17961.
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. Смотрите
Также смотрите Несовместимости Указателя с Автоматическим Блокированием. |
Деление на нуль найдено в модели |
Чтобы просмотреть условия, которые вызывают деление на нуль, создайте модель тестовой обвязки. Когда вы симулируете обвязку, входные параметры реплицируют ошибку. Нажмите View test case в отчете Model Advisor. |
MISRA C:2012: директива 4.1
ISO/IEC TS 17961: 2013, дайвер
CERT C, INT33-C и FLP03-C
CWE, CWE-369
Безопасные стандарты кодирования (Embedded Coder)
Обнаружьте ошибки целочисленного переполнения и деления на нуль
ID проверки: mathworks.sldv.integeroverflow
Обнаруживает ошибки переполнения данных целочисленной или фиксированной точки в вашей модели
Эта проверка идентифицирует операции, которые превышают область значений типа данных для операций целочисленной или фиксированной точки.
В соответствии с рекомендациями этих увеличений проверки вероятность генерации MISRA C:2012 совместимый код для встраиваемых приложений, а также код, который выполняет CERT C, CWE, стандарты ISO/IEC TS 17961.
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. Смотрите
Также смотрите Несовместимости Указателя с Автоматическим Блокированием. |
Целочисленное переполнение найдено в модели |
Чтобы просмотреть условия, которые вызывают целочисленное переполнение, создайте модель тестовой обвязки. Когда вы симулируете обвязку, входные параметры реплицируют ошибку. Нажмите View test case в отчете Model Advisor. |
MISRA C:2012: директива 4.1
ISO/IEC TS 17961: 2013, intoflow
CERT C, INT30-C и INT32-C
CWE, CWE-190
Безопасные стандарты кодирования (Embedded Coder)
Обнаружьте ошибки целочисленного переполнения и деления на нуль
ID проверки: mathworks.sldv.infnan
Обнаруживает Неличный и NaN значения с плавающей точкой в вашей модели
Эта проверка обнаруживает случаи неличных и NaN значения с плавающей точкой в вашей модели.
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. Смотрите
Также смотрите Несовместимости Указателя с Автоматическим Блокированием. |
Неличный и NaN значения с плавающей точкой найдены в модели | Чтобы просмотреть условия, которые вызывают вхождение неличных и NaN значения с плавающей точкой, создайте модель тестовой обвязки. Когда вы симулируете обвязку, входные параметры реплицируют ошибку. Нажмите View test case в отчете Model Advisor. |
ID проверки: mathworks.sldv.subnormal
Обнаруживает субнормальные значения с плавающей точкой в вашей модели
Эта проверка обнаруживает случаи субнормальных значений с плавающей точкой в вашей модели.
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. Смотрите
Также смотрите Несовместимости Указателя с Автоматическим Блокированием. |
Субнормальные значения с плавающей точкой найдены в модели | Чтобы просмотреть условия, которые вызывают вхождение субнормальных значений с плавающей точкой, создайте модель тестовой обвязки. Когда вы симулируете обвязку, входные параметры реплицируют ошибку. Нажмите View test case в отчете Model Advisor. |
ID проверки: mathworks.sldv.minmax
Обнаружьте сигналы, которые превышают заданные минимальные и максимальные значения
Этот анализ проверяет заданные минимальные и максимальные значения (области значений проекта) на промежуточных сигналах в модели и на выходных портах. Если анализ обнаруживает, что сигнал превышает область значений проекта, результаты идентифицируют, где в модели ошибки произошли.
В соответствии с рекомендациями этих увеличений проверки вероятность генерации MISRA C:2012 совместимый код для встраиваемых приложений, а также код, который выполняет CERT C и стандарты CWE.
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. Смотрите
Также смотрите Несовместимости Указателя с Автоматическим Блокированием. |
Нарушение минимума и/или максимума найдено в модели |
Чтобы просмотреть условия, которые вызывают нарушение, создайте модель тестовой обвязки. Когда вы симулируете обвязку, входные параметры реплицируют ошибку. Нажмите View test case в отчете Model Advisor. |
MISRA C:2012: директива 4.1
CERT C, API00-C
CWE, CWE-628
Безопасные стандарты кодирования (Embedded Coder)
Проверяйте на заданные нарушения минимального и максимального значения
ID проверки: mathworks.sldv.dsmaccessviolations
Обнаружьте нарушения прав доступа хранилища данных в своей модели.
Эта проверка обнаруживает эти нарушения прав доступа хранилища данных:
Чтение перед записью
Запись после чтения
Запись после записи
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. См.:
|
Нарушения прав доступа хранилища данных найдены | В отчете Model Advisor нажмите View test case. Программное обеспечение создает модель тестовой обвязки, и блок Signal Builder отображает тест, который реплицирует ошибку. |
ID проверки: mathworks.sldv.blockinputrangeviolations
Обнаружьте нарушения входного диапазона блока в своей модели.
Эта проверка обнаруживает нарушения входного диапазона для блоков с этими настройками:
Для этих блоков, когда параметр Diagnostic for out-of-range input устанавливается на Warning
или Error
:
Блоки Multiport Switch, когда параметр Diagnostic for default case устанавливается на Warning
или Error
.
Блоки Trigonometric Function, когда параметр Approximation method устанавливается на CORDIC
Примечание
Проверка не отмечает нарушения входного диапазона блока для блоков n-D Lookup Table, когда Interpolation method установлен в Akima spline
или Cubic spline
.
Результат | Рекомендуемое действие |
---|---|
Не пройдено, несовместимая модель | Разрешите несовместимость модели. См.:
|
Блокируйте найденные нарушения входного диапазона | В отчете Model Advisor нажмите View test case. Программное обеспечение создает модель тестовой обвязки, и блок Signal Builder отображает тест, который реплицирует ошибку. |
ID проверки: mathworks.sldv.hismviolationshisl_0002
Идентифицирует использование блоков Math Function с помощью rem и функций reciprocal , которые вызывают неличные результаты.
Условие | Рекомендуемое действие |
---|---|
Модель или подсистема содержат Math Function - взаимный (reciprocal) или остаток (rem) блоки, которые могут привести к неличным выходным сигналам. Неличные сигналы не поддерживаются в режиме реального времени встраиваемые системы. | При использовании блока Math Function с rem или reciprocal функциональные блоки, защитите вход с блоком из того, чтобы быть меньше чем или равным нулю. |
ID проверки: mathworks.sldv.hismviolationshisl_0003
Идентифицируйте блоки Sqrt с входными параметрами, которые могут быть отрицательными.
Условие | Рекомендуемое действие |
---|---|
Один или несколько блоков Sqrt в модели имеют входные параметры, которые могут пойти отрицательные в процессе моделирования. | Реконструируйте, чтобы защитить вход блоков Sqrt из движения отрицательного. |
ID проверки: mathworks.sldv.hismviolationshisl_0004
Идентифицирует блоки Математической функции с помощью log и функций log10 , которые вызывают неличные результаты.
Условие | Рекомендуемое действие |
---|---|
Один или несколько блоков Math в модели используют естественные/основные 10 логарифмов (Log и Log10 ) блоки и могут потребовать неличной поддержки номера, которая не поддерживается в режиме реального времени встраиваемые системы. | Считайте защиту входа блоков таким образом, что это не меньше чем или равно нулю. |
ID проверки: mathworks.sldv.hismviolationshisl_0028
Идентифицирует блоки Reciprocal Sqrt с входными параметрами, которые могут пойти нуль или отрицательный.
Условие | Рекомендуемое действие |
---|---|
Один или несколько блоков Reciprocal Sqrt в модели имеют входные параметры, которые могут перейти к нулю или отрицательный в процессе моделирования. | Реконструируйте, чтобы защитить вход блоков Reciprocal Sqrt из движения отрицательного. |