Main Content

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

モデル SecondOrderSystem をコード生成用に準備し、Simulink® Coder™ クイック スタート ツールを使用して C89/C90 準拠の C コードを生成します。次に、生成されたコードを確認します。

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

クイック スタート ツールでは、目標とアプリケーションに基づいて基本のコード生成設定を選択します。たとえば、クイック スタート ツールで、コード生成に必要な固定ステップ ソルバーを使用してモデルを構成します。

  1. モデル SecondOrderSystem をまだ開いていない場合は、コマンド ウィンドウにコマンド「openExample("SecondOrderSystem")」を入力して、そのモデルを開きます。

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

  3. Simulink Coder クイック スタート ツールを開きます。[C コード] タブで [クイック スタート] をクリックします。

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

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

  6. [終了] をクリックします。Simulink エディターで、[C コード] タブに戻ります。

生成されたコードの確認

コード ジェネレーターにより、現在の作業フォルダーにフォルダー SecondOrderSystem_grt_rtw が作成され、そのフォルダーにソース コード ファイルが保存されます。生成コードは 2 つの主要ファイル、すなわち SecondOrderSystem.cSecondOrderSystem.h に入れられます。ファイル SecondOrderSystem.c には、ODE ソルバー コードなどのアルゴリズム コードが格納されます。モデル データとエントリポイント関数は、SecondOrderSystem.h をインクルードすることで呼び出し元からアクセスできます。SecondOrderSystem.h ファイルには、ブロック出力、連続状態、モデル出力、エントリ ポイントおよびタイミング データの extern 宣言が格納されます。

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

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

  1. コード生成レポートを開きます。[C コード] タブで、[レポートを開く] をクリックします。

  2. [コード インターフェイス レポート] セクションを開きます。コード ジェネレーターでモデル用に生成するエントリポイント関数を見直します。初期化関数、実行 (ステップ) 関数、および終了関数の場合、コードジェネレーターでは次の名前が使用されます。

    • SecondOrderSystem_initialize

    • SecondOrderSystem_step

    • SecondOrderSystem_terminate

    これらの関数には、引数を渡さない void-void インターフェイスがあります。これらの関数は、共有データ構造体を通じてデータにアクセスできます。このようなデータの例には、関数がアプリケーション コードと交換するシステムレベルの入力と出力があります。

  3. 生成されたコードのエントリポイント関数を確認します。コード生成レポートの左側のペインで、[コード] の下にあるファイル名 SecondOrderSystem.c をクリックします。[検索] フィールドを使用して、文字列 SecondOrderSystem_step のインスタンスを検索します。矢印を使用して、各インスタンスをステップ実行します。ヘッダー ファイル SecondOrderSystem.h についても同じ操作を行います。初期化関数と終了関数のコードを確認します。

コード生成のカスタマイズを構成し、コードを再生成して、コード生成レポートの結果を確認できます。

次に、モデル シミュレーションの結果が生成された実行可能プログラムの結果と一致するかどうかを検証します。