コード生成アドバイザーのチェック
コード生成の目的に対して利用できるチェック
コード生成の目的のチェックにより、コードを生成するために使用する Simulink® モデルおよびサブシステムの設計とトラブルシューティングが簡単になります。コード生成の目的の詳細については、コード生成アドバイザーを使用したアプリケーションの目的を参照してください。
コード生成アドバイザーには、各コード生成の目的に応じて、Simulink、Simulink Coder™、および Embedded Coder® からの次のチェックが含まれます。コード生成アドバイザーに固有の 2 つのチェックが以下のリストに含まれます。
チェック | 実行効率性 (すべてのターゲット) | ROM 効率性 (ERT ベースのターゲット) | RAM 効率性 (ERT ベースのターゲット) | 安全対策 (ERT ベースのターゲット) | トレーサビリティ (ERT ベースのターゲット) | デバッグ (すべてのターゲット) | MISRA C:2012 ガイドライン (ERT ベースのターゲット) | Polyspace® (ERT ベースのターゲット) |
---|---|---|---|---|---|---|---|---|
コード生成の目的に対するモデル コンフィギュレーションをチェック | 含める | 含める | 含める | 含める | 含める | 含める | 含める (下の [メモ] を参照) | 含める |
最適なバーチャル バスをチェック | 含める | 含める | 含める | N/A | N/A | N/A | N/A | N/A |
指定したシステム内の問題のあるブロックを特定 | 含める | 含める | 含める | N/A | N/A | N/A | N/A | N/A |
ハードウェア実行をチェック (Embedded Coder) | Embedded Coder が使用可能な場合は含める | Embedded Coder が使用可能な場合は含める | N/A | N/A | N/A | N/A | N/A | N/A |
問題のあるソフトウェア環境仕様を特定 (Embedded Coder) | トレーサビリティがより高い優先順位でなく、Embedded Coder が使用可能な場合は含める | トレーサビリティがより高い優先順位でなく、Embedded Coder が使用可能な場合は含める | N/A | N/A | N/A | N/A | N/A | N/A |
問題のあるコード インストルメンテーション (データ I/O) を特定 (Embedded Coder) | トレーサビリティまたはデバッグがより高い優先順位でなく、Embedded Coder が使用可能な場合は含める | トレーサビリティまたはデバッグがより高い優先順位でなく、Embedded Coder が使用可能な場合は含める | トレーサビリティまたはデバッグがより高い優先順位でなく、Embedded Coder が使用可能な場合は含める | N/A | N/A | N/A | N/A | N/A |
問題のあるサブシステムの設定を特定 (Embedded Coder) | N/A | Embedded Coder が使用可能な場合は含める | Embedded Coder が使用可能な場合は含める | N/A | N/A | N/A | N/A | N/A |
計算量の多い丸めコードを生成するブロックを特定 (Embedded Coder) | Embedded Coder が使用可能な場合は含める | Embedded Coder が使用可能な場合は含める | N/A | N/A | N/A | N/A | N/A | N/A |
問題のある固定小数点演算を特定 (Embedded Coder) | Embedded Coder または Fixed-Point Designer™ が使用可能な場合は含める | Embedded Coder または Fixed-Point Designer が使用可能な場合は含める | N/A | N/A | N/A | N/A | N/A | N/A |
1 ベースのインデックスを使用するブロックを特定 | 含める | 含める | N/A | N/A | N/A | N/A | N/A | N/A |
計算量が多い範囲外のチェック コードを生成する Lookup Table ブロックを識別 (Embedded Coder) | Embedded Coder が使用可能な場合は含める | Embedded Coder が使用可能な場合は含める | N/A | N/A | N/A | N/A | N/A | N/A |
論理ブロックの出力タイプをチェック (Embedded Coder) | Embedded Coder が使用可能な場合は含める | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
N/A | N/A | N/A | 含める | N/A | N/A | N/A | N/A | |
マルチタスク、厳密な型指定、優先順位の低下などの問題について、Data Store Memory ブロックをチェック | N/A | N/A | N/A | 含める | N/A | N/A | N/A | N/A |
連続サンプル時間と浮動小数点でないデータ型をもつブロックの出力信号を特定 | N/A | N/A | N/A | 含める | N/A | N/A | N/A | N/A |
調整可能パラメーターに制約があるブロックをチェック | N/A | N/A | N/A | 含める | N/A | N/A | N/A | N/A |
Data Store ブロックについて読み取り/書き込みの診断が有効であるかどうかをチェック | N/A | N/A | N/A | 含める | N/A | N/A | N/A | N/A |
バス信号を使った構造体パラメーターの使用のチェック | N/A | N/A | N/A | 含める | N/A | N/A | N/A | N/A |
モデリング エラーに対して Data Store ブロック サンプル時間をチェック | N/A | N/A | N/A | 含める | N/A | N/A | N/A | N/A |
データ ストア アクセスに関する順序の問題がないかどうかをチェック | N/A | N/A | N/A | 含める | N/A | N/A | N/A | N/A |
C/C++ 量産コード展開に推奨されないブロックがないかチェック (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Embedded Coder が使用可能な場合は含める | N/A |
MISRA C:2012 で推奨されないブロックをチェック (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Embedded Coder が使用可能な場合は含める | N/A |
サポートされていないブロック名のチェック (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Embedded Coder が使用可能な場合は含める | N/A |
Assignment ブロックの使用をチェック (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Embedded Coder が使用可能な場合は含める | N/A |
符号付き整数のビット演算のチェック (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Embedded Coder が使用可能な場合は含める | N/A |
再帰関数の呼び出しのチェック (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Embedded Coder が使用可能な場合は含める | N/A |
浮動小数点値の等式演算と不等式演算のチェック (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Embedded Coder が使用可能な場合は含める | N/A |
default ケースをもたない switch case 式のチェック (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Embedded Coder が使用可能な場合は含める | N/A |
非効率的な飽和コードを生成するコンフィギュレーション パラメーターをチェック (Embedded Coder) | Embedded Coder が使用可能な場合は含める | Embedded Coder が使用可能な場合は含める | N/A | Embedded Coder が使用可能な場合は含める | N/A | N/A | N/A | N/A |
メモ
コード生成アドバイザーでは、MISRA C:2012 ガイドラインの目的に対してモデルをチェックする際に、モデル アドバイザーの MISRA C:2012 ガイドライン チェックでチェックされたすべてのコンフィギュレーション パラメーター設定をすべて考慮するのではありません。コンフィギュレーション パラメーター設定を完全にチェックするには、次を行います。
モデル アドバイザーを開きます。
[タスク別] 、 [MISRA C:2012 のモデリング ガイドライン] に移動します。
フォルダー内でチェックを実行します。
モデル アドバイザーの使用方法の詳細については、モデル アドバイザーを使用したモデルのチェックを参照してください。
参考
指定したシステム内の問題のあるブロックを特定
コード生成でサポートされていないブロック、または展開に推奨されていないブロックを特定します。
説明
コード ジェネレーターはサポートしているブロックのコードのみを作成します。量産コード展開には推奨されないブロックもあります。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
ブロックがコード ジェネレーターでサポートされていません。 | モデルから指定されたブロックを削除するか、推奨されるブロックに置き換えます。 |
ブロックが量産コード展開に推奨されていません。 | モデルから指定されたブロックを削除するか、推奨されるブロックに置き換えます。 |
値が 1 の Gain ブロックをチェックします。 | Gain ブロックを Signal Conversion ブロックに置き換えます。 |
機能および制限事項
次のことが可能です。
このチェックはライブラリ モデルで実行できます。
Simulink Check™ ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。
参考
モデル アドバイザーの対象外指定の概要 (Simulink Check)
コード生成の目的に対するモデル コンフィギュレーションをチェック
コード生成の目的に対し、モデルのコンフィギュレーション パラメーターの設定をチェックします。
説明
[コンフィギュレーション パラメーター] ダイアログ ボックスの各パラメーターで、目的に応じてコード生成の推奨設定が異なる場合があります。このチェックは、各パラメーターの推奨設定を特定するのに役立ち、目的に応じてコードを最適化できます。
結果と推奨アクション
条件 | 推奨アクション |
---|---|
パラメーターが、特定の目的の推奨値以外の値に設定されています。 | パラメーターを推奨値に設定します。 メモ あるパラメーター値を変更すると、他のパラメーターにも影響を及ぼす場合があります。チェックに合格するまでに複数回の反復が必要になる場合があります。 |
アクション結果
チェック ウィンドウの [アクション] の下にある [パラメーターの変更] をクリックすると、パラメーター値が推奨値に変わります。