Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

C Caller ブロックを使用したレガシ ルックアップ テーブル関数

この例では、C Caller ブロックを使用して、N 次元のテーブル ルックアップを実装するレガシ C 関数を呼び出す方法を示します。

この例では、レガシ C 関数が lookupTable.h に定義されており、directLookupTableND.c に実装されています。この例で使用される型の定義は、your_types.h にあります。

C Function ブロックからの C 関数の呼び出しを有効にするため、モデルの [コンフィギュレーション パラメーター][シミュレーション ターゲット] ペインにヘッダー ファイルとソース ファイルを指定します。この例で呼び出されるレガシ関数のプロトタイプは以下のとおりです。

FLT directLookupTableND(const FLT *tableND, const UINT32 nbDims, const UINT32 *tableDims, const UINT32 *tableIdx)

ここで、FLT は浮動小数点型の型定義で、UINT32 は符号なし 32 ビット整数の型定義です。

  • const FLT *tableND - テーブル

  • const UINT32 nbDims - テーブルの次元

  • const UINT32 *tableDims - テーブルのサイズ

  • const UINT32 *tableIdx - テーブルのインデックス

C Caller ブロックにおいて、tableNDtableDims は C Caller ブロック パラメーターにマッピングされ、nbDims はブロックの定数で、tableIdx はブロックへの入力です。レガシ C 関数が返す値は、ブロックの出力です。

model = 'slexCCallerLookupTable';
open_system(model);
sim(model);