メインコンテンツ

AUTOSAR ソフトウェア コンポーネント コードのシミュレーションとオプションで生成 (Embedded Coder が必要)

Simulink® 環境で使用するために AUTOSAR ソフトウェア コンポーネント モデルを構成した後、モデル my_autosar_swc をシミュレーションします。これはAUTOSAR ソフトウェア コンポーネント要素の Simulink モデリング環境向けの構成で構成したものです。

  1. まだ、構成済みバージョンのモデル my_autosar_swc を開いていない場合は開きます。

  2. Simulink エディターで、[シミュレーション] ボタン をクリックします。

Simulink Coder™ ソフトウェアおよび Embedded Coder® ソフトウェアにアクセスできる場合は、次に AUTOSAR モデルのコードを生成します。

  1. まだ、構成済みバージョンのモデル my_autosar_swc を開いていない場合は開きます。

  2. AUTOSAR ツールストリップの [コード生成] セクションにある [コード生成] ボタンをクリックするか、Ctrl+B を押してコード生成を開始します。コード ジェネレーターは C コードと ARXML ファイルを出力します。生成されたコードは AUTOSAR 規格に準拠しているため、そのコードを AUTOSAR ランタイム環境でスケジュールできます。

    コード ジェネレーターによって、コード生成レポートも出力され表示されます。

  3. コード生成レポートで、生成されたコードをレビューします。現在の MATLAB® フォルダーで、my_autosar_swc_autosar_rtw フォルダーにはこの表にリストされている主要なファイルが含まれています。

    生成コード ファイル

    Files説明
    my_autosar_swc.cモデルのアルゴリズムを実装するコードのエントリ ポイントが含まれます。このファイルには、レート スケジューリング コードが含まれています。
    my_autosar_swc.hモデル エントリ ポイントとデータ構造体にモデル データ構造体とパブリック インターフェイスを宣言します。
    my_autosar_swc_component.arxml
    my_autosar_swc_datatype.arxml
    my_autosar_swc_implementation.arxml
    my_autosar_swc_interface.arxml
    AUTOSAR ソフトウェア コンポーネント、ポート、インターフェイス、データ型、パッケージを表す要素およびオブジェクトが含まれます。ARXML ファイルを AUTOSAR ランタイム環境に統合します。AUTOSAR ARXML インポーター ツールを使用して、ARXML ファイルを Simulink 環境にインポートできます。

    既定では、AUTOSAR Blockset コード生成では、生成コード内で AUTOSAR プラットフォーム型を使用し、Platform_Types.h でプラットフォーム型を定義します。レガシ実装のサポートに必要な場合は、[データ型置換] コンフィギュレーション パラメーターを使用して、コード ジェネレーターが Simulink データ型ヘッダー ファイル rtwtypes.h を作成し、それを生成コード内で使用してコーダーの型定義に関して AUTOSAR プラットフォーム型を記述するように指定できます。 (R2023b 以降)

    R2023b より前: AUTOSAR Blockset コード生成ではサポート ファイル rtwtypes.h が作成され、そのファイルを必要としていました。

  4. コード インターフェイス レポートを開いてレビューします。コード インターフェイス レポートの詳細については、Analyze Generated Data Code Interface Report (Embedded Coder)を参照してください。AUTOSAR システム ターゲット ファイル用に構成されたモデルでは、コード インターフェイス レポートは自動的に生成されます。コード インターフェイス情報は生成された ARXML ファイルに取得されます。ランタイム環境ジェネレーターは ARXML 記述を使用してコードを AUTOSAR ランタイム環境に連動します。

    エントリポイント関数:

    • 初期化エントリポイント関数 — void my_autosar_swc_Init(void)。開始時にこの関数を一度呼び出します。

    • 出力および更新エントリポイント関数 — void my_autosar_swc_Step(void)。この関数を、モデルの最速レートで定期的に呼び出します。このモデルでは、関数を毎秒呼び出します。リアルタイムの実行を実現するには、この関数をタイマーに接続します。

    • 出力および更新エントリポイント関数 — void my_autosar_swc_Step1(void)。この関数を、モデルの 2 番目に速いレートで定期的に呼び出します。このモデルでは、関数を 2 秒ごとに呼び出します。リアルタイムの実行を実現するには、この関数をタイマーに接続します。

    エントリポイント関数は、コード マッピング エディターの [関数] タブでもアクセスできます。生成されたこれらの関数は、外部コードまたは変更する生成された main 関数のバージョンから呼び出すことができます。必要に応じて、関数の名前を変更できます。レートベース モデルの基本レート ステップ関数、およびエクスポート関数モデルのステップ関数の場合は、関数名と引数をカスタマイズできます。

    入力端子:

    • Block In1_1s — 要求側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    • Block In2_2s — 要求側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    出力端子:

    • Block Out1 — 提供側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    • Block Out2 — 提供側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

  5. 行った構成変更が生成されたコードに表示されるか、コード パースペクティブの [コード] パネルを使用して確認します。[コード] パネルを開くには、[AUTOSAR] タブで [コードの表示] をクリックします。[コード] パネルがモデルの右側で開きます。[検索] フィールドに AUTOSAR ソフトウェア コンポーネントのポート In1_1s の新しい名前 In1_1s_SS1 を入力します。その後、矢印ボタンをクリックして ARXML ファイル my_autosar_swc_component.arxml にあるその名前のインスタンスに進みます。AUTOSAR ソフトウェア コンポーネントのポート向けに変更した通信属性の設定が正しく表示されることを確認します。

    ARXML description for AUTOSAR Port In1_Is_SS1. ALITVE-TIMEOUT is 30. HANDLE-NEVER-RECEIVED is true. INIT-VALUE VALUE is 1.

  6. コード パースペクティブの [コード] パネルを使用して、生成されたコードの他の面について調べます。たとえば、ファイル my_autosar_swc.c を選択して、検索フィールドでクリックすると、エントリポイント関数を含むコード要素へのリンクのリストが表示されます。このリンクを使用して、生成された C コードのキー エリアにすばやく移動できます。

参考

トピック