このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
オプション: AUTOSAR Adaptive ソフトウェア コンポーネント コードの生成 (Embedded Coder が必要)
Simulink® Coder™ ソフトウェアおよび Embedded Coder® ソフトウェアにアクセスできる場合は、AUTOSAR Adaptive モデルをビルドできます。AUTOSAR Adaptive モデルをビルドするときに、コード ジェネレーターは、Adaptive Platform の AUTOSAR 規格に準拠する C++ コードと ARXML 記述を生成します。
まだ、構成済みバージョンのモデル
my_autosar_LaneGuidance
を開いていない場合は開きます。Ctrl+B キーを押してコード生成を開始します。コード ジェネレーターは C++ コードと ARXML ファイルを生成します。生成されたコードは AUTOSAR 規格に準拠しているため、そのコードを AUTOSAR ランタイム環境でスケジュールできます。
コード ジェネレーターによって、コード生成レポートも出力され表示されます。
コード生成レポートで、生成されたコードをレビューします。現在の 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.cpp
Adaptive ソフトウェア コンポーネント サービスのコードを実行するためのフレームワークを提供します。 既定では、AUTOSAR Blockset コード生成では、生成コード内で直接プラットフォーム タイプを使用します。レガシ実装のサポートに必要な場合は、[データ型置換] コンフィギュレーション パラメーターを使用して、Simulink データ型ヘッダー ファイル
rtwtypes.h
の型定義に関して、コードジェネレーターが中間層を通じてプラットフォーム タイプを定義するように指定できます。 (R2023b 以降)R2023b より前: AUTOSAR Blockset コード生成ではサポート ファイル
rtwtypes.h
が作成され、そのファイルを必要としていました。コード インターフェイス レポートを開いてレビューします。この情報は 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 タイプのポート
行った構成変更が生成されたコードに表示されるか、コード パースペクティブの [コード] パネルを使用して確認します。[コード] パネルを開くには、[AUTOSAR] タブで [コードの表示] をクリックします。[コード] パネルがモデルの右側で開きます。
ファイル
my_autosar_LaneGuidance.cpp
を選択した状態で、検索フィールドにcompany
(サービス インターフェイスに対して定義した名前空間の値の 1 つ) を入力します。[コード] ビューではcompany
のインスタンスが強調表示され、名前空間の記号がコード内でどのように適用されているかが示されます。コード パースペクティブの [コード] パネルを使用して、生成されたコードの他の面について調べます。たとえば、ファイル
my_autosar_LaneGuidance.cpp
を選択してから、検索フィールド内をクリックすると、コード要素へのリンクのリストが表示されます。このリンクを使用して、生成されたコードのキー エリアにすばやく移動できます。