ID: Заголовок | hisf_0064: Операции сдвига для данных Stateflow®, чтобы улучшить податливость кода | |
---|---|---|
Описание | Чтобы улучшить податливость кода сгенерированного кода с операциями сдвига бита Stateflow, не выполняйте: | |
A | Операции сдвига вправо, больше, чем битная ширина входного типа, или отрицательной величиной. | |
B | Операции сдвига влево, больше, чем битная ширина выходного типа, или отрицательной величиной. | |
Примечание | Если вы следуете за этим и другими руководствами по моделированию, вы увеличиваете вероятность генерации кода, который выполняет стандарты кодирования. | |
Объяснение | Избегать операций сдвига в сгенерированном коде, который может быть кодирующим стандартным нарушением. | |
Проверки Model Advisor | Проверяйте использование операций сдвига для данных Stateflow (Simulink Check) | |
Ссылки |
| |
Необходимые условия | hisl_0060: Параметры конфигурации, которые улучшают податливость MISRA C:2012 | |
В последний раз измененный | R2017b |
ID: Заголовок | hisf_0065: Введите операции броска в Stateflow, чтобы улучшить податливость кода | |
---|---|---|
Описание | В диаграммах Stateflow, которые используют язык действия C, используйте := обозначение, чтобы защитить от Stateflow, бросая вычисления целочисленной и фиксированной точки к более широким типам данных, чем типы входных данных. | |
Примечание | Если вы следуете за этим и другими руководствами по моделированию, вы увеличиваете вероятность генерации кода, который выполняет стандарты кодирования. | |
Объяснение | Избегать неявных бросков в сгенерированном коде, который может нарушить стандарты кодирования. | |
Проверки Model Advisor | Проверяйте операции присвоения в диаграммы Stateflow (Simulink Check) | |
Ссылки |
| |
Необходимые условия | hisl_0060: Параметры конфигурации, которые улучшают податливость MISRA C:2012 | |
В последний раз измененный | R2017b |
ID: Заголовок | hisf_0211: Защитите от использования унарных операторов в диаграммах Stateflow, чтобы улучшить податливость кода | |
---|---|---|
Описание | Улучшить податливость кода сгенерированного кода: | |
A | Не используйте операторы унарный минус на типах данных без знака. | |
Примечание | MATLAB® и языки действия C не ограничивают использование операторов унарный минус по выражениям без знака. | |
Объяснение | Улучшите податливость кода сгенерированного кода. | |
Проверки Model Advisor | Проверяйте диаграммы Stateflow на унарные операторы (Simulink Check) | |
Ссылки |
| |
В последний раз измененный | R2017b |
ID: Заголовок | hisf_0213: Защитите от вычислений деления на нуль в диаграммах Stateflow, чтобы улучшить податливость MISRA C:2012 | |
---|---|---|
Описание | Чтобы улучшить податливость MISRA C:2012 сгенерированного кода для и основанных на целом числе операций с плавающей точкой, выполнить одно из следующих действий: | |
A | Выполните статический анализ модели, чтобы доказать, что деление на нуль не возможно | |
B | Обеспечьте ошибку времени выполнения, регистрируясь в сгенерированном коде C путем явного моделирования проверки ошибок в Stateflow | |
C | Измените процесс генерации кода, пользующийся Заменяющими Библиотеками Кода (CRLs), чтобы защитить от деления на нуль | |
D | Для основанных на целом числе операций очистите параметр конфигурации Remove code that protects against division arithmetic exceptions | |
Примечание | Используя ошибку времени выполнения проверка вводит дополнительный вычислительный и память наверху в сгенерированном коде. Поэтому желательно использовать инструменты статического анализа, чтобы ограничить ошибки в сгенерированном коде. Можно использовать функциональность поиска ошибок проектирования в Simulink® Design Verifier™, чтобы выполнить статический анализ. Для получения дополнительной информации смотрите Статическое Обнаружение Ошибки времени выполнения (Simulink Design Verifier). В качестве альтернативы, если у вас есть лицензия Simulink Design Verifier, можно использовать проверку Model Advisor, Обнаруживают Деление на нуль (Simulink Design Verifier), чтобы идентифицировать ошибки деления на нуль в модели. Если статический анализ решает, что разделы кода могут иметь деление на нуль, то добавьте защиту во время выполнения в тот раздел модели (см. пример). Используя модифицированный CRL или выбор параметра Remove code that protects against division arithmetic exceptions защищает операции деления от операций деления на нуль. Однако это действие действительно вводит дополнительный вычислительный и память наверху. Используйте только одну из мер защиты во время выполнения (B, C или D) в модели. Используя больше чем одну опцию может привести к избыточным операциям защиты. | |
Объяснение | A, B , CD | Улучшите податливость MISRA C:2012 сгенерированного кода |
Проверки Model Advisor | Соблюдение этого руководства по моделированию не может быть проверено при помощи проверки Model Advisor. | |
Ссылки |
| |
Смотрите также |
| |
В последний раз измененный | R2018a | |
Пример | Деление во время выполнения нулевой защитой может быть понято с помощью графической функции. Уникальные функции должны быть обеспечены для каждого типа данных.
|