AUTOSAR コンポジション XML 記述およびコンポーネント コードの生成とパッケージ化
Simulink® Coder™ および Embedded Coder® ソフトウェアを使用している場合、AUTOSAR アーキテクチャ モデルから次を実行できます。
コンポジションとコンポーネントの AUTOSAR XML (ARXML) 記述をエクスポートし、コンポーネント コードを生成する。
オプションで、再置換や統合のために、モデルの階層構造からビルド アーティファクトをパッケージ化した ZIP ファイルを作成する。
オプションで、ECU 構成をもつ AUTOSAR Classic Platform 向けに構成されたアーキテクチャ モデルについて、コンポジションのソフトウェア コンポーネントを AUTOSAR ECU にマッピングする ECU 抽出をエクスポートする。
エクスポートは、アーキテクチャ モデル全体、入れ子になったコンポジション、単一のコンポーネントに対して可能です。あるコンポジションを含むエクスポートを開始した場合、そのエクスポートには、そのコンポジション、コンポーネント プロトタイプ、コンポジションのポートおよびコネクタの XML 記述が含まれます。
コンポジション XML オプションの設定
ARXML ファイルのエクスポートの準備として、XML オプションを確認し、変更します。エクスポート中、アーキテクチャ モデル レベルで指定された XML オプションが、モデル内の各コンポーネントに継承されます。
XML オプションを表示するには、次の手順に従います。
AUTOSAR アーキテクチャ モデルを開きます。
たとえば、モデル
autosar_tpc_composition
を開くには次のように入力します。openExample("autosar_tpc_composition")
[モデル化] タブで [エクスポート]、[XML オプションの構成] を選択します。[XML オプション] ダイアログ ボックスが開きます。
このダイアログ ボックスには、Classic アーキテクチャ モデルの XML オプションが表示されます。これらのオプションに行った変更は、階層内のすべてのコンポーネントに継承されます。
[System パッケージ] オプションはコンポジション レベルにのみ適用されます。Classic アーキテクチャ モデルのコンポジションの ECU 抽出をエクスポートする場合、[System パッケージ] はコンポジション ARXML で生成するシステム パッケージ パスを指定します。詳細については、コンポジションの ECU 抽出のエクスポートを参照してください。
R2023a において: XML オプション [エクスポートされた XML ファイルのパッケージ化] は、アーキテクチャ モデルのエクスポートでサポートされます。
[エクスポートされた XML ファイルのパッケージ化] パラメーターを設定することで、Simulink で作成された AUTOSAR 要素の XML ファイルのパッケージ化の粒度を指定できます。[単一のファイル]
を選択すると、XML が単一のファイルにエクスポートされます。[モジュラー]
を選択すると、XML が、含まれている情報のタイプに従って名前が付けられた複数のファイルにエクスポートされます。
各 XML オプションの詳細については、Classic アーキテクチャ モデルのオプションについてはAUTOSAR XML オプションの設定を、Adaptive アーキテクチャのオプションについてはAUTOSAR Adaptive XML オプションの設定を参照してください。
コンポジション XML およびコンポーネント コードのエクスポート
アーキテクチャ モデルについて ARXML ファイルをエクスポートし、コードを生成するには、次のようにします。
アーキテクチャ モデルを開きます。
この例では、Classic モデル例
autosar_tpc_composition
を開き、次のように入力します。openExample("autosar_tpc_composition")
アーキテクチャ モデルをエクスポートします。
[モデル化] タブから [エクスポート]、[コードと ARXML の生成] を選択します。[コンポジションのエクスポート] ダイアログ ボックスで次を行います。
生成されたファイルをパッケージ化する ZIP ファイルの名前を指定します。
オプションで、エクスポートされた ARXML ファイルを格納するフォルダーへのパスを指定します。
Classic コンポジションから ECU 抽出をエクスポートするには、[ECU 抽出をエクスポート] を選択します。詳細については、コンポジションの ECU 抽出のエクスポートを参照してください。
エクスポートを開始するには、[OK] をクリックします。
アーキテクチャ モデルのビルド中、診断ビューアーでビルド ログを閲覧することができます。まず、コンポーネント モデルのそれぞれがスタンドアロンの最上位モデル ビルドとしてビルドされます。その後、コンポジション ARXML がエクスポートされます。ビルドが完了すると、現在のフォルダーに、アーキテクチャ モデルのビルド フォルダー、階層構造の各コンポーネント モデル、および指定された ZIP ファイルが格納されます。
ZIP ファイルを展開します。内容は
arxml
フォルダーとsrc
フォルダーに整理されています。arxml
フォルダーを確認します。各 AUTOSAR コンポーネントには、コンポーネントおよび実装の記述ファイルが存在し、アーキテクチャ モデルにはコンポジション、データ型、インターフェイス、およびタイミングの記述ファイルが存在しています。コンポジション ファイルには、コンポジション、コンポーネント プロトタイプ、コンポジションのポートおよびコネクタの XML 記述が含まれます。データ型ファイルとインターフェイス ファイルには、アーキテクチャ モデルの全階層の要素が集約されています。
メモ
アーキテクチャ モデルの階層構造内の参照コンポジションについては、タイミング ファイルは生成されません。
src
フォルダーを確認します。各コンポーネント モデルについてビルド フォルダーがあり、そこにはスタンドアロンのモデル ビルドからのアーティファクトが格納されています。
アーキテクチャ モデルに含まれる入れ子にされたコンポジションまたは単一のコンポーネントをエクスポートするには、コンポジションまたはコンポーネント ブロック キューを使用するか、右クリック オプションを使用します。たとえば、コンポーネント ブロックを右クリックして [コンポーネントのエクスポート] を選択します。アーキテクチャ モデルからエクスポートされたコンポーネントは、アーキテクチャ モデル レベルで指定された XML オプションを継承します。
アーキテクチャ モデルをエクスポートする際、アーキテクチャ モデルと階層内のコンポーネント モデル間で AUTOSAR スキーマ バージョンが一致していなければなりません。エクスポートでバージョン相違のフラグが出された場合、コンポーネント モデルかアーキテクチャ モデルのいずれかで不一致を修正します。アーキテクチャ モデルのスキーマ バージョンを表示するには、[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[モデル化] タブで [モデル設定] を選択します。ダイアログ ボックスで AUTOSAR コード生成オプションのペインを表示します。
アーキテクチャ モデルの階層構造をプログラム的にエクスポートするには、アーキテクチャ関数 export
を使用します。たとえば、モデル例 autosar_tpc_composition
の ARXML ファイルとコードを生成し、パッケージ化するには、次のようにします。
% Load AUTOSAR architecture model archModel = autosar.arch.loadModel("autosar_tpc_composition"); % Export ARXML descriptions and code into ZIP file export(archModel,"PackageCodeAndARXML","myArchModel.zip");
コンポジションの ECU 抽出のエクスポート
AUTOSAR Classic アーキテクチャ モデルのコンポジションから ECU 抽出をエクスポートできます。ECU 抽出は AUTOSAR ECU 構成に対する重要な入力です。AUTOSAR Classic アーキテクチャで、最上位のコンポジションは 1 つの AUTOSAR ECU にマッピングされたソフトウェア コンポーネントをモデル化できます。ECU スコープのシステムのソフトウェア記述を作成するには、コンポジションから ECU 抽出をエクスポートします。
開いているアーキテクチャ モデルで、Simulink ツールストリップ、ソフトウェア アーキテクチャ キャンバス、または関数 export
を使用して ARXML をエクスポートできます。たとえば、[モデル化] タブから [エクスポート] 、 [コードと ARXML の生成] を選択します。[コンポジションのエクスポート] ダイアログ ボックスで、オプション [ECU 抽出をエクスポート] を選択します。エクスポートを開始するには、[OK] をクリックします。
ECU 抽出を生成するために、ソフトウェアはコンポジション内のソフトウェア コンポーネントを ECU に自動的にマッピングします。コンポジションに入れ子にされたコンポジションが含まれている場合、ソフトウェアはコンポーネントのみが含まれているフラットなバージョンのコンポジション階層構造を使用します。たとえば、これらの関数呼び出しは、入れ子にされたコンポジションを含む AUTOSAR アーキテクチャ モデル例 autosar_tpc_composition
の ECU 抽出をエクスポートします。
% Open and export AUTOSAR architecture model, generating ECU extract archModel = 'autosar_tpc_composition'; openExample(archModel); export(archModel,'ExportECUExtract',true);
export
関数呼び出しは、コンポジション フォルダー内にあるファイル System.arxml
への ECU 抽出を生成します。autosar_tpc_composition
の ECU 抽出は、最上位のコンポジションおよび入れ子にされた Sensors
コンポジション両方のコンポーネントを 1 つの ECU にマッピングします。
<SYSTEM UUID="..."> <SHORT-NAME>EcuExtract</SHORT-NAME> <CATEGORY>ECU_EXTRACT</CATEGORY> <MAPPINGS> <SYSTEM-MAPPING UUID="..."> <SHORT-NAME>SystemMapping</SHORT-NAME> <SW-MAPPINGS> <SWC-TO-ECU-MAPPING UUID="..."> <SHORT-NAME>SwcToEcuMapping</SHORT-NAME> <COMPONENT-IREFS> <COMPONENT-IREF> <TARGET-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE"> /Components/TPC_Composition/Ctrl </TARGET-COMPONENT-REF> </COMPONENT-IREF> ... <COMPONENT-IREF> <TARGET-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE"> /Components/TPC_Composition/PedalSensor </TARGET-COMPONENT-REF> </COMPONENT-IREF> </COMPONENT-IREFS> <ECU-INSTANCE-REF DEST="ECU-INSTANCE"> /System/EcuInstance </ECU-INSTANCE-REF> </SWC-TO-ECU-MAPPING> </SW-MAPPINGS> </SYSTEM-MAPPING> </MAPPINGS> <ROOT-SOFTWARE-COMPOSITIONS> <ROOT-SW-COMPOSITION-PROTOTYPE UUID="..."> <SHORT-NAME>RootSwCompositionPrototype</SHORT-NAME> <SOFTWARE-COMPOSITION-TREF DEST="COMPOSITION-SW-COMPONENT-TYPE"> /Components/TPC_Composition </SOFTWARE-COMPOSITION-TREF> </ROOT-SW-COMPOSITION-PROTOTYPE> </ROOT-SOFTWARE-COMPOSITIONS> </SYSTEM> <ECU-INSTANCE UUID="..."> <SHORT-NAME>EcuInstance</SHORT-NAME> </ECU-INSTANCE>
ECU 抽出が含まれるシステム パッケージの AUTOSAR パッケージ パスを指定するには、コンポジション XML オプション [System パッケージ] を使用します。[System パッケージ] パスの値を表示するには、[モデル化] タブから [エクスポート]、[XML オプションの構成] を選択します。
あるいは、AUTOSAR プロパティ関数 get
と set
を使用して、AUTOSAR システム パッケージ パスを設定します。
openExample('autosar_tpc_composition'); arProps = autosar.api.getAUTOSARProperties('autosar_tpc_composition'); set(arProps,'XmlOptions','SystemPackage','/System'); systemPackage = get(arProps,'XmlOptions','SystemPackage');
AUTOSAR パッケージの階層構造の詳細については、AUTOSAR パッケージの構成を参照してください。
Simulink Report Generator を使用した AUTOSAR ソフトウェア アーキテクチャのレポートの生成
System Composer™ および Simulink Report Generator™ のライセンスをお持ちの場合、AUTOSAR アーキテクチャ モデルとそのアーティファクトのレポートを生成できます。詳細については、System Composer Report Generation for Software Architectures (System Composer)を参照してください。
参考
Software Composition | Classic Component | export