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

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

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

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

Сгенерируйте код С, используя Embedded Coder

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

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

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

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

См. также