TargetLink で生成されたコードに対する既定の Polyspace オプション
TargetLink のサポート
Polyspace® の Windows® バージョンは、dSPACE® データ ディクショナリおよび TargetLink® コード ジェネレーターと互換性があります。
Polyspace は CTO 生成コードをサポートします。ただし、より適切な結果を得るため、MathWorks® では、コード生成前に TargetLink で CTO オプションを無効にすることを推奨しています。詳細は、dSPACE ドキュメンテーションを参照してください。
Polyspace により dSPACE データ ディクショナリから情報が抽出されるため、解析の実行前にコードを再生成しなければなりません。
既定のオプション
Polyspace により、以下のオプションが既定で設定されます。
-sources path_to_source_code -results-dir results_folder_name -I path_to_source_code -D PST_ERRNO -I dspaceroot\matlab\TL\SimFiles\Generic -I dspaceroot\matlab\TL\srcfiles\Generic -I matlabroot\polyspace\include -I matlabroot\extern\include -I matlabroot\rtw\c\libsrc -I matlabroot\simulink\include -functions-to-stub=[rtIsNaN,rtIsInf,rtIsNaNF,rtIsInfF] -scalar-overflows-behavior wrap-around -boolean-types Bool
メモ
dspaceroot
および matlabroot
は、それぞれ dSPACE および MATLAB® ツールのインストール ディレクトリです。
ルックアップ テーブル
既定では、Polyspace ではルックアップ テーブル関数にスタブが提供されます。サポートされているルックアップ テーブルのタイプには、TL_Lookup1D
、TL_Lookup2D
、TL_IndexSearch
、および TL_Interpolation
があります。dSPACE データ ディクショナリは、ルックアップ テーブル関数の戻り値の範囲を定義するために使用されます。外挿を使用して、指定された入力値を超える出力値を計算するルックアップ テーブル関数の場合、戻り値の範囲は、返される変数の型の全範囲です。この動作は、Polyspace の構成メニューから無効にできます。
データ範囲指定
入力、パラメーターおよび出力を指定されたデータ範囲内に制約できます。ブロックの信号範囲の操作 (Simulink)を参照してください。
ソフトウェアは各グローバル変数の dSPACE データ ディクショナリを使用して、Polyspace 制約ファイルを自動的に作成します。制約の情報は、データ ディクショナリの min..max の情報で定義される有効な値の範囲に各グローバル変数を初期化するために使用されます。この情報により、Polyspace ソフトウェアでは解析中にシステムの実数値をモデル化できます。モデルで最小~最大の情報を注意深く定義すると、実数値の範囲のみが解析されるため、より正確な解析を実行できます。
メモ
boolean 型は最小値 0 および最大値 1 でモデル化されます。
また、Polyspace ユーザー インターフェイスで制約ファイルを手動で定義することもできます。Polyspace 解析の外的制約の指定を参照してください。制約ファイルを定義すると、自動的に生成された情報が、作成する制約ファイルに追加されます。手動で定義した制約情報は、すべての変数について、自動的に生成された情報をオーバーライドします。
制約は静的変数に適用できません。このため、コンパイル フラグ -D static=
が自動的に設定されます。これによりコードから静的キーワードが取り除かれます。グローバル名前空間に名前の競合の問題がある場合、変数の名前を変更するか、Polyspace の構成でこのオプションを無効にします。
コード生成オプション
TargetLink メイン ダイアログでは、以下が推奨されます。
オプション
Clean code
を設定するオプション
Enable sections/pragmas/inline/ISR/user attributes
の設定を解除する(CTO) 生成をオーバーフローさせる計算をオフにする。Polyspace では CTO によって生成されたコードを解析できますが、結果の正確性は低くなる可能性があります。
Polyspace をインストールするときに、変数 tlcgOptions
が 'PolyspaceSupport', 'on'
に更新されます ('C:\dSPACE\Matlab\Tl\config\codegen\tl_pre_codegen_hook.m'
ファイルの変数を参照)。