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