Main Content

AUTOSAR の初期化、リセット、終了ランナブルの設定

AUTOSAR アプリケーションでは、システムの初期化、リセット、終了シーケンス中に、複雑なロジックの実行が必要な場合もあります。AUTOSAR ソフトウェア コンポーネントの起動、リセット、シャットダウン処理をモデル化するには、Simulink® ブロックの Initialize FunctionTerminate Function を使用します。

Initialize Function ブロックと Terminate Function ブロックは、初期化イベント、リセット イベント、終了イベントに応答してコンポーネントの実行を制御できます。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用初期化イベント、リセット イベントおよび終了イベントに応答するコードの生成 (Simulink Coder)、および AUTOSAR トピックの起動、リセット、シャットダウンを参照してください。

AUTOSAR モデルでは、Simulink 初期化、リセット、または終了の各エントリポイント関数を、それぞれ 1 つの AUTOSAR ランナブルにマッピングします。各ランナブルについて、そのランナブルを有効にする AUTOSAR イベントを設定します。一般に、TimingEvent を除き、任意の AUTOSAR イベント タイプを選択できます。ランナブルは AUTOSAR コンポーネントのモデリング スタイルで動作します (ただし、AUTOSAR 初期化、リセットまたは終了ランナブルのソフトウェアインザループ シミュレーションは、エクスポートされた関数モデリングでのみ動作します)。

この例では、Initialize Function ブロックと Terminate Function ブロックを使用して、AUTOSAR ソフトウェア コンポーネントを単純な起動および終了処理用に設定する方法を示します。

  1. AUTOSAR コード生成向けに構成されたモデルを開きます。この例では、モデル例 autosar_swc の書き込み可能なコピーを使用します。

    モデルに Initialize Function ブロックを追加します。

  2. Initialize Function ブロックで、初期化関数、再初期化関数、リセット関数および終了関数の使用で説明されている手法を使用して、コンポーネントの初期化中に実行する必要のあるロジックを作成します。

  3. Terminate Function ブロックをモデルに追加します。

  4. 初期化関数、再初期化関数、リセット関数および終了関数の使用で説明されている手法を使用して、Terminate Function ブロックに、コンポーネントの終了中に実行する必要のあるロジックを作成します。

    この例では、Terminator ブロックは、状態値を保存するためのプレースホルダーになります。

  5. モデルに終了エントリポイント関数を追加します。[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][インターフェイス] ペインで、[詳細設定パラメーター] のオプション [終了関数の生成] を選択します。[適用] をクリックします。

  6. コード マッピング エディターを開きます。モデルの Simulink から AUTOSAR へのマッピングを更新するために、[更新] ボタン をクリックします。マッピングに、Initialize Function ブロックと Terminate Function ブロックの追加および終了エントリポイント関数の有効化が反映されます。

  7. AUTOSAR ディクショナリを開きます。[AtomicComponents] を展開し、コンポーネントを展開し、[Runnables] ビューを選択します。

    ランナブルのリストには、AUTOSAR ソフトウェア コンポーネントの初期 Simulink 表現の一部として作成された初期化ランナブルが既に含まれています。[追加] ボタン を使用して終了ランナブルをコンポーネントに追加します。各ランナブルを選択し、その名前とプロパティを設定します。

    ランナブルのビューに表示されるランナブルの [symbol] の値はランナブル関数名になります。ランナブルの [Name] の値は、ランナブル用に生成される RTE アクセス メソッドの名前に使用されます。

  8. 初期化ランナブルと終了ランナブルの両方について、ランナブルを有効にする AUTOSAR イベントを設定します。

    この例では、各ランナブルに対して [ModeSwitchEvent] を定義します。[ModeSwitchEvent] を使用するには、モデルのモデル宣言グループ、モード スイッチ (M-S) インターフェイスおよびモード受信ポートを作成する必要があります。詳細については、AUTOSAR モード スイッチ通信の設定を参照してください。

    ランナブルのビューで、初期化ランナブル名をクリックして関連のイベント プロパティを表示および変更します。イベントを追加および設定します。

    ランナブルのビューで、終了ランナブル名をクリックして関連のイベント プロパティを表示および変更します。イベントを追加および設定します。

  9. コード マッピング エディターを開き [Functions] タブを選択します。Simulink の初期化関数と終了関数を選択し、設定した AUTOSAR 初期化ランナブルと終了ランナブルにそれらをマッピングします。

  10. モデルをビルドして、生成されたコードを確認します。

    • エクスポートされた ARXML コードには、モデルの Initialize、Reset または Terminate Subsystem ごとに、指定された AUTOSAR ランナブル名とシンボルをもつ 1 つのランナブルが含まれます。ランナブルの記述には、ランナブルに関連付けられた各 AUTOSAR データ アクセス ポイントとサーバー呼び出しポイントが含まれます。

    • 生成された C コードには、ランナブルに関連付けられたパラメーター、状態、関数呼び出し元および外部 I/O の RTE アクセス メソッドが含まれます。

参考

| | | |

関連する例

詳細