Embedded Coder によって生成されたコードに対する Polyspace 解析の実行
Embedded Coder® または TargetLink® を使用して Simulink® モデルからコードを生成する場合、生成されたコードのバグやランタイム エラーの解析を、Simulink 環境から Polyspace® を使用して実行できます。Polyspace プロジェクトを手動で設定する必要はありません。
このトピックでは、コード生成に Embedded Coder を使用します。TargetLink で生成したコードの解析については、TargetLink によって生成されたコードに対する Polyspace 解析の実行を参照してください。
特定のモデルを含むチュートリアルは、Simulink モデルから生成されたコードに対する Polyspace 解析の実行を参照してください。
その他の手書きのコードで Simulink の外で生成したコードを解析することもできます。このワークフローでは、たとえば Windows® コマンド ラインから Polyspace オプションを抽出して解析を実行します。パッケージ化オプション ファイルを使用した、生成コードに対する Polyspace 解析の実行を参照してください。それ以前のリリースの Polyspace では、生成されたコードからモデルに戻ることができます。モデルへ戻るを参照してください。
前提条件
Simulink から Polyspace を実行する前に、Polyspace インストールと MATLAB® インストールをリンクしなければなりません。MATLAB や Simulink との Polyspace の統合を参照してください。
コードの生成と解析

コード生成の設定とコードの生成
コード生成を設定してモデルからコードを生成するには、"次のいずれか" を行います。
[アプリ] タブで [Embedded Coder] を選択します。次に、[C コード] タブで [クイック スタート] を選択します。画面の指示に従います。
[C コード] タブで [設定] をクリックし、Simulink コンフィギュレーション パラメーターでコード生成を設定します。設定する主なパラメーターは、以下のとおりです。
タイプ (Simulink): [固定ステップ] を選択します。
ソルバー (Simulink): [自動 (ソルバーの自動選択)] または [離散 (連続状態なし)] を選択します。
システム ターゲット ファイル (Simulink Coder):
ert.tlcまたはautosar.tlcと入力します。ターゲット ファイルをert.tlcから派生させる場合、それを指定することもできます。コードからモデルに (Embedded Coder):コードからモデルへのリンクを有効にするには、このオプションを選択します。
設定するすべてのパラメーターのリストは、Polyspace 解析で推奨されるモデル コンフィギュレーション パラメーターを参照してください。
あるいは、[Polyspace] オブジェクティブを使用してコード生成アドバイザーを実行し、必要なパラメーターが既に設定されているかどうかを確認します。コード生成アドバイザーを使用したコード生成の目的に合わせたモデルの設定 (Embedded Coder)を参照してください。
モデルからコードを生成するには、[C コード] タブで [コード生成] を選択します。診断ビューアーでコード生成の進行状況を確認できます。
コードの解析
モデルから生成されたコードを解析するには、キャンバスの任意の場所をクリックします。Simulink ツールストリップの [次のコードの解析] フィールドにモデル名が表示されます。[解析の実行] を選択します。

Embedded Coder を使用している場合、Polyspace は [解析の実行] がクリックされたときに生成コードをチェックします。生成コードが存在しない場合、または最後の Polyspace 解析以降モデルが変更されている場合、Polyspace はコード生成プロセスを起動してから、解析を開始します。
現在のモデルが別のモデル内で参照されており、生成されたコードをモデルが参照されているコンテキストにおいて検証する場合は、[最上位モデルとして生成されたコード] の代わりに [モデル参照として生成されたコード] を使用します。後者の場合、生成コードがなくても Polyspace はコード生成を自動的に起動しません。[モデル参照として生成されたコード] を解析する場合、Polyspace 解析を実行する前にコードを生成してください。
MATLAB コマンド ウィンドウで解析の進行状況を確認できます。
明示的に無効にしない限り、結果が自動的に開きます。既定では、結果は現在のフォルダー内の results_ フォルダーに保存されます。新しく実行するたびに前の結果は上書きされます。既定のフォルダーを変更したり、結果を Simulink プロジェクトに保存したりすることができます。これらの変更を行うには、[Polyspace] タブで [設定] を選択します。ModelName
結果を閉じていて、後で開く場合は、[Polyspace] タブで [解析結果] を選択します。最後の実行以前の結果を開くには、[以前の結果を開く] を選択して、以前の結果を含むフォルダーに移動します。
解析結果のレビュー

コードでの結果のレビュー
結果は Polyspace Platform ユーザー インターフェイスの [結果のリスト] ペインに表示されます。各結果をクリックすると、[ソース] ペインにソース コードが表示され、[結果の詳細] ペインに詳細が表示されます。参考:
コードからモデルへの移動
[結果の詳細] ペインのそれぞれの結果について、[モデルに移動] () ボタンをクリックして、結果の原因となった Simulink ブロックに移動することができます。

または、ソース コード内の結果が報告されたトークンを右クリックすることにより、Polyspace の結果に対応するブロックに移動することもできます。フラグの付いたトークンを右クリックして、[モデルに移動] を選択します。
モデルへの移動は、Simulink ブロックに直接トレースできるソース コードのトークンおよび結果のサブセットでのみ行うことができます。生成されたコードの Simulink ブロックにトレースできるトークンの詳細については、Trace Simulink Model Elements in Generated Code (Embedded Coder)を参照してください。
結果に対応するブロックに加え、生成されたコードのブロックに対応する Simulink ブロックにも移動できます。生成されたコード ブロックには、対応する Simulink モデルへのリンクが含まれています。モデル内のブロックを確認するには、リンクのブロック名をクリックします。問題が発生した場合は、コードからモデルへの移動のトラブルシューティングを参照してください。
問題の修正
コードの問題がモデルの設計上の欠陥に関連しているかどうかを調べます。
モデルの設計上の欠陥は、生成されたコードで問題を引き起こす可能性があります。次に例を示します。
生成されたコードでは、特定の範囲のブロック パラメーターにのみ特定のランタイム エラーがない場合があります。この問題を修正するには、そのブロック パラメーターのストレージ クラスを変更するか、コンフィギュレーション パラメーター [調整可能なパラメーター] を使用して、解析にキャリブレーション データを使用します。
生成されたコードでは、特定の範囲の入力にのみ特定のランタイム エラーがない場合があります。この範囲を特定するには、Inport ブロックの信号の最小値と最大値を指定します。Polyspace 解析では、この制約範囲を使用します。ブロックの信号範囲の操作 (Simulink)を参照してください。
Stateflow® チャートの特定の遷移が到達不能である場合があります。
生成されたコードと手書きのコードを統合することがあります。Polyspace 解析では、このような統合に起因するコーディングの欠陥とコーディング ルール違反を検出できます。Simulink モデルに手書きのコードを含めている場合、モデル内の手書きのコードを単独で解析できます。詳細については、以下を参照してください。
ブロックに注釈を付けることによる問題の正当化
コードやモデルを変更せずに、Polyspace の結果を正当化することがあります。Polyspace Platform ユーザー インターフェイスまたはSimulink エディターで Simulink ブロックに注釈を付けます。Simulink ブロックに注釈を付けて Polyspace の結果に対処を参照してください。