メインコンテンツ

pslinkfun

コマンド ラインでのモデル解析の管理

説明

pslinkfun('annotations','type',typeValue,'kind',kindValue,Name,Value) は、タイプ typeValue および種類 kindValue の注釈を、モデル内の選択されたブロックに追加します。Name,Value のペアの引数を使用して、別のブロックを指定できます。また、Name,Value のペアを使用して、重大度の分類に関するメモ、アクション ステータスまたは他のコメントを追加することもできます。

注釈付きブロックに関連付けられた生成コードでは、Polyspace® によりコードのコメントがコード行の前後に追加されます。Polyspace はこれらのコメントを読み取り、指定された kind の Polyspace の結果を注釈された情報でマークします。

構文の制限事項:

  • 1 ブロックで使用可能な注釈は 1 つのみです。ブロックがルール違反とエラーの両方を生成する場合、注釈は 1 つのタイプのみに付けられます。

  • 注釈を個々のブロックに適用しても、注釈のスコープが大きくなる場合があります。1 つのブロックから生成されたコードが他にオーバーラップして、注釈もオーバーラップする場合があります。

    たとえば、このモデルを考えてみましょう。最初の和のブロックは Polyspace の注釈をもち、2 番目のブロックはもっていません。

    ただし、関連する生成コードは、コードの 1 行に 3 つの入力をすべて追加しています。

    /* polyspace:begin<RTE:OVFL:Medium:To Fix>*/
    annotate_y.Out1=(annotate_u.In1+annotate_U.In2)+annotate_U.In3;
    /* polyspace:end<RTE:OVFL:Medium:To Fix> */
    このため、注釈はどちらの和も正当化します。

pslinkfun('openresults',systemName) は、モデルまたはサブシステム systemName に関連付けられている Polyspace の結果を Polyspace 環境で開きます。

pslinkfun('advancedoptions') は、現在のモデルに対し追加オプションを構成するための、詳細検証オプションのウィンドウを開きます。

pslinkfun('enablebacktomodel') は、Simulink® プラグインのモデルに戻る機能を有効にします。Polyspace の結果がモデル ブロックに戻るように正しくリンクされない場合は、このコマンドを実行します。

pslinkfun('help') は、Polyspace ドキュメンテーションを新しいウィンドウで開きます。このオプションは、MATLAB® の R2013b より前のバージョンのみに使用します。

pslinkfun('jobmonitor') は Polyspace ジョブ モニターを開いてキュー内のリモート検証を表示します。

すべて折りたたむ

Polyspace の注釈関数を使用してブロックに注釈を付け、解析の結果の注釈を確認します。

モデル例である WhereAreTheErrors で、MISRA™ C ルール 13.7 違反に対する注釈を、コメント、重大度、ステータスと共に Switch ブロックに加えます。

model = 'WhereAreTheErrors';
open(model)
pslinkfun('annotations','type','Misra-C', 'kind', '13.7','block',...
	'WhereAreTheErrors/Switch1','status','to fix','comment','must fix')

開いたモデルで、Polyspace の注釈が Switch ブロックに追加されているのがわかります。

モデルのコードを生成し、解析を実行します。解析の終了後、Polyspace 環境で結果を開きます。

slbuild(model)
opts = pslinkoptions(model);
opts.VerificationMode = 'BugFinder';
opts.VerificationSettings = 'PrjConfigAndMisra';
pslinkrun(model,opts)
pslinkfun('openresults',model)
MISRA C ルール 13.7 の 5 つの違反に対して、Switch ブロックに注釈と追加情報が付けられました。注釈は [ステータス] および [コメント] 列に表示されます。

Polyspace 詳細オプションを変更して新しい構成をテンプレートとして設定します。

モデル WhereAreTheErrors を読み込み、詳細オプション ウィンドウを開きます。

model = 'WhereAreTheErrors';
load_system(model)
pslinkfun('advancedoptions')

Polyspace 構成ウィンドウが開きます。構成ウィンドウを使用して、コンパイラの動作、ターゲット言語、ターゲット環境などの Polyspace オプションを指定します。

Polyspace 構成の指定でこのワークフローは推奨されていません。代わりに関数 pslinkoptions を使用してください。Embedded Coder によって生成されるコードの汎用オプション オブジェクトの作成を参照してください。

リモート解析を実行し、キュー内の解析を表示します。

この例を実行する前に、Polyspace 構成がリモート解析用に設定されていることを確認します。

モデル WhereAreTheErrors をビルドし、Polyspace オプション オブジェクトを作成して検証モードを設定し、詳細オプションのウィンドウを開きます。

model = 'WhereAreTheErrors';
load_system(model)
slbuild(model)
opts = pslinkoptions(model);
opts.VerificationMode = 'BugFinder';
pslinkfun('advancedoptions')

[実行設定] ペインで、オプション [リモート クラスターで Bug Finder 解析を実行] を選択します。

Polyspace を実行し、ジョブ モニターを開いてリモート ジョブを監視します。

pslinkrun(model,opts)
pslinkfun('jobmonitor')

入力引数

すべて折りたたむ

ブロックへの注釈に使用されるチェックのタイプ。頭字語として指定されます。Bug Finder と Code Prover のそれぞれの結果の頭字語は次のとおりです。

Simulink ブロックへの注釈に使用される結果を指定するには、typeValuekindvalue を併せて使用します。

例: pslinkfun('annotations','type','MISRA-C-2023','kind','2.2')

チェックの略語またはコーディング ルール番号によって指定される特定のチェックまたはコーディング ルール。各タイプの注釈に固有の入力については、次の表を参照してください。

type の値kind の値
'RTE'

注釈しようとするチェックの種類に関連付けられた略語を使用します。たとえば、'UNR' は到達不能コードです。

可能なチェックのリストは、実行時チェック (Polyspace Code Prover)を参照してください。

'Defect'

注釈しようとするチェックの種類に関連付けられた略語を使用します。たとえば、整数オーバーフローの場合は 'INT_OVFL' です。

可能なチェックのリストは、欠陥を参照してください。

'MISRA-C'

注釈付けするルールの番号を使用します。たとえば、'2.2' です。

サポートされる MISRA C:2004 ルールとその番号のリストは、サポートされている MISRA C:2004 および MISRA AC AGC ルールを参照してください。

'MISRA-AC-AGC'

注釈付けするルールの番号を使用します。たとえば、'2.2' です。

サポートされる MISRA AC AGC ルールとその番号のリストは、サポートされている MISRA C:2004 および MISRA AC AGC ルールを参照してください。

'MISRA-C3'

注釈付けするルールの番号を使用します。たとえば、'2.2' です。

サポートされる MISRA C:2012 ルールとその番号のリストは、MISRA C:2012 命令およびルールを参照してください。

'MISRA-C-2023'

注釈付けするルールの番号を使用します。たとえば、'2.2' です。

サポートされる MISRA C:2023 ルールとその番号のリストは、MISRA C:2023 命令およびルールを参照してください。

'MISRA-CPP'

注釈付けするルールの番号を使用します。たとえば、'0-1-1' です。

サポートされる MISRA C++:2008 ルールとその番号のリストは、MISRA C++:2008 ルールを参照してください。

'MISRA-CPP-2023'

注釈付けするルールの番号を使用します。たとえば、'0.0.1' です。

サポートされる MISRA C++:2023 ルールとその番号のリストは、MISRA C++:2023 ルールおよび命令を参照してください。

'JSF'

注釈付けするルールの番号を使用します。たとえば、'3' です。

サポートされる JSF C++ ルールとその番号のリストは、サポートされる JSF C++ コーディング ルールを参照してください。

'CERT-C'

注釈付けするルールの番号を使用します。たとえば、'PRE00-C' です。

サポートされる JSF C++ ルールとその番号のリストは、CERT C ルールと推奨事項を参照してください。

'CERT-CPP'

注釈付けするルールの番号を使用します。たとえば、'PRE00-C' です。

サポートされる JSF C++ ルールとその番号のリストは、CERT C++ ルールを参照してください。

'ISO-17961'

注釈付けするルールの番号を使用します。たとえば、'accfree' です。

サポートされる JSF C++ ルールとその番号のリストは、ISO/IEC TS 17961 ルールを参照してください。

'AUTOSAR-CPP14'

注釈付けするルールの番号を使用します。たとえば、'A0-1-1' です。

サポートされる JSF C++ ルールとその番号のリストは、AUTOSAR C++14 ルールを参照してください。

'CWE'

注釈付けするルールの番号を使用します。たとえば、'14' です。

サポートされる JSF C++ ルールとその番号のリストは、共通脆弱性タイプ一覧 (CWE)を参照してください。

'GUIDELINE'

注釈付けするルールの番号を使用します。たとえば、'SC03' です。

サポートされる JSF C++ ルールとその番号のリストは、ガイドラインを参照してください。

'CUSTOM'

注釈付けするルールの番号を使用します。たとえば、'1.1' です。

サポートされる JSF C++ ルールとその番号のリストは、カスタム コーディング ルールを参照してください。

Simulink ブロックへの注釈に使用される結果を指定するには、typeValuekindvalue を併せて使用します。

例: pslinkfun('annotations','type','MISRA-CPP-2023','kind','0.0.1')

データ型: char

システムまたはサブシステム名で指定された Simulink モデル。

例: pslinkfun('openresults','WhereAreTheErrors')

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: 'block','MyModel\Sum', 'status','to fix'

ブロック名で指定する、注釈対象のブロック。このオプションを使用しない場合、関数 gcb が返すブロックに注釈がつけられます。

例: 'block','MyModel\Sum'

highmediumlow、または unset として指定されるチェックの重大度。

例: 'class','high'

unreviewedto investigateto fixjustifiedno action plannednot a defect、または other として指定されるチェックのアクション ステータス。

例: 'status','no action planned'

文字ベクトルとして指定する追加のコメント。コメントは結果が正当化された理由に関する詳細情報を示します。

例: 'comment','defensive code'

バージョン履歴

R2014a で導入

参考

| | (Simulink)