メインコンテンツ

タスク (-entry-points)

マルチタスク アプリケーションのタスクとして機能する関数の指定

説明

コードのタスクとして機能する関数を指定します。その関数が存在しない場合、検証によって警告が表示され、検証は続行されます。

オプションの設定

以下のいずれかの方法を使用してオプションを設定します。

  • Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [マルチタスキング] ノードを選択してから、このオプションの関数名を入力します。最初に有効にしなければならない他のオプションについては、依存関係を参照してください。

  • Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [静的解析] タブで [マルチタスキング] ノードを選択してから、このオプションの関数名を入力します。最初に有効にしなければならない他のオプションについては、依存関係を参照してください。

  • コマンド ラインとオプション ファイル: オプション -entry-points を使用します。コマンド ライン情報を参照してください。

このオプションを使用する理由

このオプションは、コードがマルチタスキングを対象とする場合に使用します。

周期タスクと割り込みを指定するには、オプション [周期タスク] (-cyclic-tasks)[割り込み] (-interrupts) を使用します。このオプションを使用して他のタスクを指定します。

Code Prover 解析では、この指定を使用して以下が判断されます。

  • グローバル変数が共有されているかどうか。

    グローバル変数 (Polyspace Code Prover)を参照してください。

  • ランタイム エラーが発生する可能性があるかどうか。

    たとえば、演算 var++ が周期タスクの本体内で行われ、var に制限を設けていない場合、この演算はオーバーフローする可能性があります。解析により、オーバーフローが発生する可能性が検出されます。

Bug Finder 解析では、この指定を使用して、同時実行の欠陥が調査されます。詳細については、同時実行の欠陥を参照してください。

設定

既定値なし

関数名を入力するか、一覧から選択します。

  • をクリックしてフィールドを追加し、関数名を入力します。

  • をクリックして、コード内の関数の一覧を表示します。その一覧から関数を選択します。

依存関係

デスクトップ製品のユーザー インターフェイスでこのオプションを有効にするには、最初にオプション [マルチタスクを手動で構成] を選択します。

ヒント

  • Code Prover では、エントリ ポイントを表す関数は次の形式に準拠しなければなりません。

    void functionName (void)

  • 関数 func が引数を取るか、値を返す場合は、その関数をエントリ ポイントとして直接使用することはできません。func をエントリ ポイントとして使用するには、ラッパー void-void 関数から func を呼び出して、そのラッパーをエントリ ポイントとして指定します。Polyspace マルチタスキング解析の手動設定を参照してください。

  • 関数をタスクとして指定する場合、その定義を指定しなければなりません。そうしないと、Code Prover 検証が停止してエラー メッセージが表示されます。

    task func_name must be a userdef function without parameters

    Bug Finder 解析は続行されますが、その関数はエントリ ポイントとは見なされません。

  • Code Prover でファイルごとの検証を実行する場合、マルチタスキング オプションは無視されます。ファイルを個別に検証 (-unit-by-unit) を参照してください。

  • Polyspace マルチタスキング解析は、タスクがそれ自身に割り込む可能性がないことを前提としています。

コマンド ライン情報

パラメーター: -entry-points
既定値なし
値: function1[,function2[,...]]
例 (Bug Finder): polyspace-bug-finder -sources file_name -entry-points func_1,func_2
例 (Code Prover): polyspace-code-prover -sources file_name -entry-points func_1,func_2
例 (Bug Finder Server): polyspace-bug-finder-server -sources file_name -entry-points func_1,func_2
例 (Code Prover Server): polyspace-code-prover-server -sources file_name -entry-points func_1,func_2