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

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

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

В этой модели блок 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. Установка этого параметра предупреждает вас о неиспользуемых переменных во время генерации кода.

Смотрите также