Check MISRA C:2012 (-misra3)

Проверяйте на нарушения правил MISRA C:2012 и директив

Polyspace больше не будет поддерживать файлы пользовательской конфигурации в текстовом формате в будущем релизе. См. Вопросы совместимости.

Описание

Задайте, проверять ли на нарушения инструкций MISRA C®:2012. Каждое значение опции соответствует подмножеству инструкций, чтобы проверять.

Установите опцию

Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Coding Standards & Code Metrics. Смотрите Зависимости для других опций, которые необходимо также включить.

Командная строка: Используйте опцию -misra3. Смотрите информацию о командной строке.

Почему использование эта опция

Используйте эту опцию, чтобы задать подмножество правил MISRA C:2012 проверять на.

После анализа панель Results List перечисляет кодирующие стандартные нарушения. На панели Source, для каждого нарушения правила кодирования, Polyspace® присваивает символ ключевому слову или идентификатору, относящемуся к нарушению.

Настройки

Значение по умолчанию: mandatory-required

mandatory

Проверяйте на обязательные инструкции.

mandatory-required

Проверяйте на обязательные и необходимые инструкции.

  • Обязательные инструкции: Ваш код должен выполнить эти инструкции.

  • Необходимые инструкции: можно отклониться от этих инструкций. Однако необходимо завершить формальную запись отклонения, и отклонение должно быть авторизовано.

    Смотрите Раздел 5.4 из инструкций MISRA C:2012. Для примера записи отклонения см. Приложение I инструкций MISRA C:2012.

Примечание

Выключить некоторые необходимые инструкции, вместо mandatory-required выберите custom. Чтобы очистить определенные инструкции, щелкнуть. В столбце Comment введите свое объяснение для отключения инструкции. Например, можно ввести идентификатор Отклонения, который относится к записи отклонения для инструкции. Объяснение появляется в вашем сгенерированном отчете.

single-unit-rules

Проверяйте подмножество правил, которые применяются только к одному модулям перевода. Эти правила проверяются в фазе компиляции анализа.

system-decidable-rules

Проверяйте правила в single-unit-rules подмножество и некоторые правила, которые применяются к коллективному набору программных файлов. Дополнительные правила являются менее комплексными правилами, которые применяются в степени интеграции. Эти правила могут проверяться только в степени интеграции, потому что правила включают больше чем один модуль перевода. Эти правила проверяются в компиляции и соединении фаз анализа.

all

Проверяйте на обязательные, требуемые, и консультативные инструкции.

SQO-subset1

Проверяйте только на подмножество инструкций. В Polyspace Code Prover™, наблюдая эти правила может сократить количество бездоказательных результатов. Для получения дополнительной информации смотрите Подмножества Цели Качества программного обеспечения (C:2012).

SQO-subset2

Проверяйте на подмножество SQO-subset1, плюс некоторые дополнительные правила. В Polyspace Code Prover, наблюдая эти правила может далее сократить количество бездоказательных результатов. Для получения дополнительной информации смотрите Подмножества Цели Качества программного обеспечения (C:2012).

from-file

Задайте XML-файл, где вы конфигурируете пользовательский выбор средств проверки для этого стандарта кодирования. Чтобы создать конфигурационный файл, кликните, затем выберите правила и рекомендации, которые вы хотите проверять на этот стандарт кодирования от правой панели окна Findings selection. Сохраните файл.

Чтобы использовать или обновить существующий конфигурационный файл, в окне Findings selection, вводят полный путь в файл в обеспеченном поле или нажимают Browse.

Если вы устанавливаете опцию на from-file, включите Set checkers by file (-checkers-selection-file).

Зависимости

  • Эта опция доступна, только если вы устанавливаете Source code language (-lang) toc или C-CPP.

    Для проектов со смешанным C и Кода С++, средство проверки MISRA C:2012 анализирует только .c файлы.

  • Если вы устанавливаете Source code language (-lang) к C-CPP, можно активировать C, кодирующий средство проверки правила и C++, кодирующий средство проверки правила. Когда у вас есть и C и C++, кодирующий активные средства проверки правила, чтобы избежать дублирующихся результатов, Polyspace не производит C кодирующие правила, найденные в соединяющейся фазе (такие как Правило 8.3 MISRA C:2012).

Советы

  • Уменьшать бездоказательные результаты в Polyspace Code Prover:

    1. Найдите нарушения правила кодирования в SQO-subset1. Зафиксируйте свой код, чтобы обратиться к нарушениям и повторно выполнить верификацию.

    2. Найдите нарушения правила кодирования в SQO-subset2. Зафиксируйте свой код, чтобы обратиться к нарушениям и повторно выполнить верификацию.

  • Если вы выбираете опцию single-unit-rules или system-decidable-rules и примите решение обнаружить нарушения правила кодирования только, анализ может завершиться более быстрый, чем проверка других правил. Для получения дополнительной информации смотрите Подмножества Правила Кодирования, Проверенные Рано в Анализе.

  • Polyspace Code Prover не поддерживает проверку следующего:

    • Директива 4.13 и 4.14 MISRA C:2012

    • Правило 21.13, 21.14 MISRA C:2012, и 21.17 - 21.20

    • Правило 22.1 - 22.4 и 22.6 - 22.10 MISRA C:2012

    Для поддержки всех правил MISRA C:2012 включая инструкции по безопасности в Поправке 1 используйте Polyspace Bug Finder™.

  • В коде, сгенерированном при помощи Embedded Coder®, существуют известные отклонения от MISRA C:2012. Смотрите Объяснение Отклонений для Податливости MISRA C:2012 (Embedded Coder).

Информация о командной строке

Параметр: -misra3
Значение: mandatory | mandatory-required | single-unit-rules | system-decidable-rules | all | SQO-subset1 | SQO-subset2 | from-file
Пример (Средство поиска Ошибки): Polyspace Bug Finder - Ленг c - источники file_name - misra3 обязательно требуется
Пример (Программа автоматического доказательства Кода): Polyspace Code Prover - Ленг c - источники file_name - misra3 обязательно требуется
Пример (Сервер Средства поиска Ошибки): сервер средства поиска ошибки полипробела - Ленг c - источники file_name - misra3 обязательно требуется
Пример (Сервер Программы автоматического доказательства Кода): сервер программы автоматического доказательства полипробела кода - Ленг c - источники file_name - misra3 обязательно требуется

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2019a