exponenta event banner

Проверьте C:2012 MISRA (-misra3)

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

Описание

Укажите, следует ли проверять наличие нарушений правил 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. Чтобы очистить определенные инструкции, нажмите кнопку. В столбце «Комментарий» введите обоснование отключения руководства. Например, можно ввести идентификатор отклонения, который ссылается на запись отклонения для руководства. Обоснование появится в созданном отчете.

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) введите полный путь к файлу в предоставленном поле или нажмите кнопку Обзор (Browse).

Если для параметра установлено значение from-file, включить Set checkers by file (-checkers-selection-file).

Зависимости

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

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

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

Совет

  • Для уменьшения числа недоказанных результатов в программе Polyspace Code Prover:

    1. Поиск нарушений правил кодирования в SQO-subset1. Исправьте код, чтобы устранить нарушения, и повторите проверку.

    2. Поиск нарушений правил кодирования в SQO-subset2. Исправьте код, чтобы устранить нарушения, и повторите проверку.

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

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

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

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

    • MISRA 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
Пример (поиск ошибок): polyspace-bug-finder -lang c -sources file_name -misra3 mandatory-required
Пример (проверка кода): polyspace-code-prover -lang c -sources file_name -misra3 mandatory-required
Пример (сервер поиска ошибок): polyspace-bug-finder-server -lang c -sources file_name -misra3 mandatory-required
Пример (сервер проверки кода): polyspace-code-prover-server -lang c -sources file_name -misra3 mandatory-required

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

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

Не рекомендуется начинать с R2019a