パッケージ化オプション ファイルを使用した、生成コードに対する Polyspace 解析の実行
Simulink® ツールストリップから直接 Polyspace® 解析を開始すると、解析では設計範囲などの、モデル固有のコンテキストが考慮に入れられます。Simulink の外部から Polyspace 解析を実行する場合、オプション ファイルを使用してモデル固有の情報を指定しなければなりません。このようなオプション ファイルをオーサリングするのではなく、関数 polyspacePackNGo
で生成およびパッケージ化されたオプション ファイルを使用します。
Simulink の外部からの Polyspace 解析実行時に Simulink モデル コンテキスト情報を維持すると、さまざまな状況で役立ちます。次に例を示します。
分散型ワークフロー:Simulink ユーザーはモデルからコードを生成し、そのコードを別の開発環境に送信します。この環境の Polyspace ユーザーは Simulink を持っていない場合がありますが、生成コードの個別の解析を実行します。パッケージ化オプション ファイルを使用すると、設計範囲と他のモデル固有の情報が Polyspace 解析で維持されます。
Simulink で使用できない解析オプション:一部の Polyspace 解析オプションは、Polyspace 解析を Simulink から個別に実行した場合にのみ使用できます。パッケージ化オプション ファイルを使用すると、モデル固有の情報を維持しながら、個別の Polyspace 解析が実行されます。たとえば、パッケージ化オプション ファイルを使用して、生成コードに Polyspace 解析を実行することにより、生成コード内の同時実行スレッドを解析できます。
関数 polyspacePackNGo
を実行するには、Simulink が必要です。Simulink モデルからオプション ファイルを生成するために Polyspace は必要ありません。関数 polyspacePackNGo
は Embedded Coder® および TargetLink® で生成されたコードをサポートします。polyspacePackNGo
の使用に関するチュートリアルについては、分散ワークフローでスタンドアロン コードとして生成されたコードの解析 (Simulink)を参照してください。
Polyspace オプション ファイルの生成とパッケージ化
Simulink モデルから生成されたコードを解析するための Polyspace オプション ファイルを生成してパッケージ化するには、polyspacePackNGo
を使用します。
Simulink エディターで [コンフィギュレーション パラメーター] ダイアログ ボックスを開いて、コードを生成するためのモデルを構成します。
Polyspace と互換性があるようにモデルを構成するには、[システム ターゲット ファイル] に
ert.tlc
を選択します。コード アーカイブの生成を有効にするには、オプション [コードとアーティファクトのパッケージ化] を選択します。オプションで、フィールド [Zip ファイル名] にオプション パッケージの名前を指定します。コードにカスタム コード ブロックが含まれている場合、[コード生成] > [カスタム コード] ペインで [シミュレーション ターゲットと同じカスタム コードの設定を使用] を選択します。
あるいは、MATLAB® コマンド ウィンドウで以下を入力します。
% Configure the Simulink model mdlName for code generation configSet = getActiveConfigSet(mdlName); set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); set_param(configSet, 'PackageName', 'CodeArchive.zip'); set_param(configSet, 'SystemTargetFile', 'ert.tlc'); set_param(configSet,'RTWUseSimCustomCode','on');
コード アーカイブを生成します。
Polyspace オプション ファイルを生成してパッケージ化するには、MATLAB コマンド ウィンドウで関数
polyspacePackNGo
を使用します。Polyspace オプション ファイルを生成してパッケージ化を参照してください。zipFile = polyspacePackNGo(mdlName);
TargetLink を使用してコードを生成した場合、
polyspacepacknGo
の入力引数に TargetLink サブシステム名を使用します。オプションで、第 2 引数に
pslinkoptions
オブジェクトを使用して Polyspace 解析の既定のモデル構成を変更できます。pslinkoptions
オブジェクトを作成し、モデル構成を変更して、アーカイブ作成時にこのオブジェクトを指定します。特定の Polyspace 解析オプションを含む Polyspace オプション ファイルをパッケージ化を参照してください。psOpt = pslinkoptions(mdlName); psOpt.InputRangeMode = 'FullRange'; psOpt.ParamRangeMode = 'DesignMinMax'; zipFile = polyspacePackNGo(mdlName,psOpt);
オプションの第 3 引数を使用して、モデル参照として生成されるコード用の Polyspace オプション ファイルを生成してパッケージ化するかどうかを指定します。関数
slbuild
を使用してモデル参照としてコードを生成した場合を考えます。コード用に Polyspace オプションを生成してパッケージ化するには、MATLAB コマンド ウィンドウで以下を入力します。モデル参照として生成されたコード用の Polyspace オプション ファイルをパッケージ化を参照してください。zipFile = polyspacePackNGo(mdlName,[],true);
関数
polyspacepackNGo
はオプション ファイルを含むアーカイブへの絶対パスを返します。ファイルはアーカイブされたフォルダー階層内のpolyspace
フォルダーに配置されます。polyspace
フォルダーの内容は関数polyspacePackNGo
の入力によって異なります。オプションの第 2 引数と第 3 引数を指定しなかった場合、フォルダー
polyspace
に次のオプション ファイルがフラットな階層で格納されます。optionsFile.txt
:このファイルには、Polyspace を使用した生成コードの解析に必要なソース ファイル、インクルード ファイル、データ範囲指定、および解析オプションが指定されます。コードにカスタム C コードが含まれている場合、このファイルにカスタムのソース ファイルとヘッダー ファイルの相対パスが指定されます。
:このファイルは、モデルの設計範囲指定を指定します。modelname
_drs.xmllinksData.xml
:このファイルは、生成コードをモデルのコンポーネントにリンクします。
psOpts.ModelbyModelRef = true
を指定すると、すべての参照モデルに対して対応するオプション ファイルが生成されます。これらのオプション ファイルは、コード アーカイブ内のpolyspace_
という名前の別個のフォルダーに格納されます。フォルダー<referenced model name>
polyspace
にはトップ モデルのオプション ファイルが格納されます。
パッケージ化オプション ファイルを使用した Polyspace 解析の実行
コード アーカイブと Polyspace オプション ファイルが生成されたら、アーカイブを使用して Simulink がない別の開発環境で生成コードに対する Polyspace 解析を実行できます。
コード アーカイブを解凍して
polyspace
フォルダーを見つけます。Windows® または Linux® のコマンド ラインで
を実行します。productname
-options-file optionsFile.txt -results-dirresultdir
は、polyspace-bug-finder、polyspace-code-prover、polyspace-bug-finder-server、polyspace-code-prover-server のいずれかです。productname
は Polyspace の結果の場所に対応します。この引数はオプションです。resultdir
生成コードを Simulink モデルとリンクするには、
linksData.xml
ファイルが必要です。オプション ファイル アーカイブにlinksData.xml
ファイルが生成されていない場合、Polyspace デスクトップ ユーザー インターフェイスでオプション [コード ジェネレーターのサポート] を使用して、コード内のどのコメントを Simulink モデルへのリンクとして機能させるかを指定します。Polyspace デスクトップ ユーザー インターフェイスで、[ツール] 、 [基本設定] を選択して [その他] タブに移動します。コンテキスト メニュー [コードからモデルへのリンクとして機能するコード コメント] から、使用したコード ジェネレーターを選択します。[ユーザー定義] を選択した場合、フィールド [コメントを開始] にコメントの接頭辞を指定することにより、コードからモデルへのリンクとして機能するコメントを指定します。たとえば、接頭辞を//Link_to_model
と指定した場合、Polyspace は先頭が//Link_to_model
であるコメントをモデルへのリンクとして解釈します。Polyspace Access を使用して結果を表示している場合、
linksData.xml
ファイルを Polyspace の結果と同じフォルダーにアップロードします。linksData.xml
ファイルがない場合、またはこのファイルを Polyspace の結果フォルダー以外の場所にアップロードした場合は、コードを Simulink モデルにリンクできません。結果をレビューするには、Polyspace Access にアップロードして、Web ブラウザーで結果を表示します。あるいは、Polyspace デスクトップ製品のユーザー インターフェイスを使用して結果を表示します。
参考
polyspacePackNGo
| polyspace.Project
| slbuild
(Simulink) | packNGo
(Embedded Coder)