Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink Coder のチェック

Simulink Coder のチェックの概要

コード生成用にモデルを構成するには、Simulink® Coder™ のモデル アドバイザー チェックを使用します。

参考

1 ベースのインデックスを使用するブロックを特定

チェック ID: mathworks.codegen.cgsl_0101

1 ベースのインデックスを使用するブロックを特定します。

説明

生成されたコードでは 0 ベースのインデックスの方が 1 ベースのインデックスよりも効果的です。

0 ベースのインデックスによって、生成コードの実行効率性が向上します。

Simulink Coder で使用できます。

結果と推奨アクション

条件推奨アクション
モデルまたはサブシステムには 1 ベースのインデックス用に構成されたブロックが含まれています。ブロックを 0 ベースのインデックス用に構成します。サポートするブロックを更新します。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • Simulink Check™ ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

コード生成に対するソルバーをチェックします

チェック ID: mathworks.codegen.SolverCodeGen

モデル ソルバーとサンプル時間コンフィギュレーションの設定をチェックします。

説明

正しくないコンフィギュレーション設定によってコード ジェネレーターのコード生成が停止する可能性があります。サンプル時間のアンダースペックは、予期しない結果をもたらします。データの破損や予期しない動作を生じる可能性のあるコードの生成は避けてください。

Simulink Coder で使用できます。

結果と推奨アクション

条件推奨アクション
モデル レベルのコード生成のソルバー タイプが正しく設定されていません。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインで、[タイプ][固定ステップ] に設定します。

マルチタスク診断オプションが [エラー] に設定されていません。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [診断] ペインで、

ヒント

サブシステムからコードを生成するには、ソルバーの設定を変更する必要はありません。サブシステムを右クリックしてサブシステムのコンテキスト メニューから [C/C++ コード][このサブシステムをビルド] または [C/C++ コード][S-Function を生成] を選択すると、ビルド プロセスによって [ソルバー タイプ][固定ステップ] に自動的に変更されます。

参考

コード生成でサポートされないブロックのチェック

チェック ID: mathworks.codegen.codeGenSupport

コード生成でサポートされないブロックを特定します。

説明

このチェックで、Simulink Coder および Embedded Coder®Simulink ブロック サポート テーブルで特定されているコード生成に適していないモデル構成を部分的に特定します。コード生成でサポート ノート付きのブロックを使用する場合は、情報を検討し、次のアドバイスに従ってください。

Simulink Coder で使用できます。

結果と推奨アクション

状況推奨アクション
モデルまたはサブシステムに、コード生成に使用されるべきではないブロックが含まれています。結果にリストされるブロックを置き換えることを検討してください。状態を特定するには、問題のある項目のリストの要素をクリックします。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • ライブラリにリンクされたブロックの内容を解析します。

  • マスク サブシステムの内容を解析します。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

ツールチェーン アプローチを使用して生成コードをビルドするように、モデルをチェックして更新

チェック ID: mathworks.codegen.toolchainInfoUpgradeAdvisor.check

生成コードをビルドするためにモデルでツールチェーン設定を使用しているかどうかをチェックします。

説明

モデルがテンプレート makefile アプローチとツールチェーン アプローチのどちらを使用して生成コードをビルドしているのかをチェックします。

Simulink Coder で使用できます。

R2013b より前に作成された、[システム ターゲット ファイル]ert.tlcert_shrlib.tlc または grt.tlc に設定されているモデルを開くと、ソフトウェアは、テンプレート makefile アプローチの使用からツールチェーン アプローチの使用へとモデルのアップグレードを自動的に試みます。

ソフトウェアがモデルをアップグレードしなかった場合、このチェックは原因を特定し、モデルをアップグレードするために実行できるアクションがあれば提示します。

モデルが使用しているアプローチを決定するために、[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインを確認することもできます。ツールチェーン アプローチは、次のパラメーターを使用して生成コードをビルドします。

テンプレート makefile アプローチは、次の設定を使用して生成コードをビルドします。

  • コンパイラ最適化レベル

  • カスタム コンパイラ最適化フラグ

  • makefile の生成

  • テンプレート makefile

結果と推奨アクション

状況推奨アクションコメント
モデルはツールチェーン アプローチを使用するように設定されています。アクションなし。モデルは自動的にアップグレードされました。
モデルはツールチェーン アプローチを使用するように設定されていません。 モデルはツールチェーン アプローチを使用するように自動的にアップグレードできません。システム ターゲット ファイルがツールチェーン準拠ではありません。[システム ターゲット ファイル]ert.tlcert_shrlib.tlc または grt.tlc などのツールチェーン準拠のターゲットに設定してください。
モデルはツールチェーン アプローチを使用するように設定されていません (パラメーター値が既定値ではありません)。モデルはツールチェーン アプローチを使用するように自動的にアップグレードできます。[モデルの更新] をクリックします。パラメーターは、[コンパイラ最適化レベル][最適化オン (高速に実行)] に設定されていることを除き、それぞれ既定値に設定されています。[モデルの更新] をクリックすると、[コンパイラ最適化レベル] は既定値の [最適化オフ (高速にビルド)] に設定され、続いてモデルがアップグレードされます。アップグレードされたモデルでは、[ビルド構成][Faster Builds] に設定されます。モデルを保存すると、これらの変更が永続的なものとなります。
モデルはツールチェーン アプローチを使用するように設定されていません (パラメーター値が既定値ではありません)。モデルはツールチェーン アプローチを使用するように自動的にアップグレードできません。

次のパラメーターの 1 つ以上が既定値に設定されていません。

  • makefile の生成 (既定の設定: [有効])

  • テンプレート makefile (既定の設定: ターゲット固有の既定の TMF)

  • コンパイラ最適化レベル (既定の設定: [最適化オフ (高速にビルド)])

  • make コマンド (既定の設定: 引数なしの make_rtw)

ツールチェーン アプローチを使用するためのモデルのアップグレードを参照。

アクション結果

[モデルの更新] をクリックすると、生成コードのビルドにツールチェーン アプローチを使用するようにモデルがアップグレードされます。

参考

ert.tlc システム ターゲット ファイルを使用する組み込みターゲット モデルのチェックと更新

チェック ID: mathworks.codegen.codertarget.check

ert.tlc システム ターゲット ファイルを使用する組み込みターゲット モデルのチェックと更新を行います。

説明

[システム ターゲット ファイル]ert.tlc 以外のファイルに設定され、ターゲット ハードウェアが [ert.tlc] および類似の設定を使用するサポート対象の Texas Instruments™ C2000™ プロセッサの 1 つであるモデルをチェックし、更新します。

Simulink Coder で使用できます。

結果と推奨アクション

状況推奨アクション
[システム ターゲット ファイル][ert.tlc - Embedded Coder] に設定されています。アクションなし

[システム ターゲット ファイル]ert.tlc 以外のファイルに設定され、[ハードウェア ボード] パラメーターが Texas Instruments C2000 プロセッサの Embedded Coder サポート パッケージによってサポートされるプロセッサに設定されています。

アップグレード アドバイザーで対応するチェックを実行します。

  1. Simulink エディターの [モデル化] タブで、[モデル アドバイザー] をクリックします。

  2. [アップグレード アドバイザー] ペインを開いて、チェック [組み込みターゲット モデルをチェックして ert.tlc システム ターゲット ファイルを使用するように更新] を選択します。

  3. チェックを右クリックして、[このチェックを実行] を選択します。

  4. チェックにパスしたら、[コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[ハードウェア実行] ペインに移動して適切な [ハードウェア ボード] が選択されていることを確認します。

アクション結果

[このチェックを実行] をクリックすると、[モデル コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] ペインで以下のパラメーターが自動的に設定されます。

  • [システム ターゲット ファイル] パラメーターは ert.tlc に設定される。

  • [ツールチェーン] パラメーターは以前のツールチェーンと一致するように設定される。

  • [ビルド構成] パラメーターはビルド構成と一致するように設定される。

機能および制限事項

新しいワークフローは、機能強化された makefile に依存して生成コードをビルドするツールチェーン アプローチを使用します。これは、前のコンフィギュレーションで [Build format] パラメーターを [Project] に設定するのと同等ではありません。そのため、新しいワークフローは、CCS 3.3 IDE 内で IDE プロジェクトを自動生成できません。

参考

ツールチェーン構成

MATLAB の各リリース間で大幅な変更があったターゲットを使用しているモデルのチェックおよび更新

チェック ID: mathworks.codegen.realtime2CoderTargetInfoUpgradeAdvisor.check

MATLAB® の各リリース間で大きく変わった Simulink ターゲットのあるモデルをチェックおよび更新します。

説明

MATLAB の現在のインストールで動作するように更新したモデルを保存します。

Simulink Coder で使用できます。

結果と推奨アクション

状況推奨アクション
モデルは、最初に保存された MATLAB のリリース以降大幅に変更されたターゲットを使用します。モデルの保存
モデルは、Simulink ターゲットを使用していないか、最新バージョンのターゲットを使用しています。アクションなし
モデルは自動的に更新されます。モデルの保存
エクスターナル モードの構成が無効です。[コンフィギュレーション パラメーター][インターフェイス] ペインで、ホストとターゲット間の接続の特性に合うようにエクスターナル モード パラメーター設定を更新します。

モデルが破損しています。

モデルを閉じて再度開きます。問題が解決しない場合は、[コンフィギュレーション パラメーター][ハードウェア実行][ハードウェア ボード] をリセットします。

アクション結果

[モデルの保存] をクリックすると、MATLAB の現在のインストールで動作するようにモデルが更新され、モデルが保存されます。

参考

製品ハードウェアとテスト ハードウェアの構成

調整可能パラメーターに制約があるブロックをチェック

チェック ID: mathworks.codegen.ConstraintsTunableParam

調整可能なパラメーターに制約があるブロックを特定します。

説明

調整可能な場合、Lookup Table ブロックには厳密な制約があります。Lookup Table ブロックの制約に違反した場合、生成コードは正しくない回答を出力します。

Simulink Coder で使用できます。

結果と推奨アクション

条件推奨アクション
Lookup Table ブロックに調整可能なパラメーターがあります。

シミュレーション中または生成コードの実行中にパラメーターを調整する場合、以下の操作をしなければなりません。

  • [入力値のベクトル] パラメーターの設定の単調性を保持します。

  • [入力値のベクトル] パラメーターに複数のゼロ値を指定した場合、[入力値のベクトル] および [出力値のベクトル] パラメーターに指定したゼロ値の数と場所を保持します。

Lookup Table (2-D) ブロックに調整可能なパラメーターがあります。

シミュレーション中または生成コードの実行中にパラメーターを調整する場合、以下の操作をしなければなりません。

  • [入力値の行インデックス] および [入力値の列インデックス] パラメーターの設定の単調性を保持します。

  • [入力値の行インデックス] または [入力値の列インデックス] パラメーターに複数のゼロ値を指定した場合、[入力値の行インデックス][入力値の列インデックス]、および [出力値のベクトル] パラメーターに指定したゼロ値の数と場所を保持します。

Lookup Table (n-D) ブロックに調整可能なパラメーターがあります。シミュレーション中にパラメーターを調整する場合や生成されたコードを実行するときは、テーブルの各次元のブレークポイントの値 [ブレークポイント n] が単調増加するように設定しなければなりません。

機能および制限事項

Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

モデル リファレンスのコンフィギュレーションの不一致をチェックします

チェック ID: mathworks.codegen.MdlrefConfigMismatch

最上位モデルのコンフィギュレーション パラメーター設定に一致しない参照モデルのコンフィギュレーション パラメーター設定を特定します。

説明

最上位モデルが互換性のない異なるコンフィギュレーション パラメーター設定をもつ参照モデルを含んでいる場合、コード ジェネレーターは最上位モデルのコードを作成できません。

Simulink Coder で使用できます。

結果と推奨アクション

条件推奨アクション
最上位モデルと参照モデルのモデル コンフィギュレーション パラメーター設定が一致していません。 指定されたモデル コンフィギュレーション設定を変更します。

参考

サンプル時間とタスク モードをチェックします

チェック ID: mathworks.codegen.SampleTimesTaskingMode

システムのサンプル時間とタスク モードを設定します。

説明

タスク モードが正しくないと、コードの実行効率の低下や正しくないコードの生成を引き起こす可能性があります。

Simulink Coder で使用できます。

結果と推奨アクション

条件推奨アクション
モデルはマルチレート システムを表していますが、マルチタスクに対して構成されていません。モデル コンフィギュレーション パラメーター [各離散レートを個別のタスクとして扱う] を選択します。このパラメーターを選択すると、マルチタスク実行がマルチレート モデルに適用されます。詳細については、時間ベースのスケジューリングとコード生成を参照してください。
モデルはマルチタスクに対して構成されていますが、マルチタスクはターゲット ハードウェア上では望ましくありません。たとえば、オペレーティング システムがマルチプロセッシンをサポートしない、またはターゲット ハードウェアがベア メタル (オペレーティング システムを実行しない) で、アプリケーションはマルチタスクの実行スキームを提供していません。モデル コンフィギュレーション パラメーター [各離散レートを個別のタスクとして扱う] をオフにします。このパラメーターをオフにすると、シングルタスク実行が適用されます。または、[ハードウェア実行] ペインの設定を変更します。詳細については、時間ベースのスケジューリングとコード生成を参照してください。

参考

時間ベースのスケジューリングとコード生成

モデル参照に使用されているコード生成識別子の書式をチェック

チェック ID: mathworks.codegen.ModelRefRTWConfigCompliance

コード生成によって、識別子の書式を含むコンフィギュレーション パラメーター設定が変更される参照モデルを、モデル参照階層においてチェックします。

説明

参照モデルで、次の [コンフィギュレーション パラメーター][コード生成][識別子] パラメーターに $R トークン (参照モデルの名前を表す) を含まない設定が行われている場合、コード生成により $R トークンが識別子の書式の先頭に付加されます。

  • グローバル変数

  • グローバルなタイプ

  • サブシステムのメソッド

  • 定数のマクロ

Simulink Coder で使用できます。

結果と推奨アクション

条件推奨アクション

生成コードで動作するスクリプトがコード生成によって変更されるモデル名を使用します。

生成された名前 (追加された $R トークンを含む) を使用するようにスクリプトを更新します。

コード生成の目的に対して利用できるチェック

コード生成の目的のチェックにより、コードを生成するために使用する Simulink モデルおよびサブシステムの設計とトラブルシューティングが簡単になります。

コード生成アドバイザーには、各コード生成の目的に応じて、Simulink、Simulink Coder、および Embedded Coder からの次のチェックが含まれます。コード生成アドバイザーに固有の 2 つのチェックが以下のリストに含まれます。

チェック実行効率性
(すべてのターゲット)
ROM 効率性
(ERT ベースのターゲット)
RAM 効率性
(ERT ベースのターゲット)
安全対策
(ERT ベースのターゲット)
トレーサビリティ
(ERT ベースのターゲット)
デバッグ
(すべてのターゲット)
MISRA C:2012 ガイドライン
(ERT ベースのターゲット)
Polyspace®
(ERT ベースのターゲット)
コード生成の目的に対するモデル コンフィギュレーションをチェック含める含める含める含める含める含める含める (下の [メモ] を参照)含める
最適なバーチャル バスをチェック含める含める含めるN/AN/AN/AN/AN/A
指定したシステム内の問題のあるブロックを特定含める 含める含めるN/AN/AN/AN/AN/A
ハードウェア実装のチェック (Embedded Coder)Embedded Coder が使用可能な場合は含めるEmbedded Coder が使用可能な場合は含めるN/AN/AN/AN/AN/AN/A
問題のあるソフトウェア環境仕様の特定 (Embedded Coder)トレーサビリティがより高い優先順位でなく、Embedded Coder が使用可能な場合は含めるトレーサビリティがより高い優先順位でなく、Embedded Coder が使用可能な場合は含めるN/AN/AN/AN/AN/AN/A
問題のあるコード計測 (データ I/O) の特定 (Embedded Coder)トレーサビリティまたはデバッグがより高い優先順位でなく、Embedded Coder が使用可能な場合は含めるトレーサビリティまたはデバッグがより高い優先順位でなく、Embedded Coder が使用可能な場合は含めるトレーサビリティまたはデバッグがより高い優先順位でなく、Embedded Coder が使用可能な場合は含めるN/AN/AN/AN/AN/A
問題のあるサブシステムの設定の特定 (Embedded Coder)N/AEmbedded Coder が使用可能な場合は含めるEmbedded Coder が使用可能な場合は含めるN/AN/AN/AN/AN/A
計算量の多い丸めコードを生成するブロックを特定 (Embedded Coder)Embedded Coder が使用可能な場合は含めるEmbedded Coder が使用可能な場合は含めるN/AN/AN/AN/AN/AN/A
問題のある固定小数点演算の特定 (Embedded Coder)Embedded Coder または Fixed-Point Designer™ が使用可能な場合は含めるEmbedded Coder または Fixed-Point Designer が使用可能な場合は含めるN/AN/AN/AN/AN/AN/A
1 ベースのインデックスを使用するブロックを特定含める含めるN/AN/AN/AN/AN/AN/A
計算量が多い範囲外のチェック コードを生成する Lookup Table ブロックの特定 (Embedded Coder)Embedded Coder が使用可能な場合は含めるEmbedded Coder が使用可能な場合は含めるN/AN/AN/AN/AN/AN/A
論理ブロックの出力タイプのチェック (Embedded Coder)Embedded Coder が使用可能な場合は含めるN/AN/AN/AN/AN/AN/AN/A

接続されていないライン、入力端子、出力端子を特定

N/AN/AN/A含めるN/AN/AN/AN/A
マルチタスク、厳密な型指定、優先順位の低下などの問題について、Data Store Memory ブロックをチェックN/AN/AN/A含めるN/AN/AN/AN/A
連続サンプル時間と浮動小数点でないデータ型をもつブロックの出力信号を特定N/AN/AN/A含めるN/AN/AN/AN/A
調整可能パラメーターに制約があるブロックをチェックN/AN/AN/A含めるN/AN/AN/AN/A
Data Store ブロックについて読み取り/書き込みの診断が有効であるかどうかをチェックN/AN/AN/A含めるN/AN/AN/AN/A
バス信号を使った構造体パラメーターの使用のチェックN/AN/AN/A含めるN/AN/AN/AN/A
モデリング エラーに対して Data Store ブロック サンプル時間をチェックN/AN/AN/A含めるN/AN/AN/AN/A
データ ストア アクセスに関する順序の問題がないかどうかをチェックN/AN/AN/A含めるN/AN/AN/AN/A
C/C++ 量産組み込み用コードで推奨されないブロックをチェック (Embedded Coder)N/AN/AN/AN/AN/AN/AEmbedded Coder が使用可能な場合は含めるN/A
MISRA C:2012 で推奨されないブロックをチェック (Embedded Coder)N/AN/AN/AN/AN/AN/AEmbedded Coder が使用可能な場合は含めるN/A
サポートされていないブロック名のチェック (Embedded Coder)N/AN/AN/AN/AN/AN/AEmbedded Coder が使用可能な場合は含めるN/A
Assignment ブロックの使用をチェック (Embedded Coder)N/AN/AN/AN/AN/AN/AEmbedded Coder が使用可能な場合は含めるN/A
符号付き整数のビット演算のチェック (Embedded Coder)N/AN/AN/AN/AN/AN/AEmbedded Coder が使用可能な場合は含めるN/A
再帰関数の呼び出しをチェック (Embedded Coder)N/AN/AN/AN/AN/AN/AEmbedded Coder が使用可能な場合は含めるN/A
浮動小数点値の等式演算と不等式演算のチェック (Embedded Coder)N/AN/AN/AN/AN/AN/AEmbedded Coder が使用可能な場合は含めるN/A
default ケースをもたない switch case 式のチェック (Embedded Coder)N/AN/AN/AN/AN/AN/AEmbedded Coder が使用可能な場合は含めるN/A
非効率的な飽和コードを生成するコンフィギュレーション パラメーターをチェック (Embedded Coder)Embedded Coder が使用可能な場合は含めるEmbedded Coder が使用可能な場合は含めるN/AEmbedded Coder が使用可能な場合は含めるN/AN/AN/AN/A

メモ

コード生成アドバイザーでは、MISRA C:2012 ガイドラインの目的に対してモデルをチェックする際に、モデル アドバイザーの MISRA C:2012 ガイドライン チェックでチェックされたすべてのコンフィギュレーション パラメーター設定をすべて考慮するのではありません。コンフィギュレーション パラメーター設定を完全にチェックするには、次を行います。

  1. モデル アドバイザーを開きます。

  2. [タスク別][MISRA C:2012 のモデリング ガイドライン] に移動します。

  3. フォルダー内でチェックを実行します。

モデル アドバイザーの使用方法の詳細については、モデル アドバイザーを使用したモデルのチェックを参照してください。

参考

指定したシステム内の問題のあるブロックを特定

コード生成でサポートされていないブロック、または配布に推奨されていないブロックを特定します。

説明

コード ジェネレーターはサポートしているブロックのコードのみを作成します。量産コード配布には推奨されないブロックもあります。

結果と推奨アクション

条件推奨アクション
ブロックがコード ジェネレーターでサポートされていません。モデルから指定されたブロックを削除するか、推奨されるブロックに置き換えます。
ブロックが量産コード配布に推奨されていません。モデルから指定されたブロックを削除するか、推奨されるブロックに置き換えます。
値が 1 の Gain ブロックをチェックします。Gain ブロックを Signal Conversion ブロックに置き換えます。

機能および制限事項

次のことが可能です。

  • このチェックはライブラリ モデルで実行できます。

  • Simulink Check ライセンスをお持ちの場合は、ブロックおよびチャートをこのチェックから除外できます。

参考

コード生成でサポートされるブロックと製品

モデル アドバイザーの対象外指定の概要 (Simulink Check)

コード生成の目的に対するモデル コンフィギュレーションをチェック

コード生成の目的に対し、モデルのコンフィギュレーション パラメーターの設定をチェックします。

説明

[コンフィギュレーション パラメーター] ダイアログ ボックスの各パラメーターで、目的に応じてコード生成の推奨設定が異なる場合があります。このチェックは、各パラメーターの推奨設定を特定するのに役立ち、目的に応じてコードを最適化できます。

結果と推奨アクション

条件推奨アクション
パラメーターが、特定の目的の推奨値以外の値に設定されています。

パラメーターを推奨値に設定します。

メモ

あるパラメーター値を変更すると、他のパラメーターにも影響を及ぼす場合があります。チェックに合格するまでに複数回の反復が必要になる場合があります。

アクション結果

[パラメーターの変更] をクリックすると、パラメーター値が推奨値に変わります。

参考