В этом примере показано, как предотвратить создание моделями Simulink ® неиспользуемых переменных в сгенерированном коде, когда условие варианта исходного блока является безусловным, а условие варианта целевого блока - условным. Предотвращение создания неиспользованных переменных в сгенерированном коде увеличивает вероятность генерации кода С, который соответствует правилу 2.2 руководящих принципов C:2012 MISRA.
В этой модели блок Variant Sink имеет выражения условий варианта V == 1
и V == 2
.
Предположим, что значение V
установлено в 3
.
Когда вы генерируете код с помощью Embedded Coder™, выражения условия варианта V == 1
и V == 2
рассчитать, чтобы false
. Simulink отключает все блоки, соединенные с входом и выходом потоком блока Variant Sink. Однако код генерируется для всех вариантов выбора в модели.
Переменная Add
создается в сгенерированном коде. Во время компиляции кода эта переменная остается неиспользованной, поскольку оба варианта вычисляют false
.
Чтобы избежать проблем моделирования, которые могут создать неиспользованные переменные в сгенерированном коде, выберите Model Settings > Diagnostics. Разверните раздел продвинутые параметры и прокрутите до нижней части диалогового окна. В разделе Проблемы моделирования, связанные с вариантами, установите несоответствие условий Варианта в источнике сигнала и параметре назначения на warning
или error
. Установка этого параметра предупреждает вас о неиспользованных переменных во время генерации кода.