Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Embedded Coder クイック スタートを使用した C++ コードの生成

組み込みコード生成に使用する CppClassWorkflowKeyIgnition モデルを Embedded Coder® クイック スタート ツールを使用して準備します。クイック スタート ツールでは、目標とアプリケーションに基づいて基本のコード生成設定を選択します。

チュートリアルのこのステップでは、CppClassWorkflowKeyIgnition モデルのコードを生成し、生成されたファイルを検査します。CppClassWorkflowKeyIgnition モデルは、車両の点火システムを表しています。

クイック スタート ツールを使用した C++ コードの生成

  1. モデル CppClassWorkflowKeyIgnition を開きます。

    openExample('ecoder/CppCodeGenerationWorkflowForKeyIgnitionSystemExample', ...
                 supportingFile='CppClassWorkflowKeyIgnition.slx')

    View of the CppClassWorkflowKeyIgnition model

  2. MATLAB 検索パス上の書き込み可能な場所にモデルのコピーを保存します。

  3. [C++ コード] タブがまだ開いていない場合、[アプリ] タブのアプリ ギャラリーの [コード生成][Embedded Coder] をクリックします。

  4. [C++ コード] タブで、[設定] をクリックし、[C/C++ コード生成設定] を選択します。

    [コンフィギュレーション パラメーター] ダイアログ ボックスが開きます。

  5. [コンフィギュレーション パラメーター] ダイアログ ボックスで、[コード生成] ペインを開き、[ターゲットの選択][言語] パラメーターが [C++] に設定されていることを確認します。[OK] をクリックしてダイアログ ボックスを閉じます。

  6. [C++ コード] タブで [クイック スタート] をクリックします。

    View of the System display in the Embedded Coder Quick Start tool for the CppClassWorkflowKeyIgnition model

  7. 各ステップで [次へ] をクリックしてクイック スタート ツールを進めます。

    各ステップで、生成するコードに関して質問されます。このチュートリアルでは、既定値を使用します。ツールでは、モデルに対して選択項目が検証され、コードの生成に必要なパラメーターの変更が示されます。

  8. [コード生成] ステップで、提案された変更を適用し、[次へ] をクリックして CppClassWorkflowKeyIgnition からコードを生成します。

  9. [終了] をクリックし、[C++ コード] タブに戻ります。

View of the CppClassWorkflowKeyIgnition model in Simulink. The toolstrip is at the top. The Simulink model is in the middle. The Code view pane is on the right.

生成された C++ コードの検査

コード ジェネレーターにより、CppClassWorkflowKeyIgnition モデルがアプリケーション コードからアクセスできる C++ クラスに変換されます。モデルのデータ要素はクラス メンバーとして表示されます。Simulink® 関数はクラス メソッドとして表示されます。

CppClassWorkflowKeyIgnition モデルには、レートベース モデリングとエクスポート関数モデリングの要素が組み込まれます。レートベース モデリングについては、アプリケーション コードから呼び出すエントリポイントのクラス メソッドとして、初期化メソッド、実行メソッド、終了メソッドに加え、オプションでリセット メソッドが含まれます。外部コードやインターフェイスの要件と統合するには、生成されたクラス インターフェイスをカスタマイズできます。

このチュートリアルでは、クイック スタート ツールを使用して生成されたコードでクラスの要素に既定の設定を使用しています。C++ クラスの既定の名前は、モデルの名前の CppClassWorkflowKeyIgnition です。

モデルに対して生成された C++ クラスの情報を検査するには次のようにします。

  1. Simulink エディター ウィンドウの右側にある、コード ビュー ペインで、検索バーを見つけます。

  2. 検索バーにモデルのクラス名 CppClassWorkflowKeyIgnition を入力して、生成されたコードからクラス名の各インスタンスを検索し、強調表示された検索の提案をクリックします。

    Use the search functionality in the Code view pane

  3. 検索バーの下の右側にある矢印を使用して、各インスタンスをステップ実行します。これには、CppClassWorkflowKeyIgnition.h のクラスの定義と ert_main.cpp のクラスのインスタンス化が含まれます。

    また、左上隅のファイル メニューから各ファイルの検索結果を確認することもできます。

    Use the search functionality in the Code view pane to view search hits in each file

  4. データと関数のコード マッピングを確認します。

    Simulink エディター ウィンドウで、[コード インターフェイス] をクリックし、[コード マッピング] を選択してコード マッピング エディターを開きます。

    View of the CppClassWorkflowKeyIgnition model in Simulink. The toolstrip is at the top. The Simulink model is in the middle. The Code Mappings pane is at the bottom. The Data tab in the Code Mappings pane is selected. The Code view pane is on the right.

  5. [データ] タブをクリックして、クラス メンバーの可視性とアクセス メソッドを確認します。

    Simulink のデータ要素は、モデリング要素のカテゴリにグループ化されます。

    • Inports: モデルのルートレベルのデータ入力端子。

    • Outports: モデルのルートレベルのデータ出力端子。

    • Model parameter arguments: インスタンス (非静的) クラス データ メンバーとして表示されるワークスペース変数。

    • Model parameters: 静的クラス データ メンバーとして生成されるモデル クラスのインスタンスで共有されるワークスペース変数。

    • Signals, states, and internal data: ブロックの出力信号、ブロックの離散状態、データ ストア、ゼロクロッシング信号など、モデル内部のデータ要素。

  6. [関数] タブをクリックして、クラス メソッドを確認します。

    生成されるクラス メソッドはエントリポイント メソッドであり、プログラムの制御が切り替わるコード内の場所です。

    View of the Code Mappings - Component Interface pane for the CppClassWorkflowKeyIgnition model in Simulink. The Functions tab in the Code Mappings pane is selected

    クラス メソッドの既定の名前は、初期化メソッドは initialize、実行 (ステップ) メソッドは step0、終了メソッドは terminate です。

  7. 検索手順を繰り返して、生成されたコードでクラス メソッド initializestep0、および terminate を見つけます。

次に、カスタマイズしたコード インターフェイスをコード生成用に構成し、生成されたコードを確認します。