このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
AUTOSAR コード生成の構成
AUTOSAR Classic Platform 用に構成されたモデルから AUTOSAR 準拠の C コードと ARXML コンポーネント記述を生成するには次を行います。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] 、 [AUTOSAR コード生成オプション] ペインで AUTOSAR コード生成パラメーターを設定します。
AUTOSAR ディクショナリまたは AUTOSAR プロパティ関数を使用して AUTOSAR XML エクスポート オプションを設定します。
モデルを作成します。
AUTOSAR Classic スキーマの選択
ARXML ファイルのインポートとエクスポートおよび AUTOSAR 互換の C コードの生成に関して、次の AUTOSAR Classic Platform スキーマ バージョンがサポートされています。
スキーマ バージョンの値 | インポートでサポートされるスキーマ リビジョン | エクスポート スキーマ リビジョン |
---|---|---|
R22-11 (既定) | R22-11 | R22-11 |
R21-11 | R21-11 | R21-11 |
R20-11 | R20-11 | R20-11 |
R19-11 | R19-11 | R19-11 |
4.4 | 4.4.0 | 4.4.0 |
4.3 | 4.3.0、4.3.1 | 4.3.1 |
4.2 | 4.2.1、4.2.2 | 4.2.2 |
4.1 | 4.1.1、4.1.2、4.1.3 | 4.1.3 |
4.0 | 4.0.1、4.0.2、4.0.3 | 4.0.3 |
モデルの AUTOSAR システム ターゲット ファイルをはじめて選択したときに、スキーマ バージョン パラメーターは既定値の [R22-11]
に設定されます。
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
_VARSWC
はソフトウェア コンポーネント識別子) です。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) を [行優先]
に設定すると、生成された C コードで多次元配列の次元を保持できます。生成されたコードで配列の次元を保持すると、コード統合を向上させることができます。
アプリケーション設計に [列優先]
配列レイアウトが必要である場合、ルートレベルの行列 I/O をサポートするように ARXML エクスポートを設定できます。行列を 1 次元配列で実装する ARXML 記述がエクスポートされます。
既定では、[列優先]
配列レイアウトの場合、ルート レベルの行列 I/O は許可されません。モデルをビルドすると、エラーが生成されます。ルートレベルの行列 I/O を有効にするには、モデル コンフィギュレーション パラメーター [1 次元配列を使用したルートレベルの行列の I/O のサポート] (Embedded Coder) を選択します。
[配列のレイアウト] が [行優先]
に設定されている場合、[1 次元配列を使用したルートレベルの行列の I/O のサポート] は影響しません。
AUTOSAR XML オプションの検査
AUTOSAR ディクショナリを使用して設定した XML オプションを確認します。まだ設定していない場合は、AUTOSAR XML オプションの設定を参照してください。
AUTOSAR の C ファイルと XML ファイルの生成
AUTOSAR コード生成オプションと XML オプションを設定したら、コードを生成します。C コードを生成して XML 記述をエクスポートするには、コンポーネント モデルをビルドします。
ビルド プロセスにより、AUTOSAR 準拠の C コードと AUTOSAR XML 記述がモデル ビルド フォルダーに生成されます。エクスポートされた XML ファイルには次のものが含まれます。
[エクスポートされた XML ファイルのパッケージ化] を
[単一のファイル]
または[モジュラー]
のどちらに設定するかに基づく、1 つ以上の
ファイル。modelname
*.arxmlARXML ファイルを Simulink にインポートした場合は、同じファイルの更新されたバージョン。
AUTOSAR ディクショナリで設定された [エクスポートされた XML ファイルのパッケージ化] オプションの値に基づいて生成される
ファイルを次の表に示します。modelname
*.arxml
[エクスポートされた XML ファイルのパッケージ化] の値 | エクスポートされるファイル名 | 既定の内容 |
---|---|---|
単一のファイル |
| ソフトウェア コンポーネント、データ型、実装、インターフェイスおよびタイミングの AUTOSAR 要素。 |
モジュラー |
| 以下を含むソフトウェア コンポーネント:
これは Simulink モデルに対してエクスポートされるメイン ARXML ファイルです。ソフトウェア コンポーネントに加え、コンポーネント ファイルには、AUTOSAR 要素カテゴリに基づいてエクスポーターがデータ型、実装、インターフェイス、またはタイミング ファイルに移動しない、パッケージ化可能な要素が含まれます。 |
| 以下を含むデータ型と関連付けられている要素:
| |
| ソフトウェア コンポーネントの実装 (コード記述子など)。 | |
| インターフェイス (S-R、C-S、M-S、NV、パラメーター、トリガーなどのインターフェイス)。インターフェイスには、S-R データ要素、C-S オペレーション、ポートベースのパラメーター、トリガーなどの型固有の要素が含まれます。 | |
| タイミング モデル (ランナブル実行順序制約など)。 |
AUTOSAR XML コンポーネント記述は AUTOSAR オーサリング ツールにマージして戻すことができます。AUTOSAR コンポーネント情報は、マージを容易にするために個別のファイルに分割されます。分割は必要なマージ数が最小になるように行われます。データ型ファイルはオーサリング ツールにマージする必要はありません。データ型は通常、設計プロセスの初期段階で定義されるからです。ただし、内部動作ファイルについては、その情報がモデル実装の一部となるので、マージしなければなりません。
AUTOSAR オーサリング ツール (AAT) と Simulink モデルベース デザイン環境の間において AUTOSAR 要素のラウンドトリップをサポートするために、コード ジェネレーターは ARXML インポートおよびエクスポートの全体において AUTOSAR 要素とその汎用一意識別子 (UUID) を保持します。詳細については、AUTOSAR XML ファイル構造と要素情報のラウンド トリップの保存を参照してください。
Simulink モデルから AUTOSAR に準拠した C コードを生成して AUTOSAR XML コンポーネント記述をエクスポートする方法の例については、AUTOSAR C コードおよび XML 記述の生成を参照してください。
すべての XML オプションについては、AUTOSAR XML Options Settingsを参照してください。
参考
スキーマ バージョンの XML ファイルの生成 (Embedded Coder) | SHORT-NAME の最大長 (Embedded Coder) | AUTOSAR コンパイラの抽象化マクロの使用 (Embedded Coder) | 1 次元配列を使用したルートレベルの行列の I/O のサポート (Embedded Coder)