メインコンテンツ

パッケージ化オプション ファイルを使用した、生成コードに対する 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 を使用します。

  1. Simulink エディターで [コンフィギュレーション パラメーター] ダイアログ ボックスを開いて、コードを生成するためのモデルを構成します。

  2. Polyspace と互換性があるようにモデルを構成するには、[システム ターゲット ファイル]ert.tlc を選択します。

  3. コード アーカイブの生成を有効にするには、オプション [コードとアーティファクトのパッケージ化] を選択します。オプションで、フィールド [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');

  4. コード アーカイブを生成します。

    • トップ モデルからスタンドアロン生成コードのアーカイブを生成するには、関数 slbuild (Simulink) を使用します。

    • モデル参照としてコードを生成するには、関数 slbuild (Simulink) を使用します。モデル参照としてコードを生成した後、関数 packNGo (Embedded Coder) を使用してコード アーカイブを作成します。

    • あるいは、TargetLink を使用してコードを生成できます。生成コードを zip ファイルにアーカイブすることにより、コード アーカイブを作成します。

  5. Polyspace オプション ファイルを生成してパッケージ化するには、MATLAB コマンド ウィンドウで関数 polyspacePackNGo を使用します。

    zipFile = polyspacePackNGo(mdlName);
    Polyspace オプション ファイルを生成してパッケージ化を参照してください。

    TargetLink を使用してコードを生成した場合、polyspacepacknGo の入力引数に TargetLink サブシステム名を使用します。

  6. オプションで、第 2 引数に pslinkoptions オブジェクトを使用して Polyspace 解析の既定のモデル構成を変更できます。pslinkoptions オブジェクトを作成し、モデル構成を変更して、アーカイブ作成時にこのオブジェクトを指定します。

    psOpt = pslinkoptions(mdlName);
    psOpt.InputRangeMode = 'FullRange';
    psOpt.ParamRangeMode = 'DesignMinMax';
    zipFile = polyspacePackNGo(mdlName,psOpt);
    
    特定の Polyspace 解析オプションを含む Polyspace オプション ファイルをパッケージ化を参照してください。

  7. オプションの第 3 引数を使用して、モデル参照として生成されるコード用の Polyspace オプション ファイルを生成してパッケージ化するかどうかを指定します。関数 slbuild を使用してモデル参照としてコードを生成した場合を考えます。コード用に Polyspace オプションを生成してパッケージ化するには、MATLAB コマンド ウィンドウで以下を入力します。

    zipFile = polyspacePackNGo(mdlName,[],true);
    モデル参照として生成されたコード用の Polyspace オプション ファイルをパッケージ化を参照してください。

    関数 polyspacepackNGo はオプション ファイルを含むアーカイブへの絶対パスを返します。ファイルはアーカイブされたフォルダー階層内の polyspace フォルダーに配置されます。polyspace フォルダーの内容は関数 polyspacePackNGo の入力によって異なります。

    • オプションの第 2 引数と第 3 引数を指定しなかった場合、フォルダー polyspace に次のオプション ファイルがフラットな階層で格納されます。

      • optionsFile.txt:このファイルには、Polyspace を使用した生成コードの解析に必要なソース ファイル、インクルード ファイル、データ範囲指定、および解析オプションが指定されます。コードにカスタム C コードが含まれている場合、このファイルにカスタムのソース ファイルとヘッダー ファイルの相対パスが指定されます。

      • modelname_drs.xml:このファイルは、モデルの設計範囲指定を指定します。

      • linksData.xml:このファイルは、生成コードをモデルのコンポーネントにリンクします。

    • psOpts.ModelbyModelRef = true を指定すると、すべての参照モデルに対して対応するオプション ファイルが生成されます。これらのオプション ファイルは、コード アーカイブ内の polyspace_<referenced model name> という名前の別個のフォルダーに格納されます。フォルダー polyspace にはトップ モデルのオプション ファイルが格納されます。

パッケージ化オプション ファイルを使用した Polyspace 解析の実行

コード アーカイブと Polyspace オプション ファイルが生成されたら、アーカイブを使用して Simulink がない別の開発環境で生成コードに対する Polyspace 解析を実行できます。

  1. コード アーカイブを解凍して polyspace フォルダーを見つけます。

  2. Windows® または Linux® のコマンド ラインで productname -options-file optionsFile.txt -results-dir resultdir を実行します。

    • productname は、polyspace-bug-finder、polyspace-code-prover、polyspace-bug-finder-server、polyspace-code-prover-server のいずれかです。

    • resultdir は Polyspace の結果の場所に対応します。この引数はオプションです。

    生成コードを Simulink モデルとリンクするには、linksData.xml ファイルが必要です。オプション ファイル アーカイブに linksData.xml ファイルが生成されていない場合、Polyspace デスクトップ ユーザー インターフェイスでオプション [コード ジェネレーターのサポート] を使用して、コード内のどのコメントを Simulink モデルへのリンクとして機能させるかを指定します。Polyspace デスクトップ ユーザー インターフェイスで、[ツール][基本設定] を選択して [その他] タブに移動します。コンテキスト メニュー [コードからモデルへのリンクとして機能するコード コメント] から、使用したコード ジェネレーターを選択します。[ユーザー定義] を選択した場合、フィールド [コメントを開始] にコメントの接頭辞を指定することにより、コードからモデルへのリンクとして機能するコメントを指定します。たとえば、接頭辞を //Link_to_model と指定した場合、Polyspace は先頭が //Link_to_model であるコメントをモデルへのリンクとして解釈します。

    Polyspace Access を使用して結果を表示している場合、linksData.xml ファイルを Polyspace の結果と同じフォルダーにアップロードします。linksData.xml ファイルがない場合、またはこのファイルを Polyspace の結果フォルダー以外の場所にアップロードした場合は、コードを Simulink モデルにリンクできません。

  3. 結果をレビューするには、Polyspace Access にアップロードして、Web ブラウザーで結果を表示します。あるいは、Polyspace デスクトップ製品のユーザー インターフェイスを使用して結果を表示します。

参考

| | (Simulink) | (Embedded Coder)

トピック