メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

コード生成の仮定のチェック

R2026a

コード ジェネレーターは、モデルのハードウェア実装設定などに依存する仮定を実装します。仮定がターゲット ハードウェアに対して有効であることをチェックすることが重要です。関数 buildStandaloneCoderAssumptions (Embedded Coder) を使用して、ターゲット ハードウェアで仮定のチェックを実行するアプリケーションを作成します。

モデルを構成する場合は、ターゲット ハードウェアに一致するハードウェア実装とビルド構成設定を指定してください。次に、ターゲット ハードウェアに対するコード ジェネレーターの仮定をチェックするには、次のワークフローを使用します。

  1. GenerateReport を 'on' に設定して、モデルをビルド (Ctrl+B) します。

  2. チェックできるコード ジェネレーターの仮定のリストを表示するには、コード生成レポートを開き、[Coder Assumptions] リンクをクリックします。

    詳細については、コーダー仮定リストを参照してください。

  3. buildStandaloneCoderAssumptions を実行します。これにより、ビルド フォルダーで生成されたコードを使用して、コード生成の仮定のチェックを実行するアプリケーションが作成されます。

  4. アプリケーションをターゲット ハードウェアまたはターゲット環境にダウンロードしてから、アプリケーションを実行します。

  5. アプリケーションを実行中に、デバッグ ツールを使用して、データ構造体内のチェック結果を表示します。

開発用コンピューターに対するコード ジェネレーターの仮定のチェック

ターゲット ハードウェアが、たとえば Windows® 開発用コンピューターである場合は、Microsoft® Visual Studio® を使用してアプリケーションを実行およびデバッグできます。

  1. モデルを開くには、コマンド ウィンドウで次のように入力します。

    openExample('ecoder/SILPILVerificationExample', ...
                 supportingFile='SILTopModel.slx')

  2. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスの [ハードウェア実行] ペインで、ターゲット ハードウェアに合う設定を指定します。たとえば、64 ビットの Windows コンピューターでは、以下のパラメーター設定を指定します。

    • デバイス ベンダー –– Intel

    • デバイス タイプ –– x86-64 (Windows 64)

  3. モデル コンフィギュレーション パラメーター [移植可能なワード サイズを有効にする] をオフにします。

  4. モデルをビルド (Ctrl+B) します。

  5. コード ジェネレーターの仮定のリストを表示するには、コード生成レポートを開き、[コード生成の前提] リンクをクリックします。

  6. コマンド ウィンドウから、作業フォルダーで、以下を実行します。

    buildStandaloneCoderAssumptions('SILTopModel_ert_rtw')
    ビルド フォルダーには、関数によって、ターゲット アプリケーション SILTopModel_ca を含む coderassumptions\standalone サブフォルダーが作成されます。

  7. Microsoft Visual Studio を開き、[ファイル] 、 [開く] 、 [プロジェクト/ソリューション] を選択します。

  8. [プロジェクトを開く] ダイアログ ボックスで、coderassumptions\standalone サブフォルダーに移動し、SILTopModel_ca を選択します。次に、[開く] をクリックします。

  9. [ファイル] 、 [開く] 、 [ファイル] を選択します。[ファイルを開く] ダイアログ ボックスを使用して、coderassumptions\standalone\SILTopModel_ca.c を選択します。

  10. return ステートメントに、ブレークポイントを挿入します。

  11. [デバッグ] 、 [Start Debugging] を選択します。

  12. コード ジェネレーターの仮定を検証するには、監視ウィンドウを使用して Results データ構造体を検証します。

    1. SILTopModel_ca.c コードで、Results を右クリックします。

    2. コンテキスト メニューから [Add Watch] を選択します。

データ構造体の変数には次が含まれます。

  • チェックの結果 (TestResults)

  • ターゲット ハードウェアの真理値 (ActualValues)

  • コード ジェネレーターの仮定 (ExpectedValues)

たとえば、bitsPerChar のコード ジェネレーターの仮定が正確な場合、変数 status に CA_PASS 値が表示されます。

コーダー仮定リスト

コード生成レポートの目次セクションには、[Coder Assumptions] ページへのリンクがあります。このページには、以下のリストがあります。

  • チェックできるコード生成の仮定

  • 予想された仮定チェックの結果

以下の表はリストに表示されるラベルの説明です。

カテゴリラベルチェックできる仮定
ターゲット ハードウェアまたは開発用コンピューターの C/C++ 言語構成

BitPerChar

char あたりのビット数 (ProdBitPerChar)

BitPerShort

short あたりのビット数 (ProdBitPerShort)

BitPerInt

int あたりのビット数 (ProdBitPerInt)

BitPerLong

long あたりのビット数 (ProdBitPerLong)

BitPerFloat

float のサイズ (PurelyIntegerCode が 'off' の場合のみ)

BitPerDouble

double のサイズ (PurelyIntegerCode が ‘off’ の場合のみ)

BitPerPointer

pointer あたりのビット数 (ProdBitPerPointer)

BitPerSizeT

size_t あたりのビット数 (ProdBitPerSizeT)

BitPerPtrDiffT

ptrdiff_t あたりのビット数 (ProdBitPerPtrDiffT)

Endianess

バイト順 (ProdEndianess)

Shift right for signed integer is arithmetic shift

符号ビットの動作 (ProdShiftRightIntArith)

Signed integer division rounds to

整数除算の丸め動作 (ProdIntDivRoundTo)

C/C++ 言語規格

Initial value of a global integer variable and dynamically allocated memory is zero

メモリのゼロ初期化 (ZeroExternalMemoryAtStartup、ZeroInternalMemoryAtStartup、および GenerateAllocFcn)

浮動小数点数

Flush-to-zero computed subnormal values (FTZ)

flush-to-zero 非正規数処理

Flush-to-zero incoming subnormal values (DAZ)

denormals-are-zero 非正規数処理

参考

(Embedded Coder)

トピック