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