Main Content

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

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

モデル RollAxisAutopilot は、航空機の自動操縦制御システムを表したものです。Embedded Coder® クイック スタートを使用して、RollAxisAutopilot を組み込みコード生成用に準備します。この方法では、基本となるコード生成設定が目的とアプリケーションに基づいて選択されます。

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

  1. 次のコマンドを入力して、RollAxisAutopilot モデルを開きます。

    openExample('RollAxisAutopilot');

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

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

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

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

    [コード生成が完了しました] ページには想定される次のステップが表示され、データ コード インターフェイスを適用するコード生成用のモデルがツールで構成されたことが通知されます。データ インターフェイス構成により、モデル データ要素が、生成コード内でのデータ要素の外観と配置を指定するストレージ クラスにマッピングされます。エクスポート関数またはシングルレートのレートベース モデル用のコードを生成する場合、サービス コード インターフェイスを使用するようにモデルを構成するオプションがあります。サービス インターフェイスの利点には以下があります。

    • ターゲット プラットフォーム サービス インターフェイスの要件を満たすカスタマイズ

    • データの一貫性を維持するコード

    • ターゲット プラットフォームが提供する時間値にアクセスできるエントリポイント関数

    サービス コード インターフェイス構成を使用するモデルの構成例については、Deploy Export-Function Component Configured for C Service Interface Code GenerationおよびDeploy Single-Rate, Rate-Based Component Configured for C Service Interface Code Generationを参照してください。

  6. [終了] をクリックします。

  7. [C コード] タブに戻ります。このタブから、コード生成のカスタマイズを設定した後、モデルの横のコード ビューでその結果をチェックできます。

生成されたコードの確認

生成コードは 2 つの主要ファイル、すなわちヘッダー ファイル RollAxisAutopilot.c とソース コード ファイル RollAxisAutopilot.h に入れられます。これらの主要なファイルは、MATLAB® の現在のフォルダーである RollAxisAutopilot_ert_rtw フォルダーに格納されます。

現在のフォルダーには、コード ジェネレーターで作成される slprj フォルダーが含まれます。このフォルダーには、生成されたコードで既定で使用される標準のデータ型を定義する rtwtypes.h ファイルが含まれます。一般に、この兄弟フォルダーには、複数のモデルで共有できる (または共有しなければならない) 生成ファイルが格納されます。

モデルから生成されるコードには、アプリケーション コードから呼び出すエントリポイント関数が含まれています。レートベースのモデルの場合、これらの関数には初期化関数と実行関数に加え、オプションの終了関数とリセット関数が含まれます。これらの関数は、制御するデータ インターフェイスを介してアプリケーション コードとの間でデータを交換します。

モデル ブロック線図の下にある [コード マッピング - コンポーネント インターフェイス] をクリックし、コード マッピング エディターを開きます。[関数] タブで、コード ジェネレーターによって生成された個々のエントリポイント関数を確認できます。生成されたこれらの関数は、外部コードまたは変更する生成された main 関数のバージョンから呼び出すことができます。レートベース モデルの基本レート ステップ関数、およびエクスポート関数モデルのステップ関数の場合は、関数名と引数をカスタマイズできます。

コード ジェネレーターがモデルに対して作成したエントリポイント関数のリストを確認します。このビューを使用して、関数カスタマイズ テンプレート (コード定義) と名前を関数ごとに選択して指定します。このチュートリアルでは、コード ジェネレーターは、カスタマイズ テンプレートとエントリポイント関数名に既定 (出荷時) の設定を使用しています。コード ジェネレーターにより、初期化関数に RollAxisAutopilot_initialize、実行 (ステップ) 関数に RollAxisAutopilot_step という名前が付けられています。どちらのエントリポイント関数にも、void-void インターフェイスがあります (引数を渡しません)。これらの関数は、共有データ構造体を通じてデータにアクセスできます。このようなデータの例には、関数がアプリケーション コードと交換するシステムレベルの入力と出力があります。

生成されたコードにこれらのエントリポイント関数を表示するには、次のようにします。

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

  2. 検索バーに、「RollAxisAutopilot_step」と入力します。生成されたコードのファイルでステップ関数名の各インスタンスを検索するには、検索の提案をクリックします。

  3. 右側の矢印を使用して、RollAxisAutopilot.c のステップ関数定義と RollAxisAutopilot.h の宣言を含む、各インスタンスをステップ実行します。また、左上隅のファイル メニューから各ファイルの検索ヒット数を確認することもできます。

  4. これらの検索手順を繰り返して、生成されたコードから初期化関数 RollAxisAutopilot_initialize を見つけます。

次に、データ インターフェイスをコード生成用に設定し、生成されたコードを確認します。