メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

AUTOSAR コードの Polyspace 解析でのエラーと警告の解釈

このトピックでは、Polyspace でのコンポーネント ベースの AUTOSAR コード検証方法について説明します。統合解析方法については、Polyspace で AUTOSAR コードのコンポーネント ベースの解析と統合解析のどちらかを選択するを参照してください。

AUTOSAR ソフトウェア コンポーネントのコード実装を解析するために、Polyspace® では AUTOSAR XML (ARXML) 仕様を解析して対応するコード実装を検出した後、そのコードをコンパイルして静的解析を実行し、ランタイム エラーまたはコードと仕様との不一致を検出します。これらの手順のいずれかでエラーが発生した場合、エラーを含むソフトウェア コンポーネントの解析結果は表示されません。このチュートリアルでは、ARXML 仕様の解析中に発生する可能性のあるエラーのクラスを特定して診断する方法を示します。

一部の ARXML 仕様に定義が曖昧な要素が含まれていても、解析は、コード実装でそのような要素が使用されない可能性があるという前提で、そのような要素の一時的な代用型を使用して進展しようとします。ただし、問題によっては、この代用型が使用できません。そのため、警告のみで ARXML の抽出段階が完了したとしても、警告自体に次の 2 つのタイプがあります。

  • 解析で代用型が作成できない問題に関する警告。

    たとえば、イベントでポートが未定義のランナブルが呼び出された場合は、解析でそのイベントをモデリングできません。

  • 解析を degraded 代用型で進めた場合の問題に関する警告。

    たとえば、ランナブルまたは RTE API 関数で使用されるデータ型が未定義の場合は、解析は degraded データ型を使って進められます。

例のファイル

このチュートリアルの手順に従うには、polyspaceroot\polyspace\examples\doc_cxx\troubleshooting_polyspace_autosar に含まれるデモ ファイルを使用します。ここで、polyspaceroot は Polyspace インストール フォルダーです。たとえば、C:\Program Files\Polyspace\R2025a です。

ファイル構造の概要

デモファイルは、ルート フォルダー src と次の 2 つのオプション ファイルで構成されます。

  • オプション ファイル options_ko.txt は、エラーが故意に導入された src フォルダーからファイルを選択します。

  • オプション ファイル options_ok.txt は、同じエラーが修正された src フォルダーからファイルを選択します。

フォルダー src には次の 2 つのサブフォルダーがあります。

  • AUTOSAR XML 仕様を含む arxml

  • これらの仕様のコード実装を含む impl

フォルダー arxml には複数のサブフォルダーがあります。これらのサブフォルダーのうちの 2 つ、appliinterfaces には、フォルダー構造内の別々のレベルにサブフォルダー okko があります。ok サブフォルダーと ko サブフォルダーには、同じファイルのセットが含まれています。ただし、ko には故意にエラーを埋め込まれたファイルが入っています。

ファイル選択の表示

オプション ファイルの options_ok.txtoptions_ko.txt をテキスト エディターで開き、それぞれのファイル選択をメモします。

  • オプション ファイル options_ok.txt では、ファイル階層のすべてのレベルにある ko サブフォルダー内のファイルが除外されます。

    ファイル選択パターンの用途をメモしてください。

    -not -path '*/ko/*'

  • オプション ファイル options_ko.txt では、ファイル階層のすべてのレベルにある ok サブフォルダー内のファイルが除外されます。

    ファイル選択パターンの用途をメモしてください。

    -not -path '*/ok/*'

加えて、この両方のオプション ファイルでは、以下のパターンを使用して、do_not_use_this_arxml_file.arxml という名前の types サブフォルダー内の特定のファイルが除外されます。

 -path '*/types/*' -not -name 'do_not_use_this_arxml_file.arxml'
ファイル options_ko.txt 内の完全なファイル選択パターンは、以下のすべての条件が満たされている必要があります。

  • ファイル階層のすべてのレベルにある ko サブフォルダー内にファイルを配置しないでください。

  • ファイルに拡張子 .arxml を付けないでください。

  • ファイルは、フォルダーの appliinterfaces、または types のいずれかに配置する必要があります (ファイル do_not_use_this_arxml_file.arxml を除く)。

ファイル選択パターンの詳細については、Polyspace 解析用の AUTOSAR XML (ARXML) ファイルとコード ファイルの選択を参照してください。

解析の実行

解析を実行するには、ターミナルで、次のコマンドを入力します。

polyspace-autosar -options-file options_ko.txt
このコマンドは、パス polyspaceroot\polyspace\bin が既にオペレーティング システム内の PATH 変数に追加されていることを前提とします。ここで、polyspaceroot は Polyspace インストール フォルダーです。たとえば、C:\Program Files\Polyspace\R2025a です。そうでない場合は、polyspace-autosar コマンドへのフル パスを使用します。

ファイル options_ok.txt を使用した実行を繰り返します。

オプション ファイルでは、オプション -do-not-update-verification を使用して、コード検証フェーズの前に解析が停止されることに注意してください。

警告の解釈

オプション ファイルの options_ok.txtoptions_ko.txt を使用した解析の結果は、それぞれ、フォルダーの project_okproject_ko に保存されます。

フォルダー project_ko に移動して、Web ブラウザーでファイル psar_project.xhtml を開きます。ARXML 解析およびコード抽出フェーズではエラーと警告の両方が表示されます。

エラーの詳細については:

  1. 左上の アイコンをクリックします。左側のペインで、[Behaviors] をクリックします。

    [Status for each AUTOSAR Behavior] セクションでは、次の点に注意してください。

    • 動作 tst003.app.swc001.bhv では、ARXML 解析フェーズとコード抽出フェーズでエラーと警告が表示されます。

    • 動作 tst003.app.swc002.bhv ではエラーも警告も表示されません。

    エラーまたは警告が表示されない動作をフィルターで除外することもできます。左ペインの [Behavior Selection] セクションで、[behaviors with error-status] を選択し、[検索] をクリックします。

  2. エラーと警告が表示される動作の詳細については、tst003.app.swc001.bhv で:

    1. [Read AUTOSAR behavior] セクションで、リンク [definition of RTE interface and prove-objective] をクリックします。

    2. 一番上のエラー メッセージを展開します。このエラーは、Polyspace が ARXML 仕様内の問題が原因でイベントをモデリングできない状況を表しています。この場合は、ポートが定義されていません。

    3. 左ペインの [Function selection] セクションで、[all having error or warning] を選択し、[検索] をクリックします。他のエラー メッセージが表示されます。そのエラー メッセージを展開します。このエラーは、Polyspace がエラーに関係なくモデルを作成できる状況を表しています。この場合は、データ型が定義されておらず、解析は degraded 型を使って続行されます。

    メッセージに基づいて、ARXML 内の正確なエラーを特定できます。

    この動作では、コード抽出エラーも確認できます。このコード抽出エラーは、ARXML 内の問題にまで遡ることができます。ARXML 内の問題を修正すれば、コード抽出エラーも修正されます。オプション ファイル options_ok.txt を使用して解析を実行することによって、修正したプロジェクトを確認できます。

参考

トピック