Стройте диаграмму архитектуры

hisf_0003: Использование битовых операций

ID: Заголовокhisf_0003: Использование битовых операций
Описание

При использовании битовых операций в Stateflow® блоки,

AИзбегайте типов данных целого числа со знаком как операндов к битовым операциям.
Примечания

Обычно, битовые операции не значимы на целых числах со знаком. Нежелательное поведение может произойти. Например, операция сдвига может переместить знаковый бит в номер или числовой бит в знаковый бит.

ОбъяснениеAПродвиньте однозначный стиль моделирования.
Проверки Model AdvisorПроверяйте использование битовых операций в диаграммах Stateflow (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'
    IEC 61508-3, Таблица A.3 (2) 'Язык программирования со строгим контролем типов’

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'
    ISO 26262-6, Таблица 1 (1c) 'Осуществление строгого контроля типов'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'
    EN 50128, таблица A.3 (1) 'безопасное программирование'

  • DO-331, Раздел MB.6.3.3.d 'Программная архитектура поддается проверке'
    DO-331, Раздел MB.6.3.2.g 'Алгоритмы точен'

  • MISRA C:2012, правило 10.1

Смотрите такжеhisl_0019: Использование битовых операций
В последний раз измененныйR2016a

hisf_0004: Защитите от вызовов рекурсивной функции, чтобы улучшить податливость кода

ID: Заголовокhisf_0004: Защитите от вызовов рекурсивной функции, чтобы улучшить податливость кода
ОписаниеЧтобы улучшить податливость сгенерированного кода, не вызывайте функции рекурсивно. Это включает любую комбинацию графических функций, функций таблицы истинности, MATLAB® функции или Simulink® функции.
Необходимые условия
ПримечанияРекурсия существует когда вызовы функции сама прямо или косвенно посредством другого вызова функции.
ОбъяснениеСпособствуйте поведению вызова ограниченной функции.
Проверки Model AdvisorПроверяйте использование рекурсий (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица B.1 (6) 'Ограничила использование рекурсии'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 6 (1j) 'Никакие рекурсии'

  • EN 50128, таблица A.12 (6) 'Ограничила использование рекурсии'

  • DO-331, Раздел MB.6.3.2.g 'Алгоритмы точен'
    DO-331, Раздел MB.6.3.3.d 'Программная архитектура поддается проверке'

  • MISRA C:2012, правило 17.2

В последний раз измененныйR2021a
Примеры

Существует несколько шаблонов в Stateflow, который может привести к рекурсии.

Вызовы рекурсивной функции

Когда состояние по умолчанию A вводится, событие Evn широковещательно передается в действии входа A. Evn результаты в рекурсивном вызове алгоритма интерпретации. Поскольку A активен, исходящий переход A тестируется. Начиная с текущего события Evn совпадает с событием перехода (и из-за отсутствия условия), действие условия выполняется, широковещательно передавая Evn снова. Это приводит к новому вызову алгоритма интерпретации, который повторяет ту же последовательность шагов до переполнения стека.

Вызовы рекурсивной функции

hisf_0007: Использование условий соединения (обеспечивающий взаимное исключение)

ID: Заголовок

hisf_0007: Использование условий соединения (обеспечивающий взаимное исключение)

Описание

Улучшить ясность и предотвратить генерацию недостижимого кода:

AСделайте условия соединения взаимоисключающими.
Примечания

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

ОбъяснениеAУлучшите ясность и предотвратите генерацию недостижимого кода.
Ссылки
  • DO-331, Раздел MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'
    DO-331, Раздел MB.6.3.2.d 'Низкоуровневые требования поддается проверке'

  • ISO 26262-6, Таблица 1 (1e) – Использование хорошо доверяемых принципов разработки

Проверки Model AdvisorСоблюдение этого руководства по моделированию не может быть проверено при помощи проверки Model Advisor.
В последний раз измененныйR2012b
Пример

hisf_0013: Использование путей к переходу (пересекающий параллельные государственные границы)

ID: Заголовок

hisf_0013: Использование путей к переходу (пересекающий параллельные государственные границы)

Описание

Постараться не создавать схемы, которые трудно изучить,

AПостарайтесь не создавать переходы, которые пересекаются от одного параллельного состояния до другого.
Примечания

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

ОбъяснениеAУлучшите удобочитаемость модели.
Проверки Model Advisor

Проверяйте диаграммы Stateflow на пути к переходу, которые пересекают параллельные государственные границы (Simulink Check)

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'

  • DO-331, Раздел MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'

В последний раз измененныйR2017b
Пример

В следующем примере, когда Out_A 4, оба родительских состояния (A_Parent и B_Parent) повторно введены. Возвращение в родительские состояния сбрасывает значения Out_A и Out_B обнулять.

hisf_0014: Использование путей к переходу (проходящий через состояния)

ID: Заголовок

hisf_0014: Использование путей к переходу (проходящий через состояния)

Описание

Постараться не создавать схемы, которые сбивают с толку и включают пути к переходу без преимущества,

AИзбегайте путей к переходу, которые входят и из состояния, не заканчиваясь на подсостоянии.
Примечания

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

ОбъяснениеAУлучшите удобочитаемость модели.
Проверки Model Advisor

Проверяйте на несоответствующее использование путей к переходу (Simulink Check)

Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'

  • DDO-331, Раздел MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'

В последний раз измененныйR2018b
Примеры

hisf_0015: Сильный ввод данных (бросающий переменные и параметры в выражениях)

ID: Заголовок

hisf_0015: Сильный ввод данных (бросающий переменные и параметры в выражениях)

Описание

Упростить сильный ввод данных,

A

Явным образом введите переменные броска и параметры различных типов данных в:

  • Условия перехода

  • Действия перехода

  • Состояния активности

Примечания

Программное обеспечение Stateflow автоматически бросает переменные другого типа в совпадающий тип данных. Эта инструкция помогает разъяснить типы данных промежуточных переменных.

ОбъяснениеAПримените сильный ввод данных.
Проверки Model Advisor

Проверяйте диаграммы Stateflow на сильный ввод данных (Simulink Check)

Ссылки
  • IEC 61508-3, Таблица A.3 (2) ‘Язык программирования со строгим контролем типов’

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1c) 'Осуществление строгого контроля типов'

  • EN 50128, таблица A.4 (8) 'язык программирования со строгим контролем типов'

  • DO-331, Раздел MB.6.3.2.g 'Алгоритмы точен'

  • MISRA C:2012, правило 10.1
    MISRA C:2012, правило 12.2

В последний раз измененныйR2021a
Примеры

Рекомендуемый

Не рекомендуемый

hisf_0016: имена порта Stateflow

ID: Заголовок

hisf_0016: имена порта Stateflow

ОписаниеИмя ввода или вывода Stateflow должно совпасть с соответствующим сигналом. Исключение к инструкции - то, что допускающие повторное использование блоки Stateflow могут иметь различные имена порта.
ОбъяснениеПоддержите генерацию прослеживаемого кода.
Проверки Model Advisor

Проверяйте именование портов в диаграммах Stateflow (Simulink Check)

Ссылки
  • DO-331, Раздел MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'

  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'

В последний раз измененный2018a

hisf_0017: определение объема объекта данных Stateflow

ID: Заголовок

hisf_0017: определение объема объекта данных Stateflow

ОписаниеОбъекты данных Stateflow с локальным осциллографом должны быть заданы на уровне графика или ниже.
ОбъяснениеПоддержите генерацию прослеживаемого кода.
Проверки Model Advisor

Проверяйте определение объема объектов данных Stateflow (Simulink Check)

Ссылки
  • DO-331, Раздел MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'

  • IEC 61508-3, Таблица A.3 (3) 'Языковое подмножество'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 1 (1b) 'Использование языковых подмножеств'

  • EN 50128, таблица A.4 (11) 'языковое подмножество'

В последний раз измененный2018a
Примеры

Рекомендуемый

Не рекомендуемый