Main Content

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

オプション: AUTOSAR Adaptive ソフトウェア コンポーネント コードの生成 (Embedded Coder が必要)

Simulink® Coder™ ソフトウェアおよび Embedded Coder® ソフトウェアにアクセスできる場合は、AUTOSAR Adaptive モデルをビルドできます。AUTOSAR Adaptive モデルをビルドするときに、コード ジェネレーターは、Adaptive Platform の AUTOSAR 規格に準拠する C++ コードと ARXML 記述を生成します。

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

  2. Ctrl+B キーを押してコード生成を開始します。コード ジェネレーターは C++ コードと ARXML ファイルを生成します。生成されたコードは AUTOSAR 規格に準拠しているため、そのコードを AUTOSAR ランタイム環境でスケジュールできます。

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

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

    生成コード ファイル

    Files説明
    my_autosar_LaneGuidance.cppモデルのアルゴリズムを実装するコードのエントリ ポイントが含まれます。このファイルには、レート スケジューリング コードが含まれています。
    my_autosar_LaneGuidance.hモデル エントリ ポイントとデータ構造にモデル データ構造体とパブリック インターフェイスを宣言します。
    my_autosar_LaneGuidance.arxml
    my_autosar_LaneGuidance_ExecutionManifest.arxml
    my_autosar_LaneGuidance_ServiceInstanceManifest.arxml
    メインの ARXML ファイルには、AUTOSAR ソフトウェア コンポーネント、ポート、インターフェイス、データ型、パッケージを表す要素およびオブジェクトが含まれます。マニフェスト ファイルは、展開関連の情報とサービス構成情報を提供します。ARXML ファイルを AUTOSAR ランタイム環境に統合します。AUTOSAR ARXML インポーター ツールを使用して、ARXML ファイルを Simulink 環境にインポートできます。
    main.cppAdaptive ソフトウェア コンポーネント サービスのコードを実行するためのフレームワークを提供します。

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

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

  4. コード インターフェイス レポートを開いてレビューします。この情報は ARXML ファイルに取得されます。ランタイム環境ジェネレーターは ARXML 記述を使用してコードを AUTOSAR ランタイム環境に連動します。

    エントリポイント関数

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

    • 出力エントリポイント関数 — void my_autosar_LaneGuidanceModelClass::step()。この関数を 0.1 秒ごとに定期的に呼び出します。

    • 終了エントリポイント関数 — void my_autosar_LaneGuidanceModelClass::terminate()。シャットダウン時に、この関数を一度呼び出します。

    入力端子:

    • leftLaneDistance ブロック — 要求側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    • leftTurnIndicator ブロック— 要求側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    • rightLaneDistance ブロック — 要求側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    • rightTurnIndicator ブロック — 要求側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    • leftCarInBlindSpot ブロック — 要求側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    • rightCarInBlindSpot ブロック — 要求側ポート、インターフェイス: 1 次元の real-T タイプの送信側 - 受信側

    出力端子:

    • leftHazardIndicator ブロック — 外部で定義された 1 次元の real-T タイプのポート

    • rightHazardIndicator ブロック — 外部で定義された 1 次元の real-T タイプのポート

  5. 行った構成変更が生成されたコードに表示されるか、コード パースペクティブの [コード] パネルを使用して確認します。[コード] パネルを開くには、[AUTOSAR] タブで [コードの表示] をクリックします。[コード] パネルがモデルの右側で開きます。

    ファイル my_autosar_LaneGuidance.cpp を選択した状態で、検索フィールドに company (サービス インターフェイスに対して定義した名前空間の値の 1 つ) を入力します。[コード] ビューでは company のインスタンスが強調表示され、名前空間の記号がコード内でどのように適用されているかが示されます。

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

関連するトピック