Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

無条件および条件付きのバリアント選択肢での未使用の変数の作成を防止

この例では、伝播先ブロックのバリアント条件が無条件で、伝播先ブロックのバリアント条件が条件付きの場合に、Simulink® モデルによって生成コード内に未使用の変数が作成されるのを防止する方法を説明します。生成コード内の未使用の変数の作成を防止することで、MISRA C:2012 ガイドラインのルール 2.2 に準拠した C コードが生成される可能性が高まります。

モデルの説明

このモデルでは、Variant Sink ブロックにバリアント条件式 V == 1 および V == 2 があります。

Embedded Coder を使用した C コードの生成

V の値が 3 に設定されていると仮定します。

Embedded Coder™ を使用してコードを生成するとき、バリアント条件式 V == 1V == 2false として評価されます。Simulink は、Variant Sink ブロックの入力および出力ストリームに接続されたすべてのブロックを無効にします。しかし、コードはモデル内のすべてのバリアント選択肢に対して生成されます。

生成コード内に変数 Add が作成されます。コードのコンパイル中、両方の選択肢が false として評価されるため、この変数は未使用になります。

生成コード内で未使用の変数が作成される原因となるモデル化の問題を防止するには、[モデル設定][診断] を選択します。[詳細設定] パラメーター セクションを展開し、ダイアログ ボックスの一番下までスクロールします。[バリアントに関するモデル化の問題] セクションで、[信号のソースと接続先におけるバリアント条件の不一致] パラメーターを warning または error に設定します。このパラメーターを設定すると、コード生成中に未使用に関する変数の警告が表示されるようになります。

参考