コード置換のカスタマイズとは
カスタムのコード置換ライブラリを開発することで、コード ジェネレーターが関数、演算子、およびブロックに既定で生成する C/C++ コードを、いつどのように置き換えるかをカスタマイズします。ライブラリは、コード置換ツールを使用して対話形式で開発するかプログラムで開発できます。
特定のアプリケーション要件に応じたライブラリを開発します。
コードの置換時にコード ジェネレーターで考慮される予約キーワードのリストに識別子を追加します。
コード ジェネレーターによる関数の照合および置換プロセスをカスタマイズします。
開始するには、コード置換ライブラリ開発のクイック スタート - Simulinkを参照してください。
一部の Simulink® ブロックからのコードの置換の詳細については、Block Replacement for Code Optimizationを参照してください。
コード置換の照合および置換プロセス
コード ジェネレーターは、関数または演算子の呼び出しサイトを検出すると、次を行います。
コード置換エントリ オブジェクトを作成して、関数名または演算子名、またはキーおよび概念引数を部分的に入力します。
このエントリ オブジェクトを使用して、概念表現が一致するかどうか、構成済みのコード置換ライブラリをクエリします。コード ジェネレーターは、ライブラリ内のテーブルの順序で一致するものがあるかどうか、コード置換ライブラリ内のテーブルを検索します。一致を検索する際、コード ジェネレーターは次を考慮します。
概念名またはキー
引数 (量、型、型修飾子、および実数/複素数を含む)
アルゴリズム (計算方法)
固定小数点の飽和および丸めモード
優先順位
一致が存在する場合、コード ジェネレーターは、概念表現、実装表現および優先順位の値がすべて入力されたコード置換オブジェクトを返します。コード ジェネレーターによりテーブルで複数の一致が検出された場合、一致はエントリの優先順位によって決まります。優先順位の値は 0 から 100 の範囲です。最も優先順位が高いのは 0 です。コード ジェネレーターは、優先順位が低い同様のエントリよりも、優先順位が高いエントリを使用します。
コード置換オブジェクトで C または C++ 置換関数のプロトタイプを使用して、コードを生成します。
コード置換のカスタマイズの制限
コード置換検証 — コード置換は想定と異なる動作をする可能性があります。たとえば、コード ジェネレーター入力にみられるデータ型は、コード ジェネレーターが動作中に中間データ型として使用するものと一致しない場合があります。生成コードを調べることでコード置換を検証します。Verify Code Replacement Libraryを参照してください。
行列のコード置換 — コード置換ライブラリは、可変サイズ入力をもつ関数の置換をサポートしません。
ファイル パス内のトークン — コード置換エントリのビルド情報を指定する際に、プログラミング インターフェイスを使用することによってのみ、ファイル パスにトークンを含めることができます。トークンを含める機能は、コード置換ツールでは利用できません。Define Code Replacement Library Optimizationsの「ビルド情報を指定します」を参照してください。
加算および減算演算子の置換 — 関連する制限については、Addition and Subtraction Algorithm Types for Code Replacementを参照してください。
データの配置 — 関連する制限については、Optimize Performance of Memory Access by Using Data AlignmentとData Alignment for Code Replacementを参照してください。
coder.replace
関数 — 関連する制限については、coder.replace
を参照してください。