exponenta event banner

Вызов устаревшей функции таблицы поиска с использованием блока вызывающего абонента C

В этом примере показано, как использовать блок C Caller для вызова унаследованных функций C, реализующих N-мерный табличный поиск.

В этом примере унаследованные функции C определены в lookupTable.h, и реализовано в directLookupTableND.c. Определения типов, использованные в этом примере, можно найти в your_types.h.

Чтобы разрешить вызов функций C из блока C Function, в модели укажите файл заголовка и исходный файл на панели Configuration Parameters > Simulation Target. Прототип устаревшей функции, вызываемой в этом примере:

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 tableND и tableDims сопоставляются с параметрами блока вызывающего абонента C, nbDims является постоянной блока, и tableIdx является входом в блок. Значение, возвращаемое унаследованной функцией C, является выводом блока.

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