exponenta event banner

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

В этом примере показано, как запретить моделям Simulink ® создавать неиспользуемые переменные в сгенерированном коде, когда условие исполнения исходного блока является безусловным, а условие исполнения целевого блока является условным. Предотвращение создания неиспользуемых переменных в сгенерированном коде увеличивает вероятность генерации кода C, соответствующего правилу 2.2 руководящих принципов MISRA C:2012.

Описание модели

В этой модели блок «Приемник исполнения» имеет выражения условия исполнения. V == 1 и V == 2.

Создание кода C с помощью встроенного кодера

Предположим, что значение V имеет значение 3.

При создании кода с помощью встроенных Coder™ выражения условия исполнения V == 1 и V == 2 вычислить для false. Simulink отключает все блоки, соединенные с входным и выходным потоком блока Variant Sink. Однако код создается для всех вариантов выбора в модели.

Переменная Add создается в созданном коде. Во время компиляции кода эта переменная остается неиспользуемой, так как оба варианта вычисляются как false.

Чтобы избежать проблем моделирования, которые могут создать неиспользуемые переменные в сгенерированном коде, выберите Параметры модели > Диагностика. Разверните раздел Дополнительные параметры и выполните прокрутку до нижней части диалогового окна. В разделе Проблемы моделирования, связанные с исполнениями, установите для параметра Несовпадение условий исполнения в источнике сигнала и пункте назначения значение warning или error. Установка этого параметра предупреждает о неиспользуемых переменных во время создания кода.

См. также