時間的に排他なタスク (-temporal-exclusions-file)
同時に実行できないエントリ ポイント関数の指定
説明
同時に実行できないエントリ ポイント関数を指定します。関数の実行は重複できません。
オプションの設定
以下のいずれかの方法を使用してオプションを設定します。
Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [マルチタスキング] ノードを選択してから、このオプションの時間的に排他な関数の名前を入力します。最初に有効にしなければならない他のオプションについては、依存関係を参照してください。
Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [静的解析] タブで [マルチタスキング] ノードを選択してから、このオプションの時間的に排他な関数の名前を入力します。最初に有効にしなければならない他のオプションについては、依存関係を参照してください。
コマンド ラインとオプション ファイル: オプション
-temporal-exclusions-fileを使用します。コマンド ライン情報を参照してください。
設定
既定値なし
をクリックしてフィールドを追加します。各フィールドに、スペース区切りの関数のリストを入力します。Polyspace では、リスト内の関数は同時に実行できないものとみなされます。
関数名を手動で入力するか、一覧から選択します。
をクリックしてフィールドを追加し、関数名を入力します。
をクリックして、コード内の関数の一覧を表示します。その一覧から関数を選択します。
依存関係
デスクトップ製品のユーザー インターフェイスでこのオプションを有効にするには、次のようにします。
オプション
[マルチタスクを手動で構成]を選択します。[タスク] (-entry-points)、[周期タスク] (-cyclic-tasks)、および[割り込み] (-interrupts)の関数名を指定します。
これらの関数の一部は、時間的に排他なタスクとして指定できます。あるいは、オプション [外部マルチタスキング構成] で外部ファイルを使用するマルチタスキング構成を指定する場合、外部ファイルの関数の一部を、時間的に排他として指定できます。
自動的に検出されるスレッド作成ルーチン (pthread_create など) では、時間的に排他なタスクを指定することはサポートされていません。これらのルーチンは、個別のスレッドを作成するために、コード内の異なる位置で呼び出すことができます。ただし、時間的に排他のオプションでは、コード内の異なる位置で同一ルーチンの個別の呼び出しを 2 つ指定する操作はサポートされていません。
ヒント
共有変数の取り得る値を判断する際、Code Prover 検証では時間的に排他なタスクの指定が考慮されます。
ただし、共有変数がポインターまたは配列の場合、本ソフトウェアでは、その変数が保護された共有グローバル変数かどうかを判断するためにのみ、この指定が使用されます。Code Prover でランタイム エラーをチェックしている場合、本ソフトウェアではこの指定が考慮されず、その変数は同時にアクセスされる可能性があると見なされます。
コマンド ライン情報
コマンド ライン オプションでは、次の形式で時間的排他ファイルを作成します。
各行に、時間的に排他なタスクのグループを 1 つずつ入力します。
行内のタスクはスペースで区切ります。
コメントの入力は # から開始します。例は、ファイル を参照してください。ここで、polyspaceroot\polyspace\examples\cxx\Code_Prover_Example\sources\temporal_exclusions.txt は Polyspace インストール フォルダーです。たとえば、polyspacerootC:\Program Files\Polyspace\R2019a です。
パラメーター: -temporal-exclusions-file |
| 既定値なし |
| 値: 時間的排他ファイルの名前 |
例 (Bug Finder): polyspace-bug-finder -sources |
例 (Code Prover): polyspace-code-prover -sources |
例 (Bug Finder Server): polyspace-bug-finder-server -sources |
例 (Code Prover Server): polyspace-code-prover-server -sources |