Main Content

制限とヒント

AUTOSAR のコード生成には次の制限が適用されます。

[コード生成のみ] チェック ボックス

[コード生成のみ] チェック ボックスを選択しない場合、モデルをビルドしたときにエラー メッセージが出力されます。このメッセージでは、次の場合にのみ AUTOSAR システム ターゲット ファイルの実行可能ファイルがビルドできることが伝えられます。

  • SIL (ソフトウェアインザループ) ブロックまたは PIL (プロセッサインザループ) ブロックを作成するようにモデルを設定する

  • SIL シミュレーション モードまたは PIL シミュレーション モードでモデルを実行する

  • カスタムのテンプレート makefile を指定する

AUTOSAR コンパイラの抽象化マクロ (Classic Platform)

以下のものから生じたデータまたは関数に対しては、AUTOSAR コンパイラ抽象化マクロは生成されません。

  • Model ブロック

  • Stateflow®

  • MATLAB® Coder™

  • 共有されたユーティリティ関数

  • カスタム ストレージ クラス

  • ローカル変数または一時変数

エクスポートされた ARXML およびコードにおけるバス要素の次元の保持

[行優先] に設定されたプロパティ [配列のレイアウト] でモデルが構成されている場合、バス要素の次元はエクスポートされた ARXML および生成コードで保持されます。以前は、多次元配列 Simulink.BusElement が含まれる Simulink.Bus データ型がモデルに含まれていた場合、エクスポートされた ARXML と生成コードにより、バス要素は 1 次元配列にフラット化されていました。今後は、生成コードとエクスポートされた ARXML に想定どおりの次元数が保持されます。

AUTOSAR Adaptive アプリケーションに対して生成された C++11 スタイルのスコープ内 Enum クラス

より簡単な統合を促進するために、既定の設定で、AUTOSAR Adaptive モデルに対して生成された C++ コードは、C++ 11 スタイルのスコープ内 enum クラス データ型を生成したコードに出力します。このデータ型の定義はビルド フォルダーの aragen/stub フォルダーに配置されている列挙型のヘッダー ファイルで確認できます。このデータ型の定義は標準化され、コード生成の前に検証されます。

以下の表に、スコープ内 enum クラス定義と、動的列挙に対して以前に生成されたコードの動作の比較を示します。

Simulink.defineIntEnumType('BasicColors', ...
{'Red','Green','Blue'},...
[0;1;2],...
'DataScope','Auto',...
'StorageType','uint8')

ヘッダー ファイル内の生成された列挙型定義

以前の動作 (C++03)現在の既定の動作 (C++11)
#ifndef IMPL_TYPE_BASICCOLORS_H_
#define IMPL_TYPE_BASICCOLORS_H_
#include <cstdint>
  
using BasicColors = uint8_t;
 
const BasicColors Red = 0;
const BasicColors Green = 1;
const BasicColors Blue = 2;
  
#endif   //IMPL_TYPE_BASICCOLORS_H_
#ifndef IMPL_TYPE_BASICCOLORS_H_
#define IMPL_TYPE_BASICCOLORS_H_
#include <cstdint>
  
enum class BasicColors : uint8_t {
    Red = 0, 
    Green = 1,
    Blue = 2
};
  
#endif   //IMPL_TYPE_BASICCOLORS_H_

既定の動作は C++11(ISO) に設定されたモデルに対する既定の [言語標準] によって決定されます。モデルで C++ 03 が生成されるようにこの設定を行う場合、生成されたコードにより以前のコード定義の動作が出力され、サードパーティの ARA ジェネレーターと一緒に使用するとコンパイルされない場合があります。