Check MISRA C:2012 (-misra3)

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

Описание

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

Задать опцию

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

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

Зачем использовать эту опцию

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

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

Настройки

По умолчанию: mandatory-required

mandatory

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

mandatory-required

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

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

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

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

Примечание

Чтобы выключить некоторые необходимые инструкции, вместо 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) на C или C-CPP.

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

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

Совет

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

    1. Найдите нарушения правил кодирования в SQO-subset1. Исправьте код для устранения нарушений и повторите верификацию.

    2. Найдите нарушения правил кодирования в SQO-subset2. Исправьте код для устранения нарушений и повторите верификацию.

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

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

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

    • МИСРА C:2012 правила 21.13, 21.14 и 21.17 - 21.20

    • МИСРА C:2012 правила 22.1 - 22.4 и 22.6 - 22.10

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

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

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

Параметр: -misra3
Значение: mandatory | mandatory-required | single-unit-rules | system-decidable-rules | all | SQO-subset1 | SQO-subset2 | from-file
Пример (Bug Finder): Polyspace Bug Finder -lang c -sources file_name -misra3 обязательный-обязательный
Пример (Code Prover): Polyspace Code Prover -lang c -sources file_name -misra3 обязательный-обязательный
Пример (Bug Finder Server): polyspace-bug-finder-server -lang c -sources file_name -misra3 обязательный-обязательный
Пример (Код Prover Server): Полипространство -code-prover-server -lang c -sources file_name -misra3 обязательный-обязательный

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

расширить все

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