Embedded Coder クイック スタートを使用したコードの生成
モデル RollAxisAutopilot
は、航空機の自動操縦制御システムを表したものです。Embedded Coder® クイック スタートを使用して、RollAxisAutopilot
を組み込みコード生成用に準備します。この方法では、基本となるコード生成設定が目的とアプリケーションに基づいて選択されます。
クイック スタート ツールを使用したコードの生成
次のコマンドを入力して、
RollAxisAutopilot
モデルを開きます。openExample('RollAxisAutopilot');
[C コード] タブが既に開いていない場合、アプリ ギャラリーの [コード生成] で [Embedded Coder] をクリックします。
[C コード] タブで [クイック スタート] をクリックします。
クイック スタート ツールのステップを進め、[コード生成] ステップで停止します。各ステップで、生成するコードに関して質問されます。このチュートリアルでは、既に選択されている既定値を使用します。ツールでは、モデルに対して選択項目が検証され、コードの生成に必要なパラメーターの変更が示されます。
[コード生成] ステップで、提案された変更を適用し、[次へ] をクリックして
RollAxisAutopilot
からコードを生成します。[終了] をクリックし、[C コード] タブに戻ります。このタブから、コード生成のカスタマイズを設定した後、モデルの横のコード ビューでその結果をチェックできます。
生成されたコードの確認
生成コードは 2 つの主要ファイル、すなわちヘッダー ファイル RollAxisAutopilot.c
とソース コード ファイル RollAxisAutopilot.h
に入れられます。これらの主要なファイルは、MATLAB® の現在のフォルダーである RollAxisAutopilot_ert_rtw
フォルダーに格納されます。
現在のフォルダーには、コード ジェネレーターで作成される slprj
フォルダーが含まれます。このフォルダーには、生成されたコードで既定で使用される標準のデータ型を定義する rtwtypes.h
ファイルが含まれます。一般に、この兄弟フォルダーには、複数のモデルで共有できる (または共有しなければならない) 生成ファイルが格納されます。
モデルから生成されるコードには、アプリケーション コードから呼び出すエントリポイント関数が含まれています。レートベースのモデルの場合、これらの関数には初期化関数と実行関数に加え、オプションの終了関数とリセット関数が含まれます。これらの関数は、制御するデータ インターフェイスを介してアプリケーション コードとの間でデータを交換します。
モデル ブロック線図の下にある [コード マッピング - コンポーネント インターフェイス] をクリックし、コード マッピング エディターを開きます。[関数] タブで、コード ジェネレーターによって生成された個々のエントリポイント関数を確認できます。生成されたこれらの関数は、外部コードまたは変更する生成された main 関数のバージョンから呼び出すことができます。レートベース モデルの基本レート ステップ関数、およびエクスポート関数モデルのステップ関数の場合は、関数名と引数をカスタマイズできます。
コード ジェネレーターがモデルに対して作成したエントリポイント関数のリストを確認します。このビューを使用して、関数カスタマイズ テンプレート (コード定義) と名前を関数ごとに選択して指定します。このチュートリアルでは、コード ジェネレーターは、カスタマイズ テンプレートとエントリポイント関数名に既定 (出荷時) の設定を使用しています。コード ジェネレーターにより、初期化関数に RollAxisAutopilot_initialize
、実行 (ステップ) 関数に RollAxisAutopilot_step
という名前が付けられています。両方のエントリポイント関数に void-void
インターフェイス (これらは引数を渡しません) があります。これらの関数は、共有データ構造体を通じてデータにアクセスできます。このようなデータの例には、関数がアプリケーション コードと交換するシステムレベルの入力と出力があります。
生成されたコードにこれらのエントリポイント関数を表示するには、次のようにします。
Simulink® エディター ウィンドウの右側にある、コード ビュー ペインで、検索バーを見つけます。
検索バーに、「
RollAxisAutopilot_step
」と入力します。生成されたコードのファイルでステップ関数名の各インスタンスを検索するには、検索の提案をクリックします。右側の矢印を使用して、
RollAxisAutopilot.c
のステップ関数定義とRollAxisAutopilot.h
の宣言を含む、各インスタンスをステップ実行します。また、左上隅のファイル メニューから各ファイルの検索ヒット数を確認することもできます。これらの検索手順を繰り返して、生成されたコードから初期化関数
RollAxisAutopilot_initialize
を見つけます。
次に、データ インターフェイスをコード生成用に設定し、生成されたコードを確認します。