コンテンツにスキップ

📖 AUTOSAR

上級

Mayhem を使用してソフトウェアインザループ (SIL) テスト フェーズ中に組み込みソフトウェアを解析できます。このステージで解析を行うと、ハードウェア統合の前に欠陥を検出して修正することができます。SIL テストを行うには、電子制御ユニット (ECU) を仮想化する必要があります。

解析の要件

仮想化された ECU (vECU) を解析するには、以下が必要です。

Tip

  1. Mayhem 2.10 以上
  2. mayhem CLI
  3. vVirtualTarget を使用して作成された vECU または OpenSUT API を公開する vECU。Mayhem は Linux x64/x86、Linux x64/x86、Windows x64 でコンパイルされた vECU をサポートしています。

Vector ツールチェインおよび vECU の作成の詳細については、Vector のドキュメントを参照してください。

vECU ターゲットでの Mayhem の実行

Mayhem は組み込みソフトウェア用の汎用ハーネスを使用して vECU を解析します。このハーネスは、Mayhem CLI 内のバイナリ実行ファイルとして提供され、Mayhem の他のハーネス テンプレートと同様に利用されます。

vECU を生成したら、次の操作を行います。

1. Mayhem の SUT ランナーを初期化する

ターミナルで次のコマンドを実行します。

mayhem init --template=opensut 
このコマンドは、Mayhem の作業ディレクトリを初期化し、Mayhem の SUT ランナーおよびこの手順を含む README.md をロードします。

2. vECU および関連ファイルを Mayhem ディレクトリにコピーする

dll (Windows) または so (Linux) および生成された pdb ファイルを mayhem init によって作成された root ディレクトリにコピーします。

3. Mayhem ランを構成する

Mayhemfilecmd 行のコメントを解除し、Mayhem SUT ランナーおよびターゲットを指すように編集します。例:

  • Windows x86: /mayhem-sut-runner-win32.exe /<your-target.dll> @@
  • Windows x64: /mayhem-sut-runner-win32.exe /<your-target.dll> @@
  • Linux: /mayhem-sut-runner-linux <your-target.so> @@
4. Mayhem を実行する

ターミナルで mayhem run . を実行します。

詳細設定

Mayhem の解析動作を変更する環境変数を設定することで、エラー チェック、入力遅延時間などを細かく調整できます。設定可能な変数および未指定の場合のデフォルト値の一覧は次のとおりです。

MAYHEM_BOOT_DELAY_MS milliseconds

ランナーが入力のスティミュレーションを開始するまでの遅延時間をミリ秒単位で指定します。

デフォルト値は 100 です。


MAYHEM_STEP_DELAY_MS milliseconds

スティミュレーション ステップ間の遅延時間を指定します。

デフォルトでは、Mayhem によって制御される不定の値です。


MAYHEM_CTRL_PINS comma-seperated

各ステップ後にチェックする制御出力です。指定された文字列を含む名前に一致します。たとえば、foo と指定すると foobar_output に一致します。複数の文字列を指定するには、カンマで区切ります。

デフォルトでは、Errorが含まれます。

空白のままにすると、すべてのエラー チェックが無効化されます。


MAYHEM_SKIP_PINS comma-seperated

スティミュレーション発生時にスキップする入力値を指定します。指定された文字列を含む入力値に一致します。

デフォルトでは、ResetError および Ramが含まれます。


MAYHEM_CAN_ID integer

SUT が期待する CAN ID を指定できます。

デフォルトでは、必要に応じて Mayhem が CAN ID を生成します。


MAYHEM_TRIAGING boolean

設定した場合、目視で解読可能なスティミュレーション トレースを生成します。トレースは CANoe での共有や mayhem の Web コンソールでの表示が可能です。

デフォルトでは未設定です。