-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:
Найдите нарушения правил кодирования в SQO-subset1
. Исправьте код для устранения нарушений и повторите верификацию.
Найдите нарушения правил кодирования в 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 |
Пример (Code Prover): Polyspace Code Prover -lang c -sources |
Пример (Bug Finder Server):
polyspace-bug-finder-server -lang c -sources file_name |
Пример (Код Prover Server):
Полипространство -code-prover-server -lang c -sources file_name |