exponenta event banner

MISRA C:2012 Сводные таблицы информации о соответствии

Сводные таблицы соответствия

MathWorks ® оценивает код C, созданный Embedded Coder ® от Simulink ® и Stateflow ®, в соответствии со стандартами кодирования MISRA C:2012. Результаты этой работы доступны в этих сводных таблицах соответствия. Эти таблицы идентифицируют:

  • Методы, используемые для достижения соответствия:

    • Соответствие: Соответствие правилу/директиве достигается за счет соответствия процессу создания кода, рекомендациям по моделированию или проверкам Model Advisor. Там, где это применимо, имеются пояснительные примечания, содержащие информацию, относящуюся к методам соответствия или действиям, которые можно выполнить для выполнения директивы или правила.

    • Отклонение: правило или директива несовместимы.

  • Поддерживает ли Polyspace ® MISRA C:2012 Checker правило или директиву.

Эти таблицы можно использовать при подготовке заявления MISRA C:2012 о соответствии проекта требованиям раздела 5.3 Руководства MISRA C:2012 по использованию языка C в критических системах. Эти таблицы соответствуют опубликованным таблицам правил и директив MISRA C:2012. Они основаны только на обязательных и обязательных категориях (не для категорий «Рекомендации» и «Читаемость»).

Директивы MISRA C:2012 «Реализация»

ДирективаКатегорияСоблюдениеПоддержка Polyspace?
1.1Необходимый

Соответствует требованиям:

Да, частично поддерживается

Директивы MISRA C:2012 «Компиляция и сборка»

ДирективаКатегорияСоблюдениеПоддержка Polyspace?
2.1НеобходимыйСоответствующийДа

Директивы MISRA C:2012 «Отслеживание требований»

ДирективаКатегорияСоблюдениеПоддержка Polyspace?
3.1Необходимый

Соответствует требованиям:

Нет

Директивы MISRA C:2012 «Дизайн кода»

ДирективаКатегорияСоблюдениеПоддержка Polyspace?
4.1Необходимый

Соответствует требованиям:

Да
4.3Необходимый

Соответствует требованиям:

Нет
4.6Необходимый

Неприменимо.

Н/Д
4.7Необходимый

Соответствует требованиям:

Отклонение:

Да [а]
4.10НеобходимыйСоответствующийДа
4.11Необходимый

Соответствует требованиям:

Да
4.12Необходимый

Соответствует требованиям:

Нет

[a] Средство проверки MISRA C:2012 Polyspace может пометить директиву 4.7 как нарушение правила 17.7 (Polyspace Bug Finder) для пользовательских функций, если нет информации о том, содержит ли возвращаемое значение информацию об ошибке.

Правила MISRA C:2012 «Стандартная среда C»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
1.1НеобходимыйСоответствующийДа
1.3НеобходимыйСоответствующийДа

Правила C:2012 MISRA «Неиспользуемый код»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
2.1Необходимый

Соответствует требованиям:

Да
2.2НеобходимыйСоответствующийДа

«Комментарии» MISRA C:2012 Правила

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
3.1Необходимый

Соответствует требованиям:

Да
3.2НеобходимыйСоответствующийДа

Правила C:2012 MISRA «Наборы символов и лексические условные обозначения»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
4.1НеобходимыйСоответствующийДа

Правила C:2012 MISRA «идентификаторы»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
5.1Необходимый

Соответствует требованиям:

Да
5.2Необходимый

Соответствует требованиям:

Да
5.4Необходимый

Соответствует требованиям:

Да
5.5Необходимый

Соответствует требованиям:

Да
5.6Необходимый

Соответствует требованиям:

Да
5.7Необходимый

Соответствует требованиям:

Да
5.8Необходимый

Соответствует требованиям:

Да

«Типовые» правила MISRA C:2012

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
6.1Необходимый

Соответствует требованиям:

Да
6.2Необходимый

Соответствует требованиям:

Да

«Литералы и константы» MISRA C:2012 Правила

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
7.1НеобходимыйСоответствующийДа
7.2НеобходимыйСоответствующийДа
7.4НеобходимыйСоответствующийДа

«Декларации и определения» MISRA C:2012 Правила

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
8.1НеобходимыйСоответствующийДа
8.2НеобходимыйСоответствующийДа
8.3НеобходимыйСоответствующийДа
8.6НеобходимыйСоответствующийДа
8.8НеобходимыйСоответствующийДа
8.10НеобходимыйСоответствующийДа
8.12Необходимый

Соответствует требованиям:

Да
8.14НеобходимыйСоответствующийДа

Правила C:2012 MISRA «инициализации»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
9.1Обязательный

Соответствует требованиям:

Да
9.4НеобходимыйСоответствующийДа
9.5НеобходимыйСоответствующийДа

Правила MISRA C:2012 «Модель существенного типа»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
10.2НеобходимыйСоответствующийДа

Правила C:2012 MISRA «Преобразование типа указателя»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
11.1НеобходимыйСоответствующийДа
11.2НеобходимыйСоответствующийДа
11.3Необходимый

Соответствует требованиям:

Да
11.6НеобходимыйСоответствующийДа
11.7НеобходимыйСоответствующийДа
11.8Необходимый

Соответствует требованиям:

Да

Правила C:2012 MISRA «Выражения»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
12.2НеобходимыйСоответствующийДа

«Побочные эффекты» MISRA C:2012 Правила

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
13.1НеобходимыйСоответствующийДа
13.2Необходимый

Соответствует требованиям:

Да
13.5Необходимый

Соответствует требованиям:

Отклонение:

Да
13.6ОбязательныйСоответствующийДа

Правила MISRA C:2012 «Выражения управляющих операторов»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
14.2Необходимый

Соответствует требованиям:

Да
14.3Необходимый

Соответствует требованиям:

Да

Правила MISRA C:2012 «Поток управления»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
15.2НеобходимыйСоответствующийДа
15.3НеобходимыйСоответствующийДа
15.6НеобходимыйСоответствующийДа
15.7НеобходимыйСоответствующийДа

Правила C:2012 MISRA «Операторы переключения»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
16.2НеобходимыйСоответствующийДа
16.3НеобходимыйСоответствующийДа
16.4Необходимый

Соответствует требованиям:

Да
16.5НеобходимыйСоответствующийДа
16.6НеобходимыйСоответствующийДа
16.7НеобходимыйСоответствующийДа

Правила C:2012 MISRA «Функции»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
17.1НеобходимыйСоответствующийДа
17.2Необходимый

Соответствует требованиям:

Да
17.3ОбязательныйСоответствующийДа
17.4ОбязательныйСоответствующийДа
17.6ОбязательныйСоответствующийДа

Правила C:2012 MISRA «указатели и массивы»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
18.1НеобходимыйСоответствующийДа
18.2НеобходимыйСоответствующийДа
18.3НеобходимыйСоответствующийДа
18.6НеобходимыйСоответствующийДа
18.7НеобходимыйСоответствующийДа
18.8НеобходимыйСоответствующийДа

Правила MISRA C:2012 «Перекрывающееся хранилище»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
19.1ОбязательныйСоответствующийДа

Правила C:2012 MISRA «Директивы предварительной обработки»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
20.2НеобходимыйСоответствующийДа
20.3НеобходимыйСоответствующийДа
20.4НеобходимыйСоответствующийДа
20.6НеобходимыйСоответствующийДа
20.7НеобходимыйСоответствующийДа
20.9НеобходимыйСоответствующийДа
20.11НеобходимыйСоответствующийДа
20.12НеобходимыйСоответствующийДа
20.13НеобходимыйСоответствующийДа
20.14НеобходимыйСоответствующийДа

«Стандартные библиотеки» MISRA C:2012 Правила

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
21.1НеобходимыйСоответствующийДа
21.2Необходимый

Соответствует требованиям:

Да
21.3Необходимый

Соответствует требованиям:

Да
21.4НеобходимыйСоответствующийДа
21.5НеобходимыйСоответствующийДа
21.6Необходимый

Соответствует требованиям:

Да
21.7НеобходимыйСоответствующийДа
21.8НеобходимыйСоответствующийДа
21.9НеобходимыйСоответствующийДа
21.10НеобходимыйСоответствующийДа
21.11НеобходимыйСоответствующийДа
21.12НеобходимыйСоответствующийДа

Правила C:2012 MISRA «Ресурсы»

ПравилоКатегорияСоблюдениеПоддержка Polyspace?
22.1НеобходимыйСоответствующийДа
22.2ОбязательныйСоответствующийДа
22.3НеобходимыйСоответствующийДа
22.4ОбязательныйСоответствующийДа
22.5ОбязательныйСоответствующийДа
22.6ОбязательныйСоответствующийДа

Пояснительные примечания

Эти пояснительные примечания содержатся в сводных таблицах MISRA C:2012 Compliance Information Summary Tables.

Пояснительная записка к директиве 1.1

Сведения об определяемом реализацией поведении встроенного кодера доступны в разделе Настройка параметров среды выполнения. Документация компилятора выходит за рамки области применения.

Кодировка набора символов управляется с помощью SavedCharacterEncoding параметр модели. Дополнительные сведения см. в разделе slCharacterEncoding.

Настройте метод целочисленного деления в диалоговом окне Параметры конфигурации модели (Model Configuration Parameters) на панели Реализация оборудования (Hardware Implementation). Дополнительные сведения см. в разделе Настройка параметров среды выполнения

Встроенный кодер генерирует #pragma когда пользователь:

В обоих случаях вы несете ответственность за документирование предполагаемого использования #pragma. Дополнительные сведения см. в разделе Управление данными и размещением функций в памяти путем вставки прагматиков.

Чтобы включить генерацию битовых полей, выполните следующие действия.

Если модель использует преобразование одного типа данных в другой, Polyspace Checker показывает нарушение Dir 1.1 из созданного кода модели. В этом случае нарушение, вытекающее из модели, не является проблемой, если вы документируете это явное преобразование в соответствии с рекомендациями MISRA.

Пояснительная записка к директиве MISRA 3.1

Можно связать элементы модели требований. Эти связи включены в сгенерированный код C для обеспечения возможности отслеживания из документа требований, элементов модели и сгенерированного кода. Дополнительные сведения см. в разделе Просмотр ссылок на требования к Simulink, связанных с элементами модели, и блоков и требований к ссылкам (требования к Simulink).

Пояснительная записка к директиве 4.1

Можно использовать Finder™ ошибки Polyspace для определения ошибок времени выполнения и Prover™ кода Polyspace для подтверждения отсутствия ошибок времени выполнения. Для получения дополнительной информации см.:

Simulink Design Verifier можно использовать для обнаружения конструктивных ошибок на уровне модели. Дополнительные сведения см. в разделе Запуск анализа обнаружения ошибок конструкции (Simulink Design Verifier).

Пояснительная записка к директиве 4.3

Встроенный кодер не вызывает непосредственно код языка сборки. Можно добавлять вызовы к функциям языка сборки через S-функции, библиотеки замены кода, Stateflow и в блоках MATLAB ®. Эти вызовы документируются как вызовы внешних функций C. В этих случаях вы несете ответственность за инкапсуляцию .

Для получения дополнительной информации см.:

Пояснительная записка к директиве 4.6

Embedded Coder заменяет основные типы данных типизированными типами, совместимыми с директивой 4.6. Руководство не требуется, так как это поведение является поведением по умолчанию во встроенном кодере. Дополнительные сведения см. в разделе Замена и переименование типов данных для соответствия стандартам кодирования и типам.

Пояснительная записка к директиве 4.11

Требования настоящей директивы удовлетворяют:

«Статически продемонстрировать, что входные параметры никогда не могут принимать недопустимые значения».

Средство проверки кода Polyspace можно использовать для анализа диапазонов параметров и подтверждения отсутствия ошибок времени выполнения, вызванных значениями вне диапазона. Дополнительные сведения см. в разделе Выполнение анализа Polyspace на коде, созданном с помощью встроенного кодера (средство проверки кода Polyspace).

Пояснительная записка к правилу 2.1

Embedded Coder не проверяет пользовательский код из потока Stateflow. Вы должны позаботиться о нарушениях, о которых сообщалось.

Пояснительная записка к правилам 5.1, 5.2, 5.4, 5.5, 5.6, 5.7 и 5.8

Встроенный кодер настраивается для ограничения количества символов, налагаемых реализацией. Дополнительные сведения см. в разделе Максимальная длина идентификатора.

Чтобы обеспечить уникальные имена для различных типов переменных (локальные переменные области, глобальные переменные области, макросы и т. д.), реализуйте соглашение об именовании. Дополнительные сведения см. в разделе Параметры конфигурации модели: Символы генерации кода.

Пояснительная записка к правилу 8.12

Встроенный кодер поддерживает использование перечисленных данных. Файл, используемый для определения перечисления, может быть создан вручную или автоматически. Файлы, определяющие перечисления, генерируемые встроенным кодером, по конструкции соответствуют правилу MISRA C:2012 8.12. При создании файла определения вручную вы несете ответственность за обеспечение соответствия требованиям. Дополнительные сведения см. в разделе Использование перечисляемых данных в моделях Simulink.

Пояснительная записка к правилам 10.1 и 10.2

Встроенный кодер не создает непосредственно данные типа char. Данные типа char могут быть введены определяемыми пользователем S-функциями, библиотеками замены кода и пользовательскими классами хранения. В этом случае ограничьте использование простого символа:

  • Простой тип символа для символьных значений

  • Подписанный и неподписанный тип символа для числовых значений