Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

AUTOSAR コード生成の構成

AUTOSAR Classic Platform 用に構成されたモデルから AUTOSAR 準拠の C コードと ARXML コンポーネント記述を生成するには次を行います。

  1. [コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][AUTOSAR コード生成オプション] ペインで AUTOSAR コード生成パラメーターを設定します。

  2. AUTOSAR ディクショナリまたは AUTOSAR プロパティ関数を使用して AUTOSAR XML エクスポート オプションを設定します。

  3. モデルを作成します。

AUTOSAR スキーマの選択

ARXML ファイルのインポートとエクスポートおよび AUTOSAR 互換の C コードの生成に関して、次の AUTOSAR Classic Platform スキーマ バージョンがサポートされています。

スキーマ バージョンの値インポートでサポートされるスキーマ リビジョンエクスポート スキーマ リビジョン
4.44.4.04.4.0
4.3 (既定値)4.3.0、4.3.14.3.1
4.24.2.1、4.2.24.2.2
4.14.1.1、4.1.2、4.1.34.1.3
4.04.0.1、4.0.2、4.0.34.0.3

モデルの AUTOSAR システム ターゲット ファイルをはじめて選択したときに、スキーマ バージョン パラメーターは既定値の [4.3] に設定されます。

ARXML ファイルを Simulink® にインポートすると、ARXML インポーターはスキーマ バージョンを検出してモデルのスキーマ バージョン パラメーターを設定します。たとえば、スキーマ 4.3 のリビジョン 4.3.0 または 4.3.1 に基づく ARXML ファイルをインポートする場合、インポーターはスキーマ バージョン パラメーターを [4.3] に設定します。

AUTOSAR モデルをビルドすると、コード ジェネレーターは、ARXML 記述をエクスポートし、現在のスキーマ バージョン準拠の C コードを生成します。たとえば、[スキーマ バージョンの XML ファイルの生成] (Embedded Coder)[4.3] に等しい場合、エクスポートは上にリストされているスキーマ 4.3 のエクスポート スキーマ リビジョン (つまり、リビジョン 4.3.1) を使用します。

AUTOSAR ソフトウェア コンポーネントをエクスポートする前に、選択したスキーマ バージョンを確認します。選択したスキーマ バージョンを変更する必要がある場合、モデル コンフィギュレーション パラメーター [スキーマ バージョンの XML ファイルの生成] を使用します。

メモ

AUTOSAR モデル コンフィギュレーション パラメーターを最上位モデルおよび参照モデルと同じ値に設定します。このガイドラインは [スキーマ バージョンの XML ファイルの生成] (Embedded Coder)[SHORT-NAME の最大長] (Embedded Coder)[AUTOSAR コンパイラの抽象化マクロの使用] (Embedded Coder) および [1 次元配列を使用したルートレベルの行列の I/O のサポート] (Embedded Coder) に適用されます。

省略名の最大長の指定

AUTOSAR 規格では、SHORT-NAME XML 要素の最大の長さは 128 文字に指定されています。

コード ジェネレーターによってエクスポートされた SHORT-NAME 要素の最大の長さを指定するには、モデル コンフィギュレーション パラメーター [SHORT-NAME の最大長] (Embedded Coder) を 32 から 128 までの整数値に設定します。既定の設定は 128 文字です。

AUTOSAR コンパイラ抽象化マクロの設定

16 ビット プラットフォーム用のコンパイラ (S12X 用の Cosmic および Metrowerks や ST10 用の Tasking など) では、限られた 16 ビットのアドレス範囲を扱うために特別なキーワードが使用されます。64k 境界を越えるデータおよびコードの位置は特別なキーワードによって明示的に選択されます。ただし、そのようなキーワードをソース コード内で直接使用した場合、そのソフトウェアはマイクロコントローラー ファミリごとに個別に移植しなければなりません。つまりソフトウェアはプラットフォーム依存になります。

AUTOSAR では、C のマクロを指定して、プラットフォームに依存しない方法でコンパイラ命令 (near/far メモリ呼び出し) を抽象化します。これらのコンパイラ命令は 16 ビット プラットフォームに由来し、コンパイラごとにソース コードを個別に移植することなく 16 ビット マイクロコントローラーのコードの効率性を高めることができます。このアプローチによって、ソフトウェア コンポーネントの実装者ではなくシステム インテグレーターが、それぞれのソフトウェア コンポーネントのデータとコードの配置場所を選択できるようになります。

AUTOSAR のコンパイラ抽象化の詳細については、www.autosar.org を参照してください。

AUTOSAR コンパイラ マクロ生成を有効にするには、モデル コンフィギュレーション パラメーター [AUTOSAR コンパイラの抽象化マクロの使用] (Embedded Coder) を選択します。

モデルをビルドするときに、生成されるコード内のグローバルなデータと関数の定義にコンパイラ抽象化マクロが適用されます。

データについては、マクロは次の形式になります。

  • CONST(consttype, memclass) varname;

  • VAR(type, memclass) varname;

ここで

  • consttype および type はデータ型です。

  • memclass はマクロ文字列 SWC_VAR (SWC はソフトウェア コンポーネント識別子) です。

  • varname は変数識別子です。

関数 (モデルおよびサブシステム) については、マクロは次の形式になります。

  • FUNC(type, memclass) funcname(void)

ここで

  • type は戻り引数のデータ型です。

  • memclass はマクロ文字列です。この文字列はランナブル (外部関数) については SWC_CODE に、内部関数については、SWC_CODE_LOCAL になります (SWC はソフトウェア コンポーネント識別子)。

[AUTOSAR コンパイラの抽象化マクロの使用] オプションを選択 "しない" 場合は、コード ジェネレーターによって次のコードが生成されます。

/* Block signals (auto storage) */
BlockIO rtB;

/* Block states (auto storage) */
D_Work rtDWork;

/* Model step function */
void Runnable_Step(void)

[AUTOSAR コンパイラの抽象化マクロの使用] オプションを選択した場合は、コード ジェネレーターによってコード内にマクロが生成されます。

/* Block signals (auto storage) */
VAR(BlockIO, SWC1_VAR) rtB;

/* Block states (auto storage) */
VAR(D_Work, SWC1_VAR) rtDWork;

/* Model step function */
FUNC(void, SWC1_CODE) Runnable_Step(void)

ルートレベルの行列の I/O

多次元配列をもつ AUTOSAR コンポーネント モデルの場合、モデル コンフィギュレーション パラメーター [配列のレイアウト] (Simulink Coder)[Row-major] に設定すると、生成された C コードで多次元配列の次元を保持できます。生成されたコードで配列の次元を保持すると、コード統合を向上させることができます。

アプリケーション設計に [Column-major] 配列レイアウトが必要である場合、ルートレベルの行列 I/O をサポートするように ARXML エクスポートを設定できます。行列を 1 次元配列で実装する ARXML 記述がエクスポートされます。

既定では、[Column-major] 配列レイアウトの場合、ルート レベルの行列 I/O は許可されません。モデルをビルドすると、エラーが生成されます。ルートレベルの行列 I/O を有効にするには、モデル コンフィギュレーション パラメーター [1 次元配列を使用したルートレベルの行列の I/O のサポート] (Embedded Coder) を選択します。

[配列のレイアウト][Row-major] に設定されている場合、[1 次元配列を使用したルートレベルの行列の I/O のサポート] は影響しません。

AUTOSAR XML オプションの検査

AUTOSAR ディクショナリを使用して設定した XML オプションを確認します。まだ設定していない場合は、AUTOSAR XML オプションの設定を参照してください。

AUTOSAR の C ファイルと XML ファイルの生成

AUTOSAR コード生成オプションと XML オプションを設定したら、コードを生成します。C コードを生成して XML 記述をエクスポートするには、コンポーネント モデルをビルドします。

ビルド プロセスにより、AUTOSAR 準拠の C コードと AUTOSAR XML 記述がモデル ビルド フォルダーに生成されます。エクスポートされた XML ファイルには次のものが含まれます。

  • [エクスポートされた XML ファイルのパッケージ化][単一のファイル] または [モジュラー] のどちらに設定するかに基づく、1 つ以上の modelname*.arxml ファイル。

  • ARXML ファイルを Simulink にインポートした場合は、同じファイルの更新されたバージョン。

AUTOSAR ディクショナリで設定された [エクスポートされた XML ファイルのパッケージ化] オプションの値に基づいて生成される modelname*.arxml ファイルを次の表に示します。

[エクスポートされた XML ファイルのパッケージ化] の値エクスポートされるファイル名既定の内容
単一のファイルmodelname.arxmlソフトウェア コンポーネント、データ型、実装、インターフェイスおよびタイミングの AUTOSAR 要素。
モジュラーmodelname_component.arxml

以下を含むソフトウェア コンポーネント:

  • 端子

  • イベント

  • ランナブル

  • インターランナブル変数 (IRV)

  • インクルード データ型セット

  • コンポーネントスコープのパラメーターと変数

これは Simulink モデルに対してエクスポートされるメイン ARXML ファイルです。ソフトウェア コンポーネントに加え、コンポーネント ファイルには、AUTOSAR 要素カテゴリに基づいてエクスポーターがデータ型、実装、インターフェイス、またはタイミング ファイルに移動しない、パッケージ化可能な要素が含まれます。

modelname_datatype.arxml

以下を含むデータ型と関連付けられている要素:

  • アプリケーション データ型

  • ソフトウェアの基本データ型

  • データ型のマッピング セット

  • 定数指定

  • 物理データの制約

  • システム定数

  • ソフトウェアのアドレス メソッド

  • モード宣言グループ

  • 計算方法

  • 単位と単位グループ

  • ソフトウェア レコード レイアウト

  • 内部データ制約

modelname_implementation.arxmlソフトウェア コンポーネントの実装 (コード記述子など)。
modelname_interface.arxmlインターフェイス (S-R、C-S、M-S、NV、パラメーター、トリガーなどのインターフェイス)。インターフェイスには、S-R データ要素、C-S オペレーション、ポートベースのパラメーター、トリガーなどの型固有の要素が含まれます。
modelname_timing.arxmlタイミング モデル (ランナブル実行順序制約など)。

AUTOSAR XML コンポーネント記述は AUTOSAR オーサリング ツールにマージして戻すことができます。AUTOSAR コンポーネント情報は、マージを容易にするために個別のファイルに分割されます。分割は必要なマージ数が最小になるように行われます。データ型ファイルはオーサリング ツールにマージする必要はありません。データ型は通常、設計プロセスの初期段階で定義されるからです。ただし、内部動作ファイルについては、その情報がモデル実装の一部となるので、マージしなければなりません。

AUTOSAR オーサリング ツール (AAT) と Simulink モデルベース デザイン環境の間において AUTOSAR 要素のラウンドトリップをサポートするために、コード ジェネレーターは ARXML インポートおよびエクスポートの全体において AUTOSAR 要素とその汎用一意識別子 (UUID) を保持します。詳細については、AUTOSAR XML ファイル構造と要素情報のラウンド トリップの保存を参照してください。

Simulink モデルから AUTOSAR に準拠した C コードを生成して AUTOSAR XML コンポーネント記述をエクスポートする方法の例については、AUTOSAR C コードおよび XML 記述の生成を参照してください。

参考

(Embedded Coder) | (Embedded Coder) | (Embedded Coder) | (Embedded Coder)

関連する例

詳細